Hexo支持数学表达式

hexo默认的hexo-renderer-marked渲染math有问题,要在hexo中使用公式,默认有一点坑,我帮你跳过它

安装pandoc

hexo默认的hexo-renderer-marked渲染math有问题,要安装hexo-renderer-pandoc

npm un hexo-renderer-marked
npm i hexo-renderer-pandoc
npm i hexo-renderer-markdown-it-plus

hexo中使用pandoc,还需要本地支持.我们需要在VScode安装扩展vscode-pandoc

如果hexo g的时候pandoc还报错,得去本地安装pandoc了

去github上下载最新版本https://github.com/jgm/pandoc/releases

tar -xvf pandoc-2.14.0.3-linux-amd64.tar.gz
ln -s /root/pandoc-2.14.0.3/bin/pandoc /usr/bin/pandoc

如果你碰到这个错误[ERROR][hexo-renderer-pandoc] pandoc exited with code 7: pandoc: Unknown extension: smart

那么你可以修改这个文件hexo-blog/node_modules/hexo-renderer-pandoc/index.js

把这行代码注释掉改成下面的

//var args = [ '-f', 'markdown-smart'+extensions, '-t', 'html-smart', math]
var args = [ '-f', 'markdown'+extensions, '-t', 'html', math]

next主题设置数学表达式

修改next主题配置文件

math:
# Default (false) will load mathjax / katex script on demand.
# That is it only render those page which has `` in front-matter.
# If you set it to true, it will load mathjax / katex script EVERY PAGE.
every_page: false

mathjax:
enable: true
# Available values: none | ams | all
tags: ams

katex:
enable: true
# See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
copy_tex: true

every_page:关闭之后,如果你需要渲染公式,需要再front-matter里添加mathjax:true才会生效

去掉多余标签

hexo-renderer-pandoc渲染器对图片进行渲染时,会生成一个 figcaption 的标签,导致图片下面多出一行文字,这不是我们想要的.可以在设置里关掉

修改hexo配置:

pandoc:
extensions:
- '-implicit_figures'

next主题说明

7.7.2 版本中,NexT 主题升级了内置的 MathJax 的版本。

旧版本的 NexT 文档中建议使用 MathJax 的用户安装 hexo-renderer-kramed,但由于这一插件已经停止维护,在这次 MathJax 升级后将不再被 NexT 支持,请使用 hexo-renderer-pandoc 代替(需要先安装 pandoc)。

此外,如果在 vendors 中设置了 CDN 链接,请更新或移除它们以使用默认的 CDN 配置,否则会加载失败。

NexT 除内置的 MathJax 和 KaTeX 引擎外,还提供了 hexo-filter-mathjax 插件用于后端渲染,无需加载前端脚本,欢迎使用。