少し前までは、 Marketdownを統一するCommonMarkのイニシアチブについて多くの話題がありました。 最後に、この素晴らしいマークアップで、秩序が来るように思われます。 しかし実際には、すべてがそれほど単純ではありません。 現在、基本的な構文に関する作業が進行中であり、拡張機能はすぐには提供されません。 誰もが1年以上待つことはできません。 しかし、仕様の開発はより科学的な作業です。 特定のプロジェクトでマークダウンを有効にする方法の実践に興味があります。
優れたmarqdownパーサーからプログラマーに必要なものは何ですか? もちろん速度ではありません:)。 そして、独自の構文拡張を追加する機能が本当に必要です。 残念ながら、以前に出会ったすべてのパーサーの実装では、マークアップの解析ロジックがしっかりと固定されています。 残っているのは、クローブで最終結果を選択し、競合が発生しないことを願うことです。 もちろん、信頼できる排気を保証することは不可能です。 他の方法も可能です-パッチをアップストリームに送信してみてください。 しかし、あなたの拡張機能の構文があなた以外の誰かによって必要とされ、あなたのコードが受け入れられるという保証はありません。
どうする? 幸いなことに、今ではmarkdown-itがあります!
markdown-itは他のパーサーとどう違うのですか?
1.解析ルールを変更する機能。 今、あなたはプロジェクトの作者の意見に依存しません-あなた自身のプラグインを作って、幸せになってください。
2. CommonMarkの厳格な順守。
3. githubのように、表と取り消し線付きテキストのサポート。 近い将来、著者は他の人気のある拡張機能を追加する予定です。
4.タイポグラファーのようなボーナスパン。そのルールも補うことができます。
デモ
おもしろいことは、ローリングプラグインシステム全体で、パーサーが非常に迅速に動作することです。 javascriptで記述された参照パーサーを2〜3回追い越し、推定によると、Cのバリアントは2回しか失わないはずです。 開発者の経験の影響を受けているようです。 かつて、私はすでに彼らのzlibポートについて書いていました。
パーサーで実用的な観点から他に役立つものは何ですか? 埋め込みHTMLを使用する必要はありません(結局、必要なものはすべてプラグインを介して追加できます)。 したがって、バリデーターがXSSから保護する必要はありません。 これは、特にOWASPのようなサーバーパッケージをドラッグできないブラウザーにとって非常に便利です。
一般に、結果は非常に印象的です。なぜなら、速度について考えなくても、構成可能なパーサーを構築すること自体は簡単な作業ではないからです。 さて、実際的な利点は明らかです。
Githubプロジェクトのアドレス-github.com/markdown-it/markdown-it