6

https://github.com/showdownjs/showdown/からダウンロードできる showdown.js を使用しています

質問は、特定のフォーマットのみを許可しようとしているのですか? たとえば、太字の書式設定のみが許可され、残りは変換されず、書式設定は破棄されます。

以下のMarkdown Expressionであるテキストを書いている場合

"Text attributes _italic_, *italic*, __bold__, **bold**, `monospace`."

上記の出力は以下になります

<p>Text attributes <em>italic</em>, <em>italic</em>, <strong>bold</strong>, <strong>bold</strong>, <code>monospace</code>.

変換後。今私が欲しいのは、変換時に太字の式だけを変換し、残りの式を破棄する必要があることです。

以下のコードを使用して、マークダウン式を以下の通常のテキストに変換しています

var converter = new showdown.Converter(),
//Converting the response received in to html format 
html = converter.makeHtml("Text attributes _italic_, *italic*, __bold__, **bold**, `monospace`.");

ありがとうございました!

4

1 に答える 1

1

これは、すぐに使用できる showdown.js では不可能です。これには、ソースから showdown.js のカスタム ビルドを作成し、不要な subParser を削除する必要があります。

解析の前​​後にディスパッチされたイベントをリッスンするなど、対決で太字のマークダウンのみを変換するために使用できる他のメカニズムがありますが、太字のみを変換したいのでこれは私がとるアプローチではありません。数行のコードしか必要としないものの大量のコード。

代わりにできることは、次のように太字部分を解析/変換する showndown.js の一部を使用することです。

function markdown_bold(text) {
    html = text;
    //underscores
    html = html.replace(/(^|\s|>|\b)__(?=\S)([^]+?)__(?=\b|<|\s|$)/gm, '$1<strong>$2</strong>');
    //asterisks
    html = html.replace(/(\*\*)(?=\S)([^\r]*?\S[*]*)\1/g, '<strong>$2</strong>');
    return html;
}

ソース

于 2016-06-08T09:26:51.097 に答える