如何在hexo中支持Mathjax

最近在整理HEXO搭建博客的一些问题,让hexo能够支持LaTeX是很重要的一个环节,这样就能够完美的展示数学公式。下面就是一些细节

第一步: 使用Kramed代替 Marked

hexo 默认的渲染引擎是 marked,但是 marked 不支持 mathjax。 kramed 是在 marked 的基础上进行修改。我们在工程目录下执行以下命令来安装 kramed.

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

然后,更改/node_modules/hexo-renderer-kramed/lib/renderer.js,更改

// Change inline math rule
function formatText(text) {
    // Fit kramed's rule: $$ + \1 + $$
    return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');
}

// Change inline math rule
function formatText(text) {
    return text;
}

第二步: 停止使用 hexo-math

首先,如果你已经安装 hexo-math, 请卸载它,然后安装 hexo-renderer-mathjax 包

npm uninstall hexo-math --save
npm install hexo-renderer-mathjax --save

第三步: 更改默认转义规则

因为 hexo 默认的转义规则会将一些字符进行转义,比如 _ 转为 , 所以我们需要对默认的规则进行修改.

vi node_modules/kramed/lib/rules/nline.js
// 替换11行
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
//修改为
escape: /^\\([`*\[\]()# +\-.!_>])/,

//替换20行
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
//修改为
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

第四步: 开启mathjax

vi themes/next/_config.yml

开启 mathjax功能

mathjax:
  enable: true
  perpage: false
  cdn: //cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML

并在博客中使用mathjax

---
title: Testing Mathjax with Hexo
category: Uncategorized
date: 2017/05/03
mathjax: true
---

这样在本地开启hexo服务就没有问题了,不过最终还是使用了GitHub和gitee个人主页,域名也比较满意,顺便推销一下。
https://frone.github.io/
https://frone.gitee.io/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值