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

问题是我试图只允许某些格式吗?例如。例如,只允许使用粗体格式,其余的将不进行转换,并且其格式将被舍弃

如果我在下面写的是 Markdown表达式的文本

"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>.

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

我正在使用下面的代码将markdown表达式转换为下面的普通文本
var converter = new showdown.Converter(),
//Converting the response received in to html format
html = converter.makeHtml("Text attributes _italic_, *italic*, __bold__, **bold**, `monospace`.");

谢谢!

最佳答案

开箱即用,对于showdown.js来说是不可能的。这将需要从源代码创建showdown.js的自定义版本,并删除不需要的subParsers。

还有其他机制可以用来让Showdown仅转换粗体markdown,例如监听解析之前和之后的调度事件,但是由于您只想将粗体转换,因此我不会采取这种方法,因为它需要为可能只需要几行代码的事情编写大量代码。

相反,您可以使用showdown.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;
}

Source

关于javascript - 仅使用showdown.js Markdown表达式库限制某些格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37695155/

10-10 16:16