Markdown的烦心事(续)

上回说到,我们发现 Markdown 存在的种种问题,并且做出了相应的解决,可是接下来出现的却让人始料未及。

上回博文链接

如果我们用```括起一段代码,我希望这段代码不被消除,可是事实是这段代码被消除了,那怎么办呢?能不能只把非代码的给消除呢?我翻了翻 marked.js 的官方文档,其中有 sanitize 和 sanitizer,遂设置如下:

$("#markdown_container").html(marked(raw_content,{
    sanitize:true,
    sanitizer:DOMPurify.sanitize,
    highlight: function (code) {
        return hljs.highlightAuto(code).value;
    }
});

其中 highlight 是给 hljs 用的,会去渲染代码。这样子一来,就解决了代码段落的问题。但是我们还没解决 SimpleMDE 的预览的问题呀?查阅资料,发现原来人家也考虑到了,提供了相应的选项,设置就成:

previewRender: function (plainText) {
	return marked(plainText, {
		sanitize: true,
		sanitizer: DOMPurify.sanitize,
		highlight: function (code) {
			return hljs.highlightAuto(code).value;
		}
	});
},
renderingConfig: {
	codeSyntaxHighlighting: true
},

大功告成!终于修复了这个问题!

《Markdown的烦心事(续)》上有3条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据