[1.3.1] - 2026-07-05
Added
-
--copyオプションを追加し、結果をクリップボードへコピー可能に対応- パイプ入力(例:
marktree file.md | clip)時に発生していた CP932 エンコーディングエラーを修正し、UTF-8 環境で安定して動作するよう改善
- パイプ入力(例:
Changed
- ヘルプ表示を
-h / --helpに統一 - CLIヘルプ文の表現を簡潔化し、全体トーンを統一
- 標準出力・標準エラー出力を UTF-8 に統一
- core/cli の責務を分離し、CLIが表示・例外処理を担当する構造へ変更
Fixed
- UTF-8以外の環境で発生する文字化け問題を軽減
- 本番依存に含まれていた pytest を削除し、開発用 dependency group へ正しく分離
1. はじめに
Markdownは、見出しの大きさを「#」の数で指定し、文章を簡単に構造化できる記法です。
Markdownを使用して情報をまとめる際、全体の構造を一目で把握したくなることがあります。その際に便利なのが、Markdownファイルの階層構造をUNIXコマンドのtreeのように出力することができるmarktreeコマンドです。
Linux向けからの変更
以前はLinux向けにaptでインストールできるようにPPAリポジトリを使用していましたが、Windowsに戻ったためスクリプトを書き直し、パッケージ名も「markdown-tree」から「marktree」に変更しました。インストールはPyPIを使用します。
詳しい開発経緯は以下の記事をご覧ください。
2. インストール
pip install marktree
3. 簡単な使い方
marktree [オプション] [file.md]
| コマンド | 説明 |
|---|---|
marktree -h |
ヘルプを表示 |
marktree -L 3 file.md |
最大表示階層を指定 |
marktree -C |
クリップボードから Markdown を読み込む |
marktree -P file.md |
見出しのみをプレーンテキストで出力 |
marktree -E cp932 file.md |
ファイルの文字コードを指定 |
marktree --copy file.md |
結果をクリップボードへコピー |
4. 使用例
# h1
## h2
### h3
## h2
# h1
通常の出力
marktree sample.md
├── h1
│ ├── h2
│ │ └── h3
│ └── h2
└── h1
表示する階層を制限
marktree -L 2 sample.md
├── h1
│ ├── h2
│ └── h2
└── h1
クリップボードから入力
クリップボードにコピーした Markdown テキストを読み込みます。
marktree -C
-L オプションと組み合わせることもできます。
marktree -C -L 3
見出しのみを出力
marktree -P sample.md
出力
# h1
## h2
### h3
## h2
# h1
結果をクリップボードへコピー
標準出力へ表示する代わりに、生成したツリーをクリップボードへコピーします。
marktree sample.md --copy
文字コードを指定
marktree -E cp932 sample.md
対応例
- utf-8
- cp932
- shift_jis
5. オプションの詳細
-L
表示する見出しレベルを指定します。
指定できる値は 1~6 です。
デフォルトは 6 です。
-C
クリップボードにコピーされた Markdown テキストを入力として使用します。
ファイルを保存せずに構造を確認できます。
-P
ツリー化せず、見出しのみをそのまま出力します。
-E
Markdown ファイルを開く際の文字コードを指定します。
文字化けする場合はファイルの実際の文字コードを指定してください。
例
marktree -E cp932 sample.md
--copy
標準出力へ表示する代わりに、生成した結果をクリップボードへ直接コピーします。
オプションの順序
オプションの順序は自由です。
以下はどちらも同じ結果になります。
marktree -L 3 sample.md
marktree sample.md -L 3
複数の Markdown ファイルを指定した場合は、最後に指定したファイルを処理します。
Windows でインストール時に警告が表示された場合
Windows 環境では、pip install marktree の実行時に以下のような警告が表示されることがあります。
PATH に関する警告
WARNING: The script xxx.exe is installed in '...' which is not on PATH.
これは、marktree コマンドの保存先に PATH が設定されていない場合に表示される警告です。
対処方法は、以下の記事をご参照ください。
Powershellのバージョンが5なら、Profile.ps1の保存先フォルダは「Powershell」から「WindowsPowerShell」に変えてください。
Powershellのバージョンが7なら「Powershell」を使用してください。
インストールに失敗する警告
WARNING: Failed to write executable - trying to use .deleteme logic
この警告が表示されて pip install が失敗する場合は、以下の記事をご参照ください。
まとめ
marktreeはMarkdownファイルを読み込み、「#」の数だけ階層が深くなるtreeを生成するコマンドです。
目次代わりにも使えるので、ぜひ試してみてください。