use*_*029 4 javascript markdown syntax-highlighting callback
我试图让彩虹语法高亮库与标记的降价渲染引擎一起工作.该marked文档指出通过以下配置选项支持语法高亮显示:
marked.setOptions({
highlight: function(code, lang) {
return highlighter.javascript(code);
}
});
Run Code Online (Sandbox Code Playgroud)
的rainbow 源代码表示传入的字符串以突出显示通过下面的语法被支撑:
Rainbow.color(code, lang, success);
Run Code Online (Sandbox Code Playgroud)
关于如何把两者放在一起,我有点不知所措.具体来说,success是一个异步调用的回调,我不能简单地从回调Rainbow.color内的代码返回值highlight.这将如何实现?
作者标记在这里.我刚才在问题跟踪器上解决了这个问题:https://github.com/chjj/marked/issues/47
使用标记的异步荧光笔是可能的.你只需要迭代lexer吐出的标记.
示例:https://github.com/chjj/marked/issues/47#issuecomment-5297067(请记住这是一个示例.您必须稍微修改它.)
我可能只是使用上面链接中的方法标记实现它.对于使用异步荧光笔的人来说,它会受到性能影响,但是如果你需要一个异步荧光笔,这意味着荧光笔正在做某种IO而你已经受到了性能损失.
您可以尝试使用另一个突出显示库,例如highlight.js - 它具有同步突出显示方法(hljs.highlight(lang, code).value和hljs.highlightAuto(code).value),您可以在浏览器中使用它们,如下所示:
marked.setOptions({
highlight: function(code) {
return hljs.highlightAuto(code).value;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3721 次 |
| 最近记录: |