仅使用showdown.js Markdown表达式库仅限制某些格式

Pra*_*aba 6 html javascript markdown showdown

我正在使用showdown.js,可以从https://github.com/showdownjs/showdown/下载

问题是我试图只允许某些格式?例如,只允许使用粗体格式,其余的不进行转换,例如丢弃格式

如果我正在编写下面是Markdown Expression的文本

"Text attributes _italic_, *italic*, __bold__, **bold**, `monospace`."
Run Code Online (Sandbox Code Playgroud)

以上的输出将在下面

<p>Text attributes <em>italic</em>, <em>italic</em>, <strong>bold</strong>, <strong>bold</strong>, <code>monospace</code>.
Run Code Online (Sandbox Code Playgroud)

转换后.现在我想要的是转换时,它应该将粗体表达式转换为它应该丢弃的其余表达式.

我使用下面的代码将markdown表达式转换为下面的普通文本

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

谢谢!

Elw*_*ens 1

这对于 showdown.js 来说是不可能的。这需要从源代码创建 showdown.js 的自定义构建,删除您不需要的子解析器。

还有其他机制可用于让 Showdown 仅转换粗体 Markdown,例如侦听解析前和后分派的事件,但由于您想要粗体,这不是我会采取的方法,因为它需要编写一个一些只需要几行代码的东西就需要很多代码。

您可以做的是使用 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;
}
Run Code Online (Sandbox Code Playgroud)

来源