今週の木曜日に新宿・大久保にて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の ‘.’ のみに加えて ‘)’ を使用可能に、③ショートカット型の参照リンクの追加、④強制改行文字の追加です。
構造 | HTML要素 | マークアップ文字 | 例 |
---|---|---|---|
コードフェンス | pre code | ```または~~~で囲まれた範囲 |
```
|
番号付き箇条書きの区切り文字 | ol li | 数字+’)’+空白で番号付き箇条書き | 1) 番号箇条項目 |
参照リンク(ショートカット型) | a href=”” | [リンクテキスト] 別の箇所に [リンクテキスト]: /uri |
[foo] 別の箇所に [foo]: /uri “title” |
強制改行 | br | 強制改行したい行末に ‘\’ | この行末に強制改行\ |