markdown-it-ステロイドのマークダウン/ CommonMarkパーサー

少し前までは、 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



All Articles