LoginSignup
0
4

More than 3 years have passed since last update.

Markdown表記法の互換性についてのメモ

Posted at

Qiitaの記事作成や、GitHubのREADMEなどでも広く採用されているMarkdownですが、その表記法がサイトやソフトによって若干異なります。

John Gruber氏が考案したMarkdownはもともと、Markdown記法のテキストファイルをPerlで書かれたparserを通じてHTMLを生成するという、表記法とparserがセットになったものでした。その後、その利便性からPerl以外のparserも開発され、さらにはPandocのようにHTMLのみならずEPUB形式など複数の形式へ出力できるものが登場しました。そして同時に新たな拡張機能と、その拡張機能を利用するための表記法が追加され、結果としてソフトごとの表記法に差異が生じるようになりました。この表記法(およびその表記法で実現する機能)の差異が、flavor、syntax extension、方言、などと呼ばれているものです。

Markdown CommunityMarkdown parser一覧を公開していますが、この一覧はあくまでparserの一覧であり、その他にもPandocのMarkdownをベースにした、ドキュメント中のRコードの実行を想定したR Markdownや、remarkをベースにJSXも書けるようにしたMDXなどが登場しており、Markdownは今も多様化しています。

しかしそれぞれのparserでMarkdownの表記法が全く異なるというわけではなく、使用頻度の高いものは一部統一されていたりもします。例えばバックティック3つ(```)で囲んでコードブロックを表現するという所作はオリジナルのMarkdownではサポートされていませんが、今ではMarkdown表記法のデファクトスタンダードになっていると言えるでしょう。

ただし表記法が同じでも生成されるHTMLはparserにより異なります。parserごとのHTMLの違いはbabelmarkというサイトで見ることができます。

このような状況を受けて、表記法の標準化を目指すCommonMarkが2014年に登場しました。2019年にはバージョン0.29が公開され、今後もアップデートされていくでしょう。Markdownによるドキュメントの管理を予定している場合、動向を注視する必要がありそうです。

(個人的にはPython-Markdownで採用されているAdmonition機能がかなり気に入っているのですが、remark-admonitionsでは表記法が異なっていたりするので統一されないかなあと期待しています。)

備考

この記事はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。
クリエイティブ・コモンズ・ライセンス

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4