Skip to content

配置MathJax

NexT默认使用hexo-renderer-marked进行公式渲染,同时额外提供了两种方式来优化公式渲染

  • hexo-renderer-pandoc:基于MathJax
  • hexo-renderer-markdown-it-plus/hexo-renderer-markdown-it:基于KeTex

经过测试发现,hexo-renderer-pandoc提供了最大程度的兼容语法以及渲染性能

NexT _config.yml

# Math Formulas Render Support
# Warning: Please install / uninstall the relevant renderer according to the documentation.
# See: https://theme-next.js.org/docs/third-party-services/math-equations
# Server-side plugin: https://github.com/next-theme/hexo-filter-mathjax
math:
  # Default (false) will load mathjax / katex script on demand.
  # That is it only render those page which has `mathjax: true` in front-matter.
  # If you set it to true, it will load mathjax / katex srcipt EVERY PAGE.
  every_page: true            ---------------------> 设置为true

  mathjax:
    enable: true                   ---------------------> 设置为true
    # Available values: none | ams | all
    tags: none

  katex:
    enable: false
    # See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
    copy_tex: false
  • 属性every_page表示是否自动渲染每一页
  • 如果为false就只渲染配置块中包含mathjax: true的文章
    ---
    title: Next Post
    ...
    ...
    mathjax: true
    ---

安装

  • 安装插件
$ npm un hexo-renderer-marked
$ npm i hexo-renderer-pandoc

[ERROR][hexo-renderer-pandoc] pandoc exited with code 9

  • 问题描述
INFO  Start processing
ERROR {
  err: Error: 
  [ERROR][hexo-renderer-pandoc] On /var/jenkins_home/workspace/hexo-blog-docker/docs/themes/next/languages/README.md
  [ERROR][hexo-renderer-pandoc] pandoc exited with code 9: pandoc: Unknown extension: smart

      at Hexo.pandocRenderer (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/hexo-renderer-pandoc/index.js:114:11)
      at Hexo.tryCatcher (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/util.js:16:23)
      at Hexo.<anonymous> (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/method.js:15:34)
      at /var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/hexo/lib/hexo/render.js:75:22
      at tryCatcher (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromise0 (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:649:10)
      at Promise._settlePromises (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:729:18)
      at _drainQueueStep (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:93:12)
      at _drainQueue (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:86:9)
      at Async._drainQueues (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:15:14)
      at processImmediate (internal/timers.js:461:21)
} Process failed: %s languages/README.md
FATAL {
  err: Error: 
  [ERROR][hexo-renderer-pandoc] On /var/jenkins_home/workspace/hexo-blog-docker/docs/source/_posts/dataset/制作图像数据集.md
  [ERROR][hexo-renderer-pandoc] pandoc exited with code 9: pandoc: Unknown extension: smart

      at Hexo.pandocRenderer (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/hexo-renderer-pandoc/index.js:114:11)
      at Hexo.tryCatcher (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/util.js:16:23)
      at Hexo.<anonymous> (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/method.js:15:34)
      at /var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/hexo/lib/hexo/render.js:75:22
      at tryCatcher (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromiseCtx (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/promise.js:641:10)
      at _drainQueueStep (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:97:12)
      at _drainQueue (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:86:9)
      at Async._drainQueues (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (/var/jenkins_home/workspace/hexo-blog-docker/docs/node_modules/bluebird/js/release/async.js:15:14)
      at processImmediate (internal/timers.js:461:21)
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html
  • 解决方案:安装最新的pandoc

相关阅读