Javascript は Markdown/Textile を HTML に変換します (理想的には Markdown/Textile を返します)
P粉295616170
2023-08-24 20:46:39
<p>Markdown / Textile 用の優れた Javascript <strong>エディタ</strong> がいくつかあります (例: http://攻撃ラボ.net/showdown/、現在使用しているもの)。しかし、私が必要とするのはMarkdown / Textile -> HTML の間で文字列を変換する Javascript 関数。 </p>
<p>最善のアプローチは何ですか? (理想的には、jQuery フレンドリーである必要があります - 例: <code>$("#editor").markdown_to_html()</code>)</p>
<p><strong>編集: </strong>これを別の言い方で言えば、Rails の <code>textilize()</code> と <code>markdown()< を探しているということです。 /code> ; Javascript 実装> テキスト アシスタント</p>
ここで JavaScript ソリューションを、縮小された (非圧縮) サイズと長所/短所とともにリストする価値があると考えました。縮小されたコードの圧縮サイズは、非圧縮サイズの約 50% になります。に起因する:###
完全なサポートが必要でユーザーが必要な場合は、編集または任意のドキュメントに- markdown-it (104KB) を使用しますが、サイズや帯域幅についてはあまり気にしません。
かなり高品質でテーブルのサポートが必要な場合は、私独自の - drawdown (1.3KB) を使用してください。ただし、軽量なものが必要で、変換以外の機能を必要としない、またはすべてのエッジ ケースを解決します。
セキュリティやスケーラビリティなどの独自の機能が必要な場合は、他の機能のいずれかを使用してください。 -
すべて MIT ライセンスを使用し、ほとんどは npm 上にあります。マークダウンイット: 104KB。 CommonMark の移行以降、StackExchange のサポートを提供します 。現在ではほぼゴールドスタンダードとなっている CommonMark 仕様に従い、構文拡張をサポートし、デフォルトで安全な出力を生成します。素早く、Showdown と同じくらい強力ですが、スケールははるかに大きくなります。大量の機能 (同期スクロールなど) を備えています。これは http://dillinger.io/ の基礎でもあります。
ショーダウン: 28KB。 CommonMark を完全にサポートしており、以前のゴールド スタンダードでした。Markdown-It よりも大幅に小さいですが、速度は遅くなります。ページダウンの基本です。
ページダウン: 8KB。 CommonMark 移行前の StackExchange のサポートの提供 。非常に強力ですが、表、定義リスト、脚注などがありません。 8KB コンバータ スクリプトに加えて、エディタおよびクリーナー スクリプトも提供します。
縮小: 1.3KB。完全開示、私が書きました。他の軽量コンバータよりも幅広い機能を備え、すべてではありませんが、ほとんどの CommonMark 仕様を処理します。ユーザーによる編集には推奨されませんが、Web アプリケーションで情報を表示する場合には役立ちます。インラインHTMLはありません。
マーク: 19KB。包括的、単体テスト スイートに対してテストされ、カスタム レクサー ルールをサポートします。
マイクロマークダウン: 5KB。多くの機能がサポートされていますが、
# を使用した順序なしリストなどの一般的な機能や、分離されたコード ブロックなど、厳密には仕様の一部ではない一般的な機能がいくつかあります。エラーが多く、長いドキュメントのほとんどで例外がスローされます。私はそれを実験的だと考えています。
ナノマークダウン: 1.9KB。機能の範囲は、ほとんどのドキュメントで使用されるものに限定されており、micromarkdown よりも強力ではありますが、完璧ではなく、独自の非常に基本的な単体テストを使用します。かなり堅牢ですが、多くのエッジケースでは問題が発生します。
mmd.js: 800 バイト。使用可能な最小限のパーサーを作成するよう努めた結果です。小さなサブセットがサポートされているため、ドキュメントをそれに合わせて調整する必要があります。
markdown-js: 54KB (縮小版はダウンロードできません。縮小版は利用できる場合があります) ~ 20KB)。包括的でテストも含まれているように見えますが、私はあまり詳しくありません。
meltdown: 41KB (縮小するとダウンロードできません。約 15KB に縮小される場合があります)。 jQuery プラグイン、Markdown Extra (表、定義リスト、脚注)。
unified.js: さまざま、5 ~ 100 KB。 HTML、マークダウン、散文間で変換するためのプラグインベースのシステム。必要なプラグイン (スペル チェック、構文の強調表示、入力クリーニング) に応じて、ファイル サイズは異なります。おそらくクライアント側よりもサーバー側を使用することの方が多いでしょう。
Markdown -> HTML の場合、Showdown
があります。StackOverflow 自体は Q&A に Markdown 言語を使用していますが、それがどのように機能するかを試してみましたか?
そうですね、これは MIT ライセンスで利用できる PageDown を使用しているようです p>
質問 優れた Markdown Javascript ライブラリまたはコントロールはありますか? とその回答も役立つかもしれません :-)
もちろん、完全なエディターはまさにあなたが求めているものではありませんが、Markdown コードを HTML に変換するには何らかの関数を使用する必要があり、それらのエディターのライセンスによっては、その機能を再利用できる場合があります。 .
実際、Showdown のコード ソース (ファイル showdown.js) をよく見ると、コメントのこの部分が見つかります:
リーリーこれは jQuery 構文ではありませんが、アプリケーションに簡単に統合できるはずです ;-)
繊維に関しては、役に立つものを見つけるのは難しいようです:-(
一方、HTML -> Markdown の場合は、少し難しいかもしれません...
私がやるべきことは、Markdown と HTML の両方をアプリのデータ ストア (データベース?) に保存し、1 つを編集に使用し、もう 1 つをレンダリングに使用することです...より多くのスペースを必要としますが、「復号化」よりも優れているようですリスクが少ない" HTML...