気がついたら IANA の markdown variants に項目が増えてる。皆さん知ってましたか。 / Markdown Variants https://t.co/Hf2UNFlnIm
— tk0miya (@tk0miya) February 3, 2020
週末に Markdown の記事を書いた流れなのか、普段まったく見向きもしない IANA の Markdown variants リストをふと開いてみました。記憶では最後にこのページにやってきたのは RFC が採用された頃ですから、4年ぶりの再訪です。
すると、なんということでしょう。つい半月ほど前の1月13日に、あたらしい variants として Markdown for SSW がリストに追加されていたのです。
Markdown variants とは
3年前に Markdown in 2016 という記事で紹介したものを引用します。
以前から Markdown を RFC に登録しようという動きはあったのですが、ついにそれが実を結びました。
RFC7763 The text/markdown Media Type と RFC7764 Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations がそれです。これまで説明してきたとおり、処理系によって解釈がまちまちだったり、さまざまな方言が存在する状況で、Markdown はどのように標準化されたのでしょうか?
ふたつの RFC では、Markdown に関するパラメータが次のように定義されました。
- IANA で markdown の方言を Markdown variants として登録管理することになった
- media type には text/markdown を使うことになった
- このふたつを組み合わせて Content-Type ヘッダで text/markdown; variant=Original と指定できる
つまり、RFC は Markdown の “文法” を標準化したのではなく、
- Markdown の文法が分断されていることを追認した上で、
- どの文法を使っているのか(使うのか)を variant として media type で示すことができる
という標準化だったのです。
Markdown の種類を media type 上で表現するためのラベルということですね。
ここまで読んだ皆さんは Content-type: text/markdown; variant=SSW
というヘッダで Markdown for SSW をレスポンスできるようになったわけです。
Markdown for SSW ってなんなの?
Mandragorat Wandystanu というポーランドの Wiki サイトで利用されている Markdown の一種のようです。SSW というキーワードについては一切説明を見つけられなかったので、何を示しているのがわかりませんでした 1。
文法に関しては Pomoc (ヘルプページ)に解説があります。ポーランド語は読めないので Google 翻訳経由で読んでみました。
特徴としては以下のものが挙げられます。
- 打ち消し線文法がある
~~jakiś tekst~~
- ページ参照文法がある
[[SAL::Strona główna]]
- パイプ(
|
)を使ってリンクタイトルを指定できる[[SAL::Strona główna|Sarmacką Armię Ludową]]
- 同じスペースのページを参照する場合はスペース名を省略して
[[::Strona główna]]
と書いても良い模様- Wiki システムにスペースという概念があるようで、
::
の前にはスペース名、後ろにはページ名を指定できる
- Wiki システムにスペースという概念があるようで、
- パイプ(
- ヘッダーレベル3 が最高という記述がある
- レベル4以降はサブディビジョン(?)として扱われるように読めるが、意味はわかりませんでした
また、IANA に登録されている定義では以下のような特徴も挙げられています。
- Markdown Extra 派生である
- MediaWiki 風のテンプレート文法がある
{{template}}
- おそらくこの機能を指しているものと思われる
- 指定したページのコンテンツを(書き換えながら)取り込む、include 的な機能
- 各要素に ID や CSS クラスを適用するための属性ブロック文法がある
{#<id> .class ...}
- 属性ブロック文法は ヘッダー、fenced code blocks、リンク、画像に適用可能
どうやら Markdown Extra に MediaWiki 風のページ参照、テンプレート記法を足したというもののようですね。
そっと追加されている打ち消し文法も味わい深いです。
まとめ
- IANA に Markdown for SSW という variant が追加された
- Markdown Extra に Wiki サイトに適合するために MediaWiki 風の文法が追加されたもの
- 処理系は見当たらないので、今のところMandragorat Wandystanu に登録しないと使えないように見える
特定のサイトでだけ使われている、マイナーなマークダウン亜種であっても IANA に登録できるものだという学びがありました。みなさんも自分の拡張マークダウン文法を IANA に登録していきましょう!