搭建一个支持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看一下吧

版权声明:本文为博主原创文章,如需转载请注明来源。

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

被HEXO渲染Latex公式绊了一段时间,最近终于搞定了,这里给出操作步骤
  • u014792304
  • u014792304
  • 2017年12月01日 16:31
  • 184

在Hexo中使用mathjax来渲染latex

在Hexo中使用mathjax来渲染latex
  • sysushui
  • sysushui
  • 2017年01月17日 19:18
  • 2335

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

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

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

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

LaTex

部分转载自:这篇文章 LaTeX新人教程_30分钟从完全陌生到基本入门:一篇百度文库的文章,可以搜一下,已存盘 一份不太简短的LaTex2 介绍 中文翻译介绍 已存盘 LaTex排版学习笔...
  • u014015972
  • u014015972
  • 2016年01月29日 15:38
  • 3508

LaTeX简易教程

排版数学公式是TeX系统设计的初衷,它在LaTeX中占有特殊地位,也是LaTeX最为人所称道的功能之一。基于对MathType排版效果的不满意,以及对公式进行检索的需求,我们使用LaTeX输入数学公式...
  • sdlypyzq
  • sdlypyzq
  • 2016年02月23日 08:48
  • 1201

数学之美~(01)最伟大的数学公式!

英国科学期刊《物理世界》曾让读者投票评选了“最伟大的公式”,最终榜上有名的十个公式既有无人不知的1+1=2,又有著名的E=mc2;既有简单的-圆周公式,又有复杂的欧拉公式…… 从什么时候起我们开始厌恶...
  • qq_36617521
  • qq_36617521
  • 2016年11月24日 15:28
  • 630

Wordpress支持LaTex了

  从reddit.com上看到的。Wordpress.com的博客支持了。Wordpress.com碰到$latex的字样就进入inline math模式,自动把$latex $间的语句按 语法翻译...
  • g9yuayon
  • g9yuayon
  • 2007年03月03日 20:59
  • 4500

LaTeX半小时速成究极进化版(修改版)

唔~~~今年期末考得还凑合~~~今年寒假过得也还凑合(某只昂昂昂,你知道我zhai说你~~~)~~~又看到有人在转一些关于LaTeX的东东,觉得网上给的模板要不只适用于英文论文(维基百科上面对于一些数...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年06月09日 09:34
  • 1639

如何在 hexo 中支持 Mathjax?

在 hexo 中,你会发现我们不能用 Latex 语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题。第一步: 使...
  • u014630987
  • u014630987
  • 2017年11月29日 21:40
  • 116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:搭建一个支持LaTEX的hexo博客
举报原因:
原因补充:

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