解决markdown-it-prism未能正确加载Languages的BUG
在hexo博客同步至csdn - 木然轩一文中,我提到了prismjs
在尝试渲染C++代码块时不能正确加载node_modules/prismjs/components/prism-cpp.js
。于是,我在prismjs
的GitHub项目上提交了Pull Request:cpp extend clike by jlice · Pull Request #1914 · PrismJS/prism。不过,prismjs
的项目维护者却告诉我,这锅prismjs
不背,是markdown-it-prism
自己的问题。
其实在提交这个Pull Request时我也觉得奇怪,prismjs
的用户基数那么大,而C++也是非常常见的语言,要是出现这种问题早就解决了。不过,我的确是在一顿Debug后找到了出错的位置,但这个出错的位置是错误的果,未必是错误的因。
prismjs
prismjs
是一个代码块高亮的库,其作用和highlight.js
差不多,有点像Python里的Pygments
。大致看了下prismjs
的源码,感觉主要就是用正则表达式描述了各编程语言的文法,然后做词法分析,对各种类型的token应用相应的样式。下面是prismjs
的目录结构: