1. はじめに
Markdownは、見出しの大きさを「#
」の数で指定し、文章を簡単に構造化できる記法です。また、一定のルールに基づいてHTMLにレンダリングされるため、多くのブログで採用されています(例: Qiita)。
Markdownを使用して情報をまとめる際、全体の構造を一目で把握したくなることがあります。その際に便利なのが、Markdownファイルの階層構造をUNIXコマンドのtree
のように出力することができるmarktree
コマンドです。
前回からの変更
以前はLinux向けにapt
でインストールできるようにPPAリポジトリを使用していましたが、Windowsに戻ったためスクリプトを書き直し、パッケージ名も「markdown-tree」から「marktree」に変更しました。インストールはPyPIを使用します。
詳しい開発経緯は以下の記事をご覧ください。
2. セットアップ(Setup)
pipを使用してインストールします。
pip install marktree
Windowsで「警告」が出た時の対処方法
Windowsでpip install
を実行すると、PATHに通っていない旨の警告("WARNING: The script clipcount.exe is installed in 'ファイルパス' which is not on PATH."
)が表示されることがあります。この場合、C:\Users\user\Documents\PowerShell\Profile.ps1
に以下のようにPATHを追加してください。
$env:path += ";C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts"
Powershellのバージョンが「5」なら、Profile.ps1の保存先フォルダは「Powershell」から「WindowsPowerShell」に変えてください。
上記の設定は、Powershellのバージョン「7」を想定しています。
詳しくは以下の記事を御覧ください。
また、WARNING: Failed to write executable - trying to use .deleteme logic
といった警告が出てインストールそのものが出来ないこともあります。この問題の解決については、以下の記事をご参照ください。
3. 簡単な使い方(Quick usage)
marktree [オプション] [hoge.md]
オプション | 説明 |
---|---|
marktree -h | ヘルプ画面を表示します。 |
marktree --help_jp | ヘルプ画面を日本語で表示します。 |
marktree -L 3 | -Lオプションはツリーが表示される階層を決定します。 |
marktree -C | -Cオプションは、クリップボードにコピーされたMarkdownテキストをツリー形式で直接出力します。 |
例
Markdownファイルhoge.md
を用意して以下のように実行できます。
# h1
## h2
### h3
#### h4
#### h4
## h2
## h2
### h3
#### h4
##### h5
###### h6
### h3
# h1
通常の出力(デフォルトの階層は6):
$ marktree hoge.md
├── h1
│ ├── h2
│ │ └── h3
│ │ ├── h4
│ │ └── h4
│ ├── h2
│ └── h2
│ ├── h3
│ │ └── h4
│ │ └── h5
│ │ └── h6
│ └── h3
└── h1
-L 3
を使用して階層を指定(階層は1から6まで):
$ marktree -L 3 hoge.md
├── h1
│ ├── h2
│ │ └── h3
│ ├── h2
│ └── h2
│ ├── h3
│ └── h3
└── h1
-C
を使用すると、クリップボードにコピーされたMarkdownテキストをツリー形式で直接出力します。さらに、-L
を組み合わせて使うこともできます:
$ marktree -C -L 3
├── h1
│ ├── h2
│ │ └── h3
│ ├── h2
│ └── h2
│ ├── h3
│ └── h3
└── h1
4. 使い方(Usage)
marktree
コマンドは、Markdownファイルの#
に基づいてファイルをツリー階層として出力します。
-L
オプションは、元のtree
コマンドと同様に深さを指定します。深さは1から6まで可能で、それ以上を指定するとエラーが発生しますので注意してください。
-C
オプションは、クリップボードにコピーされたMarkdownテキストをツリー形式で直接出力します。これは出力前にMarkdownテキストを別のファイルにコピーする必要がなくなるので便利です。
オプションの順序は特に決まっておらず、複数のファイルを渡す場合は最後のファイルのみが変換されて出力されます。
5. まとめ
marktree
はMarkdownファイルを読み込み、「#
」の数だけ階層が深くなるtreeを生成するコマンドです。目次代わりにも使えるので、ぜひ試してみてください。