ブログ

ターミナルでのドキュメント体験を改善する:Markdownリーダー「Glow」の活用

Glow: The Terminal Markdown Reader That Actually Makes Documentation Readable という記事を読み、ドキュメント閲覧時のコンテキストスイッチを減らすアプローチが実務でも役立ちそうだと感じたので、内容を整理して紹介します。

あんまり、Markdownをターミナルで開かないんですが、有ると便利なのかな。


開発作業中、ライブラリのREADMEを確認するためにターミナルからブラウザへ切り替える機会は多いものです。しかし、この「ちょっとブラウザを見る」という動作が、意外にも集中力を削ぐ原因になっているかもしれません。

ターミナルでのドキュメント閲覧における課題

通常、ターミナルでMarkdownファイルを開くと、アスタリスクやバックティックが並んだ「生のソースコード」が表示されます。短いファイルなら問題ありませんが、複雑なテーブルや構造化されたドキュメントを catless で読むのは、なかなかのストレスです。

結局、読みやすさを求めてブラウザを開くことになりますが、そこで別のタブが目に入ったり、検索履歴に気を取られたりして、本来の作業に戻るのに時間がかかってしまう……といった経験はないでしょうか。

こうしたコンテキストスイッチを最小限に抑え、ターミナルのなかで「読みやすい」ドキュメント体験を提供してくれるのが Glow です。

Glowでできること

Glowは、Go言語で書かれたCLI用のMarkdownレンダラーです。単にテキストを表示するだけでなく、ヘッダーの強調、シンタックスハイライト、テーブルの整形などを行い、ターミナル上で読みやすい形にレンダリングしてくれます。

主な使い方は以下の通りです。

# ローカルファイルの表示
glow README.md

# GitHubのリポジトリを指定してREADMEを表示
glow github.com/charmbracelet/glow

# ページャー(スクロール制御)付きで表示
glow -p CHANGELOG.md

処理の流れを簡単に図解すると、以下のようなイメージになります。

flowchart LR
  A["入力 (ファイル / URL / GitHub)"] --> B["Glow (レンダリング処理)"]
  B --> C["出力 (スタイリングされたTUI)"]
  C --> D["閲覧・検索・エディタ起動"]

主な特徴と便利な機能

実際に使ってみると、単なるビューアー以上の機能が備わっていることがわかります。

1. インタラクティブなTUIモード

glow --tui (または引数なしの glow)を実行すると、対話型のインターフェースが起動します。ここではローカルのMarkdownファイルをブラウズしたり、検索したり、環境変数 $EDITOR で設定したエディタで直接ファイルを開いたりできます。特定のプロジェクト専用のドキュメントハブのような使い方ができるかもしれません。

2. ライブ・ウォッチ機能

ドキュメントを執筆している最中に便利なのが、--watch フラグです。

glow --watch docs/runbook.md

ファイルを保存するたびにレンダリング結果が更新されるため、プレビュー用の別ウィンドウを開くことなく、書き味を確認しながら作業を進められます。

3. 多彩なソースへの対応

ローカルファイルだけでなく、GitHubやGitLabのリポジトリ、あるいは生のURLを直接指定できるのも強みです。

ソースの種類 コマンド例
ローカルファイル glow docs/manual.md
リポジトリ (README) glow github.com/kubernetes/kubernetes
生のURL glow https://example.com/raw/doc.md
標準入力 (パイプ) cat doc.md \| glow -

4. スタイリングとテーマ

Glowは「Charm」というチームによって開発されており、内部では Glamour というレンダリングエンジンが使われています。ダーク/ライトのテーマ切り替えはもちろん、JSONファイルを用意すれば自分好みのスタイルにカスタマイズすることも可能です。

なぜGlowを使うのか

「単にMarkdownを読むだけなら、既存のツールでも十分ではないか」と感じる方もいるかもしれません。しかし、Glowを使うメリットは「ターミナルを第一級の環境として扱う」という設計思想にあります。

標準的なツールと比較してみると、その差がわかりやすいかと思います。

項目 cat / less Glow
見栄え ソースコードがそのまま出る ヘッダーや太字が装飾される
コードブロック 色付けなし 言語ごとのシンタックスハイライトあり
テーブル 枠線が崩れやすい 綺麗に整列して表示される
外部連携 自分でダウンロードが必要 URLやリポジトリ名から直接取得

インフラの構成図を追ったり、障害対応のランブック(手順書)を読んだりする場面では、情報の視認性が作業精度に直結します。Glowを使って「ドキュメントの方からターミナルに歩み寄ってくる」環境を作ることで、スムーズなワークフローが維持しやすくなるはずです。

まとめ

Glowは、ターミナルでの作業が中心のエンジニアにとって、地味ながらも確実にQOL(Quality of Life)を上げてくれるツールだと感じます。

特に、ドキュメントを読むためにブラウザへ移動する際の「ちょっとした集中力の途切れ」が気になっている方は、一度試してみる価値があるのではないでしょうか。まずは自分のプロジェクトの README.mdglow で開くところから始めてみると、その読みやすさに驚くかもしれません。

参照記事