发布于 

让Hexo Blog支持Mathjax

最近重新搭了一遍博客,使用的主题是Stella,感觉还挺对我审美的。然而这个主题本身不支持Mathjax,所以还得手动改一下。

Add themes/*my_theme*/layout/mathjax.ejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<% if (theme.mathjax.enable){ %>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
processEscapes: true
}
});
</script>

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
}
});
</script>

<script type="text/x-mathjax-config">
MathJax.Hub.Queue(function() {
var all = MathJax.Hub.getAllJax(), i;
for(i=0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
</script>

<script type="text/javascript" src="<%- theme.mathjax.cdn %>"></script>
<% } %>

Add this to _config.yml

1
2
3
4
# MathJax Support
mathjax:
enable: true
cdn: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-AMS-MML_HTMLorMML

Add this to themes/*my_theme*/layout/post.ejs

1
2
3
<% if (page.mathjax == true){ %>
<%- partial('mathjax') %>
<% } %>

Enable mathjax in post’s header

1
2
3
4
5
6
7
---
title: 让Hexo Blog支持Mathjax
date: 2022-02-04 17:53:21
tags: [blog]
categories: [notes]
mathjax: true
---

Replace the renderer

如果之前有安装过hexo-math,还需要先卸载。
Hexo 默认的 Markdown 渲染器是hexo-renderer-marked,在解析$\LaTeX$语法的时候会和 Markdown 本身的语法符号冲突。
最直接的解决方法是换个渲染器,在这里我选择的是 hexo-renderer-kramed

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

效果

参考文章:
给Hexo主题添加LaTeX公式支持