11月14日(木)Markdownセミナー開催日が迫りました。

今週の木曜日に新宿・大久保にてMarkdownのセミナーを計画しています。

セミナーのご案内はこちらより:
「Markdown + CSS/TeXで冊子本を作ってみた 」

まだ席に余裕がありますので、関心をお持ちの方はぜひご参加ください。

本セミナーでアンテナハウスからは『簡単! Markdown+CSSによる冊子本作り―理論と実践』という冊子を制作した体験を主として説明致します。

Markdownの文法については、冊子ではグルーバーの元祖Markdownを基本にしていましたが、その後、他の文法も調べたところ、現時点ではCommonMarkの方が標準として適切と判断するにいたりましたので、セミナーではCommonMarkの文法を基本にご説明いたします。

CommonMarkと元祖Markdownの違い

CommonMarkは、グルーバーのMarkdownの考え方に基づいて、これをより厳格に規定しようという提案です。

2019年9月現在、CommonMark Version 0.29が公開されています。仕様書はジョン・マクファーレン氏(カリフォルニア大学バークレー校哲学教授。汎用マークアップ変換ツールPandocの開発者でもあります。)によるものです。CommonMarkは、元祖Markdownの規定が曖昧な箇所を明確化し、規定に不備がある箇所を補っています。元祖Markdownの考え方を尊重しながらも、元祖Markdownの規定では不合理と考えられる箇所については、説明を付けた上で元祖Markdownとは異なる規定を導入している箇所があります。

MarkdownはASCII句読点文字と空白や空行の組み合わせを使ってマークアップしたテキストをタグで表現した構造化文書に変換します。その際の解釈の一元性を保つ必要があります。例えば、ASCII句読点文字がマークアップ用なのか地のテキストの一部なのか、二つの用途のどちらを優先して解釈するか、などを細かく決めなければなりません。このため、CommonMarkの規則はかなり複雑になっています。CommonMarkでは元祖Markdownのマークアップ機能を基本としながらも、マークアップの付け方や解釈を大幅に強化しています。マークアップに使用するASCII句読点文字は同じでありながら、その使用方法と解釈が大幅に変更になっているものがあります。

CommonMarkの仕様にある文法は非常に微に入り細を穿っています。そのためエンドユーザがCommonMarkの規則を覚えて使うのは困難であり、仕様書はエンドユーザ向けというよりもMarkdown処理系の開発者向けといえます。エンドユーザはリアルタイム・プレビューアを使ってマークアップを解釈した結果を、HTML表示で確認しながらマークアップしていくのが良いでしょう。

追加されたマークアップ機能

CommonMarkは、元祖Markdownの機能をいくつか拡張しています。元祖Markdownのマークアップ機能に対して、CommonMarkで追加された機能は、①コードフェンス、②番号付き箇条書きの区切り記号を元祖Markdownの ‘.’ のみに加えて ‘)’ を使用可能に、③ショートカット型の参照リンクの追加、④強制改行文字の追加です。

CommonMarkで追加されたマークアップ機能一覧
構造 HTML要素 マークアップ文字
コードフェンス pre code ```または~~~で囲まれた範囲 ```
プログラムコード行
```
番号付き箇条書きの区切り文字 ol li 数字+’)’+空白で番号付き箇条書き 1) 番号箇条項目
参照リンク(ショートカット型) a href=”” [リンクテキスト]
別の箇所に
[リンクテキスト]: /uri
[foo]
別の箇所に
[foo]: /uri “title”
強制改行 br 強制改行したい行末に ‘\’ この行末に強制改行\