Hexo 默认使用 hexo-renderer-marked
引擎渲染网页,语义冲突的符号还包括_
,*
, {
,}
, \\
等。
更换渲染器
1 | npm uninstall hexo-renderer-marked --save |
修改inline.js
在博客根目录下,找到node_modules\kramed\lib\rules\inline.js
,把第11
行的 escape
变量的值做相应的修改:1
2//escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
escape: /^\\([`*\[\]()#$+\-.!_>])/,
这一步是在原基础上取消了对\,{,}
的转义(escape
)。
同时把第20行
的em
变量也要做相应的修改:1
2//em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
在 Next 主题中开启 MathJax 开关
在主题配置文件中修改:
1 | math: |
文章发布时打开开关:1
2
3
4
5title: hexo nexT 主题插入数学公式
mathjax: true
date: 2019-02-26 13:45:18
tags: hexo
categories: 其他
测试1
$$
P = \frac
{\sum_{i=1}^n (x_i- x)(y_i- y)}
{\displaystyle \left[
\sum_{i=1}^n (x_i-x)^2
\sum_{i=1}^n (y_i-y)^2
\right]^{1/2} }
$$
一些问题
更改了渲染器,修改了inline.js
,确实有效;但有些嵌入的html标签
不能够识别,/
已经被取消了转义的原因?
换回原来的渲染器,打开公式开关,也能照样显示公式,html标签
也能够识别。新版本的 hexo 博客是对这个问题已经进行了修复???不懂。
已经换回原来的渲染器,将开关打开就可以。
测试2
$$
P = \frac
{\sum_{i=1}^n (x_i- x)(y_i- y)}
{\displaystyle \left[
\sum_{i=1}^n (x_i-x)^2
\sum_{i=1}^n (y_i-y)^2
\right]^{1/2} }
$$
好吧,够折腾的,就这样用吧。
参考: