Markdown の拡張は諸刃の剣 🗡️

Yuki Hattori
·

Marp で Markdown 拡張しまくってる奴が何言ってんだって話ですけど、この考え方はずーーーっと変わってません。

Markdown は構造がシンプル故に、リッチなことをしようとすると、限界を迎えるのも早い。

かといって、Markdown をむやみに拡張すると、汎用フォーマットとしての互換性が落ちるというリスクがある。

エンドユーザーにとっては、簡単な記法でより便利な機能を使えたら、そりゃ嬉しいでしょう。

ツールの特徴として、目を引く要素にもなり得ます。

でも、その記法が使えないツールに、同じ Markdown を持っていくと、何かしら非互換が発生する可能性があります。

例えばエラーになったり、ノイズのような出力になったり。

独自の機能拡張は、「Markdown ドキュメントの互換性を蔑ろにしてしまう可能性がある」という二面性があるわけです。

もちろん、ツールの目的に応じて拡張すること自体は別に構わないのですが、利便性ばかりに目を向けず、一歩立ち止まって、汎用フォーマットとしての Markdown の性質を考えることも大事だよ、というお話でした。

余談

catnose 氏は、 Zenn で実装されている Markdown の独自記法 について、こう語る。

うちの Marp の場合、デフォルトの拡張は極力抑えめにして、HTMLを使用してもらう方針を維持しつつ、ユーザーさん側で追加のプラグインを取捨選択できるようにしています。

一応、高度な使い方に分類されるので、CLI ツールやコアを直接使う人みたいな、知識のある人が対象です。GUI ツールを使うエンドユーザー向けにそれをやり始めると、セキュリティ問題がずっとつきまとうので。