作業メモとして。なお、 CommonMark ≒ GitHub Flavored Markdown くらいの感覚で書いてます(実際にはGFMはCommonMark + いくつかの独自拡張)。
膠着語分かち書きしない言語におけるスペースで区切られないトークンとインライン記法について
膠着語というのは、日本語や中国語のように単語と単語の間にスペースをいれないタイプの言語です。
膠着語は分かち書きしない言語のことではありませんでした…。素直に「分かち書きしない言語」というのがよさそうです。
CommonMarkは分かち書きしなくてもそれなりに動くように定義されていますが、エッジケースではまだ思った通りに動かないということがあるようです。
ひとつ仕様のバグっぽいのをみつけたので起票しましたが、これ系の話は中国語のコンテキストで議論されてるっぽいので見守り。
Non-spaced tokens with emphasis seems not parsed as expected · Issue #488 · commonmark/CommonMark
脚注記法
CommonMarkには(ついでにGFMにも)脚注記法は存在しません。存在しないこと自体はまあいいのですが、PandocやQiitaなど多数のmarkdownサービスで採用されている脚注記法(以下pandoc’s footnotes)が、CommonMarkのLink reference definitionという記法と一部かぶっていて意味がまったく違うため、CommonMarkとの互換性をとるとpandoc’s footnotesを実装することが不可能であるという問題があります。
これはCommonMarkの仕様を変えるかpandoc’s footnotesを諦めるかの二択なので困ったものです。
これも起票済み。
Footnote extensions vs Link Reference Definition - Extensions - CommonMark Discussion
参考スレッド:
CommonMarkのLink Reference Definitionがpandocのfootnotes (qiitaでも採用されている脚注記法)と構文的にはかぶっているのに意味が全然ちがっていて頭を抱えてる。 https://t.co/sACMtHu3b3
— FUJI Goro (@__gfx__) August 14, 2017
見出し記号(#
)のあとにスペースが必要な件
CommonMark以前の仕様が未定義だったGFMでは #foo
で見出しになっていたのが、CommonMark化後のGFMで見出しにならないのはだいたいこのせいです。これはおそらく、GitHubで多用するissue記法(#123
)と明確に区別するためにスペースを必要にしたのだと思います。GitHubはCommonMark仕様策定に噛んでますからね。
これは受け入れるしかないのですが、影響範囲がそれなりにあるのでどうしたものかなという感じです。