CLI開発者のためのドキュメント革命: charmbracelet/glowで実現する「見せる」README
このツールは、コマンドラインインターフェース (CLI) 上で Markdown (マークダウン) ファイルをとても魅力的に、まるでウェブサイトのようにレンダリングできる優れものです。開発者にとって、さまざまな場面で「ちょっとした工夫」として役立ちますよ。
glowは、主にドキュメントの閲覧体験を向上させ、CLIベースのワークフローを強化するのに役立ちます。
| 活用シーン | ソフトウェアエンジニアが嬉しいポイント |
| README/ドキュメントの即時確認 | プロジェクトのREADME.md や CHANGELOG.md などを、ブラウザやテキストエディタを開くことなく、ターミナル内で美しいレイアウトとシンタックスハイライト付きで確認できます。特にリモートサーバー作業時に便利です。 |
| CLIツール/スクリプトのヘルプ表示 | 自身が開発したCLIツールのヘルプメッセージをMarkdownで作成し、glowを使ってレンダリングすることで、より分かりやすく、プロフェッショナルな見た目でユーザーに提供できます。 |
| 技術メモ・ブログの閲覧 | GitHub Gist や ローカルの技術メモ をglowで表示すれば、読みやすく、集中しやすい環境で内容を素早く確認できます。 |
| プレゼンテーション/デモ | CLIベースのデモを行う際、設定ファイルや手順書などのMarkdownドキュメントをターミナル上で見栄え良く表示し、聴衆の注目を集めることができます。 |
glowはGo言語で書かれているため、多くのプラットフォームで簡単にインストールできます。ここでは代表的な方法をご紹介します。
macOSやLinuxユーザーでHomebrewを使っている場合、これが一番簡単です。
brew install glow
Go言語の開発環境が整っている場合は、go installコマンドでもインストール可能です。
go install github.com/charmbracelet/glow@latest
Linux (apt, yumなど)
公式のREADMEに記載されているパッケージマネージャーを使ってインストールできます。
Windows (Scoop, Chocolatey)
これらのパッケージマネージャーからもインストールできます。
バイナリのダウンロード
GitHubのリリースぺージから、お使いのOSに合ったバイナリファイルをダウンロードし、PATHの通ったディレクトリに配置することも可能です。
インストールが完了したら、早速使ってみましょう!
一番基本的な使い方です。
glow README.md
実行すると、README.md の内容が、シンタックスハイライト、リスト、見出しなどを使って美しくレンダリングされます。
glowはインターネット上のMarkdownファイルも扱えます。GistのURLやIDを指定して表示できます。
# GistのIDを指定 (例: 1234567890abcdef)
glow 1234567890abcdef
# またはURLを指定
glow https://gist.github.com/ユーザー名/1234567890abcdef
これはスクリプトや他のコマンドの出力を整形する際に非常に強力です。
# catコマンドの出力をパイプで渡す例
cat some_notes.md | glow
もしあなたが、ユーザーがコマンドラインでドキュメントを参照できるようにするCLIツールを開発しているなら、以下のようなスクリプトを組み込むことができます。
#!/bin/bash
# MyCLIのヘルプを表示する関数
show_help() {
# 組み込みのヘルプ用Markdownファイルを cat で読み込み、glowで整形して表示
cat /path/to/my_cli/HELP.md | glow
}
# main処理
case "$1" in
help)
show_help
;;
# ... その他のコマンド
*)
echo "無効なコマンドです。'mycli help'で使い方を確認してください。"
;;
esac
glowにはいくつかのテーマが用意されており、好みの見た目に変更できます。
設定ファイルを開くコマンド
glow --config
(これにより、設定ファイルが $HOME/.config/glow/glow.yml に作成され、エディタで開かれます。)
設定ファイル (glow.yml) の一部 (例
dark テーマを使う場合)
# glow.yml
style: dark
これで、あなたのターミナル上でのドキュメント体験が、まるで美容院に来たときのような心地よさと洗練さを手に入れるはずです!ご自身の開発環境にぜひ取り入れてみてくださいね。