hexo支持latex

本文详细介绍了如何在新电脑上为Hexo博客启用LaTeX支持,包括卸载旧渲染引擎、安装新引擎、修改配置文件,以及解决浏览器安全问题和设置mathjax。通过添加模板简化了频繁手动操作的过程。

最近在新电脑上重新搭了个博客,为了使hexo开启latex支持又踩了一次坑,在此记录一下。

卸载旧版渲染引擎

npm uninstall hexo-renderer-marked --save
npm uninstall hexo-math --save

安装新引擎

npm install hexo-renderer-kramed --save
npm install hexo-renderer-mathjax --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;
}

node_modules/kramed/lib/rules/inline.js

latex与markdown语法上有语义冲突,hexo默认的转义规则会将一些字符进行转义,所以我们需要对默认的规则进行修改。更改后为:

var inline = {
  // escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
  escape: /^\\([`*\[\]()#$+\-.!_>])/,
  autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
  url: noop,
  html: /^<!--[\s\S]*?-->|^<(\w+(?!:\/|[^\w\s@]*@)\b)*?(?:"[^"]*"|'[^']*'|[^'">])*?>([\s\S]*?)?<\/\1>|^<(\w+(?!:\/|[^\w\s@]*@)\b)(?:"[^"]*"|'[^']*'|[^'">])*?>/,
  link: /^!?\[(inside)\]\(href\)/,
  reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
  nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
  reffn: /^!?\[\^(inside)\]/,
  strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
  // em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
  em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
  code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
  br: /^ {2,}\n(?!\s*$)/,
  del: noop,
  text: /^[\s\S]+?(?=[\\<!\[_*`$]| {2,}\n|$)/,
  math: /^\$\$\s*([\s\S]*?[^\$])\s*\$\$(?!\$)/,
};

node_modules/hexo-renderer-mathjax/mathjax.html

由于现有浏览器认为http链接请求不安全,这就导致博客的latex公式无法渲染。因此将最后一行改为:

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>

开启mathjax

打开主题目录下的 _config.yml 文件,加入如下:

mathjax:
  enable: true
  per_page: true

在写博客的时候需要开启latex就加上字段说明:

title: test
mathjax: true

但每次都这么加显得很麻烦,可以在 scaffolds/post.md 添加如下模版:

---
title: {{ title }}
date: {{ date }}
categories: 
tags:
mathjax: true
toc: true
---

这样就无需每次手写了。


参考

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值