解决Hexo 渲染数学公式(亲测2024可用)
前言
Hexo
默认的Markdown
渲染器是hexo-renderer-marked
,并不支持Mathjax
,不支持emoji
表情,之前为了让网页显示emoji, 将渲染器更换为hexo-renderer-markdown-it
, 最近发现该渲染器也不支持Mathjax
,为了让网页显示数学公式,再次更换渲染器。
Hexo
常见的Markdown
渲染器有:hexo-renderer-marked
,hexo-renderer-kramed
,hexo-renderer-pandoc
,hexo-renderer-markdown-it
,hexo-renderer-markdown-it-plus
,其简单对比如下(参考于:Hexo的多种Markdown渲染器对比分析),
渲染器 | Mathjax | 插件扩展 | emoji表情 |
---|---|---|---|
hexo-renderer-marked | ❌ | ❌ | ❌ |
hexo-renderer-kramed | ✔️ | ❌ | ❌ |
hexo-renderer-pandoc | ✔️ | ❌ | |
hexo-renderer-markdown-it | ✔️(支持不太好) | ✔️ | ✔️ |
hexo-renderer-markdown-it-plus | ✔️ | ✔️ | ✔️ |
安装过程
卸载已有渲染器
1 | npm un 渲染器名称 --save |
以我的为例
1 | npm un hexo-renderer-markdown-it --save |
安装新渲染器
1 | npm i hexo-renderer-markdown-it-plus --save |
配置站点文件_config.yml
, 添加如下内容
1 | markdown_it_plus: |
配置Butterfly
主题文件, 启用katex
mathjax 有坑 !!
安装自动部署MathJax的hexo插件
npm install hexo-math --save
配置成功后公式示例
单行公式
1 | $$ |
多行公式失败
1 | $$ |
\begin{align} \nabla\cdot\vec{E} &= \frac{\rho}{ \epsilon_0 } \\ \nabla\cdot\vec{B} &= 0 \\ \nabla\times\vec{E} &= -\frac{\partial B}{ \partial t } \\ \nabla\times\vec{B} &= \mu_0\left(\vec{ J }+\epsilon_0\frac{ \partial E }{\partial t} \right) \end{align}
还有一个bug,渲染公式总是出现两行,还有一些公式根本就是渲染错误
- 查出问题是版本问题,引入一个css文档即可.
<link href="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/KaTeX/0.10.2/katex.min.css" rel="stylesheet">
- 原文
安装完成后所有npm包
查看命令
1 | npm list --depth=0 |
输出结果
1 | hexo-site@0.0.0 D:\GitHub\Hexo |
反正暂时也够用了,等后续官方慢慢修复吧~
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.