520 字
3 分钟
Hexo 5 katex 数学公式渲染
前言
老实说如何在 hexo 中渲染数学公式卡了我非常长的时间,可能是版本问题,我试过网上很多种下载插件的方式,但都没办法用:
我这里始终显示 CDN 接口连接超时,所以我就开始尝试使用 KaTeX 的本地渲染。
Step1: 获取 KaTeX
前往 KaTeX/KaTeX,下载最新的 Release。
解压后将文件夹放入可访问路径中,注意:是从外部可访问的路径!
Step2: 安装 hexo-math
首先,在 hexo 中安装 hexo-math:
npm install hexo-math
然后,在 hexo 的 _config.yml 配置文件中增加如下内容:
# hexo-mathmath: enable: true engine: katex
Step3: 配置 hexo
最后,我们需要将 KaTeX 的接口添加到 hexo 中。
这里根据安装的主题不同有所差异,例如我安装的 Next 主题,路径就是:
theml >> next >> layout >> _partials >> head >> head.swig
在 head.swig 中增加 KaTeX 的接口:
<link rel="stylesheet" href="xxx/katex.min.css" crossorigin="anonymous"><script defer src="xxx/katex.min.js" crossorigin="anonymous"></script><script defer src="xxx/contrib/auto-render.min.js" crossorigin="anonymous"></script>
打个公式测试一下,a_1=b^1+1
其他
注意事项
1. 公式内容需要在一行内结束,如果换行会因为渲染器问题导致内容无法连贯(多行内容是通过<p></p>
标签进行分割),使 KaTeX 按格式无法检索到公式。
2. 公式中出现了部分 Markdown 语法中的关键词,例如_
、^
等,渲染器会在 KaTeX 之前完成渲染,导致数学公式无法渲染。
两种方法,第一种是通过在这些符号前增加 \
来提示渲染器跳过这些特征符号,第二种是对公式内容增加 html 标签使渲染器跳过整个公式内容的渲染,例如 <a>xxx<\a>
、<p>xxx<\p>
。
吐槽: 在 VS Code 里,公式增加
<p>
就无法渲染,但<a>
可以?
单行和内联公式
在 head.swig 中增加如下内容:
<script> document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: [ {left: '$$', right: '$$', display: true}, {left: '$', right: '$', display: false}, ], throwOnError : false }); });</script>
添加完成后,使用 $$
就表示单行公式,使用 $
表示就表示行内嵌入公式(内联)。
Hexo 5 katex 数学公式渲染
https://fuwari.vercel.app/posts/建站/hexo/hexo-5-katex数学公式渲染/