mdless - ターミナルで利用できるRuby製のMarkdownビューアー

S 20181128 213811

GitHubでも採用されていることでおなじみの軽量マークアップ言語「Markdown」。

一般的なテキストエディタを使用して記述することができますが、整形後の見た目を確認したい場合は、Markdownビューアーと呼ばれるビューアーアプリを使用する必要があります。

本日紹介する「mdless」もそのようなMarkdownビューアーの一種です。ただしGUIアプリではなくターミナル内で利用できるコマンドラインタイプのビューアーとなっています。

GUIアプリほど美しくMarkdownを表示することはできませんが、リモートサーバーで作業している場合など、見た目をざっくり確認したい場合に便利です。

以下のような特徴を持っています。

  • pipeに対応した組み込みのページャー機能
  • テーブルのフォーマットに対応
  • 大部分の要素のMarkdown構文の色分け
  • 空白の正規化とリンクのフォーマット
  • 章ごとに脚注の表示
  • iTerm2 2.9以降で使用する場合インラインイメージが表示可能
  • pygmentizeが利用できる場合シンタックスハイライトに対応
  • ドキュメントの見出しの一覧表示
  • 見出しに基づいて文書の単一セクションを表示する機能

以下使用方法を説明します。

mdlessの使用方法

mdlessはRuby製のツールなのでgemコマンドでインストールできます。

gem install mdless

使用方法は「mdless [オプション] パス」または「cat パス | mdless」となります。

例えば次の内容のMarkdownファイル(samle.md)が存在する場合…

# header1
## header2
### header3

箇条書き

-項目1
  -これも
-項目2
-項目3

テーブル

| column1 | column2 |
| -- | -- |
| セル1 | セル2 |
| セル3 | セル4 |

コードサンプル

``` shell
gem install sample
```

「mdless sample.md」と実行すると以下のように表示されます。

S 20181128 214112

▲デフォルト状態で色を使って表示されますが、明るい背景の場合見づらい配色となっています。色を使用する場合はターミナルのテーマをダーク系にしておくことをおすすめします。

オプションの一覧は「mdless --help」で確認可能です。

-s, --section=TITLE              Output only a headline-based section of 
                                 the input (numeric based on --list output)
-w, --width=COLUMNS              Column width to format for (default terminal width)
-p, --[no-]pager                 Formatted output to pager (default on)
-P                               Disable pager (same as --no-pager)
-c, --[no-]color                 Colorize output (default on)
-l, --list                       List headers in document and exit
-i, --images=TYPE                Include [local|remote (both)] images in 
                                 output (requires imgcat and iTerm2, 
                                 default NONE)
-I, --all-images                 Include local and remote images in output 
-h, --help                       Display this screen
-v, --version                    Display version numbe

色を使わない場合は以下のように実行します。

mdless --no-color sample.md

またiTerm2を使用していてローカルのインライン画像を表示したい場合は以下となります。

mdless --images=local sample.md

なおiTerm2で画像を表示したい場合、imgcatというスクリプトをiTerm2の公式サイトからダウンロードしてパスに設置する必要があります。詳しくはiTerm2のドキュメントでご確認ください。

まとめ

mdlessを使用すればMarkdownファイルの内容をターミナル上で素早く確認することができます。GUIを必要としないためリモートサーバーにログインして作業している場合に使っても便利かもしれません。

スポンサーリンク