如何在 hexo 中支持 Mathjax?
来源:互联网 发布:出国旅游信用卡知乎 编辑:程序博客网 时间:2024/06/03 12:00
Github 地址
简书地址
CSDN地址
在 hexo 中,你会发现我们不能用 Latex
语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题。
第一步: 使用Kramed代替 Marked
hexo
默认的渲染引擎是 marked
,但是 marked
不支持 mathjax
。 kramed
是在 marked
的基础上进行修改。我们在工程目录下执行以下命令来安装 kramed
.
npm uninstall hexo-renderer-marked --savenpm install hexo-renderer-kramed --save
然后,更改/node_modules/hexo-renderer-kramed/lib/renderer.js,更改:
// Change inline math rulefunction formatText(text) { // Fit kramed's rule: $$ + \1 + $$ return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');}
为:
// Change inline math rulefunction formatText(text) { return text;}
第二步: 停止使用 hexo-math
首先,如果你已经安装 hexo-math
, 请卸载它:
npm uninstall hexo-math --save
然后安装 hexo-renderer-mathjax 包:
npm install hexo-renderer-mathjax --save
第三步: 更新 Mathjax 的 CDN 链接
首先,打开/node_modules/hexo-renderer-mathjax/mathjax.html
然后,把<script>
更改为:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
第四步: 更改默认转义规则
因为 hexo
默认的转义规则会将一些字符进行转义,比如 _
转为 <em>
, 所以我们需要对默认的规则进行修改.
首先, 打开
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
更改为:
escape: /^\\([`*\[\]()# +\-.!_>])/,
把
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
更改为:
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
第五步: 开启mathjax
在主题 _config.yml
中开启 Mathjax, 找到 mathjax
字段添加如下代码:
mathjax: enable: true
这一步可选,在博客中开启 Mathjax
,, 添加以下内容:
---title: Testing Mathjax with Hexocategory: Uncategorizeddate: 2017/05/03mathjax: true---
通过以上步骤,我们就可以在 hexo
中使用 Mathjax
来书写数学公式。
阅读全文
0 0
- 如何在 hexo 中支持 Mathjax?
- 在hexo博客中使用Mathjax写LaTex数学公式
- 在Hexo中使用mathjax来渲染latex
- 如何在 MathJax 中使用 Latex 编辑数学公式
- 处理hexo博客中mathjax与marked.js冲突
- 如何在HEXO中渲染Latex数学公式
- 使用mathjax在博客中完美显示数学公式,支持PC,手机浏览器
- 使用MathJax在HTML中显示LaTeX
- 在网页、博客、React中配置mathjax
- Hexo在Github中搭建博客系统(1)Hexo安装
- 如何在Gallery3D中支持Gif功能
- 如何在DropWizard中支持Cometd
- 如何在Mahout中支持mongodb
- 将hexo部署在github中--备忘
- MathJax
- MathJax
- mathJax
- MathJax 支持的 Latex 符号总结
- ES6中用数组方法遍历DOM
- Linux--预定义变量、函数
- Java中的递归思想
- 【选择器小结】正则表达式、XPath选择器、CSS选择器小结和使用场景
- Node child_process的fork,spawn,exec我有话要说
- 如何在 hexo 中支持 Mathjax?
- Android之ndk之用arm-linux-androideabi工具通过地址找到具体哪里崩溃
- 列表操作
- cosh
- 数据结构-图-网的邻接链表构造(1)
- html position与z-index定位学习
- 关于mvc模式的具体思考
- 编写安全无错C代码
- C++Primer习题第10章