CommonMark と GitHub Flavored Markdown(GFM)はどちらも Markdown の方言ですが、それぞれ異なる特性と機能を提供します。この記事では、それぞれの特性と、GFM が CommonMark に対して追加している機能について解説します。
CommonMark とは
CommonMark は、Markdown の標準仕様を目指したプロジェクトで、明確な規則とテストスイートを提供します。これにより、異なる Markdown パーサ間での互換性が高まります。しかし、一部の機能は GFM に比べて制限的です。
GFM とは
GFM は、GitHub が提供する Markdown の方言で、CommonMark をベースにいくつかの追加機能を持っています。これには以下のようなものがあります:
-
テーブル:パイプ (
|
) とハイフン (-
) を使ってテーブルを作成します。 -
タスクリスト:
- [ ]
と- [x]
を使ってタスクリストを作成します。 -
自動リンク:URL やメールアドレスを自動的にリンクに変換します。
-
ストライクスルー:二つの波線 (
~~
) を使ってテキストを取り消します。 -
フェンスコードブロック:バックティック 3 つでコードブロックを作成し、シンタックスハイライトを指定します。
-
HTML コメント:HTML のコメント構文を利用します。
これらの特性は CommonMark の標準仕様には存在しません。したがって、これらの機能を利用するためには GFM に対応した Markdown パーサーまたはプラグイン(例えば、remark-gfm)が必要となります。
GFM の機能を CommonMark で代替する
CommonMark のみで GFM の一部の機能を代替することも可能ですが、完全に同等の機能を提供するわけではありません。例えば、テーブルを作成するには HTML を利用し、タスクリストは手動でチェックマークを記述するなどの工夫が必要となります。
まとめ
Markdown を利用する際は、自分の目的に最適な Markdown の方言を選択し、必要に応じて対応するパーサーやプラグインを利用することで、より効率的なドキュメント作成を実現できます。
おしまい