kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

Markdown - 構造化文書のためのエコシステム

Markdown 記法について簡単に纏めてみました。

f:id:kondoumh:20160410112700p:plain

構造化文書の作成

メモ書きレベルを超えて何かを伝えるための文書には構造化が必要です。タイトル、見出し、箇条書き、脚注、クロスリファレンス、コラム、表・・・。Microsoft Word や iWork Pages を使えば、完全な構造化文書作成が可能です。ただし、これらのソフトウェアをインストールしたマシンが手元になければ作業ができません。

構造化文書の仕様とも言える HTML はタイプ量が多すぎて文書作成目的には不向きです。専用エディタを使えば作業はある程度軽減されますが、それでも HTML エディタで文書を書こうとする人はいないでしょう。HTML は Web ブラウザにレンダリングの指示をあたえるための言語なのですから。

Wiki は人にやさしいマークアップ記法でしたが、方言が多すぎてデータ移行や相互運用に難があります。各種ブログサービスの独自記法も同様です。対して、Markdown は統一記法として普及しつつあります。テキストエディタとプレビュー用の Web ブラウザさえあれば構造化文書がいつでも書けるところがメリットでしょう。もはや iPad がネットワークに繋がっていればいいだけなのです。

文書管理

作成した文書をローカルのファイルシステムに保存しただけでは、誤って書き換えたり、消してしまったりなどのオペレーションミスやディスク故障やパソコン紛失などのトラブルに対して脆弱です。通常はストレージサービスや VCS (のホスティングサービス)を利用するのがよいでしょう。DropboxGoogle Drive などのストレージサービスは、ある程度履歴も保持してくれますので、過去の版を取得することも可能です。Git や Subversion などの VCS ホスティングサービスを使えば、厳密な版管理と洗練された diff / merge ツールが利用可能です。ただし、Word や Pages などの独自形式ファイルは VCS では単にバイナリデータ扱いなので過去の履歴との比較をすることが困難です。Markdown 文書はピュアなテキストデータであり記法もシンプルなので、版管理との相性は非常に良いです。

ツール・サービス

では、Markdown を使えるツールやサービスをいくつか見てみましょう。

Emacs markdown-mode

Markdown のシンタクスハイライトと HTML 出力によるプレビューが可能です。

Emacs org-mode

org-mode は Emacs で動くアウトラインプロセッサであり、TODO 管理のプラットフォームでもあります。ブログ程度の文書であればいきなりMarkdown で書き始めても良いのですが、構成に時間をかけるべき文書では、org-mode でアウトラインを推敲し、ある程度固まった時点で、C-c C-e m m で Markdown に出力し仕上げていくとというワークフローも有効です。

Vim

Markdown 文書のシンタクスハイライトが可能です。

Sublime Text

パッケージをインストールすれば、Markdown 文書のシンタクスハイライトが可能で、ブラウザでのプレビューもコマンドから起動できます。

Markdown Text-Editor Plugin for Eclipse

Eclipse の Markdown Editor プラグインです。README.md を ソースコードと同じ IDE で書けるのが便利です。

Kobito

プレビュー付き Markdown エディタ。OS X 専用です。各プログラミング言語のシンタクスハイライトに対応しており、プログラマ向け情報共有サイト Qiita への投稿が簡単です。

Mou

プレビュー付き Markdown エディタ。OS X 専用です。

Write for iOS

プレビュー機能付き Markdown エディタ。iOS 専用。Dropbox に対応しています。iPad で Markdown できます。

GitHub

Markdown 発祥の地なので当然使えます。README.md ファイルを Markdown で書くのがお作法。Wiki や Issue も Markdown です。

BitBucket

GitHub クローン的なサービスなので対応してます。

tumblr

私はリブログばかりしてますが、Markdown でブログも書けます。下書き保存機能があり、プライベート記事も書けます。タグ付け機能もあるので、文書管理にも使えるはずです。

wri.pe

とても使いやすい Markdown 文書作成サービス。リアルタイムでプレビューを表示してくれます。キーボードショートカットが充実。文書を自動保存してくれます。ローカル実行される エディタレベルのユーザビリティです。文書をアーカイブすることも可能で、自分用のバックアップに Dropbox を使えます。今後 オフライン機能や共同編集機能を充実させていくそうで、非常に期待が持てます。

Backlog

Wiki を独自形式と Markdown から選べます。チケットの説明にも使えます。

はてなブログ

Markdown に対応しており、プログラミング言語のシンタクスハイライトもサポートしています。

最後に

Markdown も 基本仕様の部分は各ツール、サービスで共通に使えますが Markdown Extra な拡張仕様についてはまだまだサポートが少ない状況です。個人的には脚注(footnotes) は標準化されて欲しいです。HTML を始めとする各種フォーマットへの変換ツールは、Pandocデファクトになりつつありますが、Haskell とそのパッケージ管理システムが必要で導入が少々メンドウなのが難点です。

今後、標準サポート機能が増えて、各種ツールのサポートが充実していけば Markdown のメリットをより享受できるようになっていくでしょう。