hexo html代码高亮,使用 prismjs 自定义 Hexo 代码高亮

本文介绍了如何在Hexo博客中使用Prismjs自定义代码高亮,通过修改hexo-renderer-marked插件、添加自定义脚本和样式文件,实现了对ts、tsx等语言的良好支持,并解决了行号显示的问题。
摘要由CSDN通过智能技术生成

一直就想优化一下 Hexo 的代码高亮部分来着,对 ts、tsx 部分的支持一直不太好;也许直接更新 Next 就能直接解决,但博客部分已经魔改了不少,本着这个原则就继续魔改下去好了。本站是在 Next 5 的基础上建成的,不过本文内容与 Next 5 的关系不大

重写代码块的 render

我使用了 hexo-renderer-marked 插件,这个插件的作用就是将 Markdown 文件渲染成 HTML。

查阅文档,发现 hexo-renderer-marked 提供了扩展 marked 插件的功能,marked 是真正进行 Markdown 转换的工具。目前(hexo-renderer-marked@2.0.0 版本)暂未实现该功能,不过主分支上已经支持了,所以我暂时是直接使用了主分支上的代码。

package.json 中可以这么写:

不过在重写之前需要关闭默认的 highlight 功能,在根目录下 _config.yml 修改:

那么事情就简单了,在 scripts 下创建脚本,命名随意,我将其放在了 themes/next/scripts/daief/highlight.js:scripts 下的脚本会在 Hexo 运行时自动被加载,可在此实现一些自定义的插件等。

该脚本的功能就是使用 prismjs 来解析代码块,重写默认的行为。

添加样式文件

在主题配置文件(themes/next/_config.yml)下添加一个自定义选项 prismjs,这样一来版本的维护就比较方便了:

自己添加的东西最好跟库分开,Next 也已经考虑到了这一点,如果需要在每个页面的

中添加内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值