搭建一个支持LaTEX的hexo博客

原创 2015年12月01日 01:44:12

What is Hexo?

首先安利一下hexo博客:https://github.com/hexojs/hexo
这是一个运行在nodejs上的支持markdown的博客。在安装完nodejsnpm后你可以这样来安装hexo——

$ npm install hexo-cli -g

以下Quick Start部分摘自官方说明——

安装博客

$ hexo init blog    #这里blog是你文件夹的名字
$ cd blog
$ npm install       #这样会在blog文件夹中生成整个博客程序

开启服务,默认是监听4000端口

hexo server

写一篇新文章

hexo new "Hello World"这样以来它会在你博客目录的./source/_posts下生成一个.md文件,文件名默认是标题,当然可以之后更改的。

其他的博客设置,请参考github上官方文档

利用MathJax来渲染LaTeX数学公式

经过一番google之后,发现有位高手已经写好了一个自动部署MathJax的hexo插件
http://catx.me/2014/03/09/hexo-mathjax-plugin/
安装方式也很简单,在你的博客文件夹下执行——

npm install hexo-math --save
hexo math install

然后在新建的博文中写上一个麦克斯韦方程组查看LaTeX效果——

$$
\begin{eqnarray}
\nabla\cdot\vec{E} &=& \frac{\rho}{\epsilon_0} \\
\nabla\cdot\vec{B} &=& 0 \\
\nabla\times\vec{E} &=& -\frac{\partial B}{\partial t} \\
\nabla\times\vec{B} &=& \mu_0\left(\vec{J}+\epsilon_0\frac{\partial E}{\partial t} \right)
\end{eqnarray}
$$

这时如果你会发现出了一些问题,原因是hexo先用marked.js渲染,然后再交给MathJax渲染。在marked.js渲染的时候下划线_是被escape掉并且换成了<em>标签,即斜体字,另外LaTeX中的\\也会被转义成一个\,这样会导致MathJax渲染时不认为它是一个换行符了。

使Marked.js与MathJax共存

因此我提供一个修改marked.js源码的方式来避开这些问题
- 针对下划线的问题,我决定取消_作为斜体转义,因为marked.js中*也是斜体的意思,所以取消掉_的转义并不影响我们使用markdown,只要我们习惯用*作为斜体字标记就行了。
- 针对marked.js与Mathjax对于个别字符二次转义的问题,我们只要不让marked.js去转义\\,\{,\}在MathJax中有特殊用途的字符就行了。
具体修改方式,用编辑器打开marked.js(在./node_modules/marked/lib/中)

Step 1:

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

替换成

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

这一步是在原基础上取消了对\\,\{,\}的转义(escape)

Step 2:

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

替换成

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

这样一来MathJax就能与marked.js共存了。重启一下hexo看一下吧

版权声明:本文为博主原创文章,如需转载请注明来源。 https://blog.csdn.net/Emptyset110/article/details/50123231

如何在 hexo 中支持 Mathjax?

在 hexo 中,你会发现我们不能用 Latex 语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题。第一步: 使...
  • u014630987
  • u014630987
  • 2017-11-29 21:40:20
  • 721

在hexo博客中使用Mathjax写LaTex数学公式

本博客主题自带是支持Mathjax的,不过这个方法有个令人不爽的缺点, 众所周知加载 Mathjax 的数学公式时是很消耗资源和时间的. 即使在网页中并没有生成公式时, 也会加载最基本 MathJax...
  • sherlockzoom
  • sherlockzoom
  • 2015-02-15 15:43:32
  • 6896

如何在HEXO中渲染Latex数学公式

注:目前开通个人网站朝思录,之后的博文将在上面更新,CSDN博客会滞后一点 被HEXO渲染Latex公式绊了一段时间,最近终于搞定了,以下是步骤: 步骤 1、卸载Marked渲染器,安装...
  • u014792304
  • u014792304
  • 2017-12-01 16:31:35
  • 830

在Hexo中使用mathjax来渲染latex

在Hexo中使用mathjax来渲染latex
  • sysushui
  • sysushui
  • 2017-01-17 19:18:13
  • 2954

处理hexo博客中mathjax与marked.js冲突

例如会把’_’转义成 见 http://blog.csdn.net/emptyset110/article/details/50123231
  • songtoy
  • songtoy
  • 2017-03-14 18:55:53
  • 447

hexo下LaTeX无法显示的解决方案

今天写博客时需要用到LaTeX,但使用了晚上说的各种方法依然无法成功,折腾了一晚上终于可以了,给同样困惑的小伙伴一些参考。 配置信息 这是我的hexo版本和package信息(与LaTe...
  • crazy_scott
  • crazy_scott
  • 2018-02-08 20:57:49
  • 165

搭建Hexo博客(Next主题)中踩过的坑

Hexo Nextgithub主页:https://github.com/iissnan/hexo-theme-next 官网地址:http://theme-next.iissnan.com/一篇比...
  • wuseyukui
  • wuseyukui
  • 2017-03-29 10:44:42
  • 4314

使用 Github 和 Hexo 快速搭建个人博客

导语 个人兴趣爱好特别广泛,喜欢捣鼓各种小东西自娱自乐。虽然都没能深入研究,但是自己的“孩子”还是很想拿出来遛遛得人一句夸奖的。所以刚学 Markdown 的时候很是有想过要搭个个人博客来玩玩,...
  • Qcloud_KID
  • Qcloud_KID
  • 2017-03-27 20:15:05
  • 474

使用xml来显示数学公式

[原创] taowen 2004-04-16         不要误会,这里并不是用国际标准的数学xml来描述,通过最新的浏览器的支持来实现。我只是尝试用xml+xslt,用简单的html来显示。只是...
  • myali88
  • myali88
  • 2004-11-09 21:20:00
  • 867

零基础学习GitHub桌面版-8配置你的Hexo

完善你的页面 1 标签页 Tags page 2 分类页 Categories page 3 社交媒体连接 Social Media Contact 31如何在contacts中增加新的选项 4 ...
  • u012052268
  • u012052268
  • 2018-02-02 20:26:13
  • 222
收藏助手
不良信息举报
您举报文章:搭建一个支持LaTEX的hexo博客
举报原因:
原因补充:

(最多只允许输入30个字)