解决markdown-it-prism未能正确加载Languages的BUG

在尝试渲染C++代码块时,发现markdown-it-prism未能正确加载语言。经过调试,问题出在loadPrismLang函数,直接调用了prism-cpp模块而未处理依赖。提交的Pull Request修复了这个问题,通过prism-components/index.js中的自动处理依赖。虽然在旧版Node.js上测试未通过,但已被项目维护者Merge并添加为测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文首发在我的个人博客:https://jlice.top/p/7vg1g/。欢迎大家前去参观,么么哒~

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的目录结构:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值