hexo 中启用数学公式

本文来自 https://blog.csdn.net/crazy_scott/article/details/79293576 感谢原作者。

安装插件

  1. 首先我们需要安装Mathjax插件

npm install hexo-math —save

2 更换Hexo的markdown渲染引擎,hexo-renderer-kramed引擎是在默认的渲染引擎hexo-renderer-marked的基础上修改了一些bug,两者比较接近,也比较轻量级。

npm uninstall hexo-renderer-marked —save
npm install hexo-renderer-kramed —save

解决语义冲突

由于LaTeX与markdown语法有语义冲突,在markdown中,斜体和加粗可以用或者_表示,在这里我们修改变量,将_用于LaTeX,而使用表示markdown中的斜体和加粗。
在博客根目录下,进入node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改:

//escape: /^\([\`{}[]()#$+-.!_>])/,
escape: /^\([`
[]()#$+-.!_>])/,

这一步是在原基础上取消了对,{,}的转义(escape)。
同时把第20行的em变量也要做相应的修改:

// em: /^\b_((?:__|[\s\S])+?)_\b|^*((?:**|[\s\S])+?)*(?!*)/,
em: /^*((?:**|[\s\S])+?)*(?!*)/,

更改配置文件

这里是最重要的一步,我找了好久才在这个网站中找到适用的解决办法。
进入到主题目录,找到_config.yml配置问题,把mathjax默认的false修改为true,并更换cdn的url,具体如下:

# MathJax Support
mathjax:
enable: true
per_page: true
#cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML
cdn: //cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML

如果配置文件里已经有这一行而且版本比这行还新的话,就可以不用更新。

写博客

在每次需要用LaTeX渲染的博文中,在文章的Front-matter里启动mathjax,具体如下:

-—
title: Hexo Usage
date: 2018-2-8 21:01:30
tags: Hexo
mathjax: true
-—

Mathjax 语法
Markdown/LaTex数学符号大全