hexo存在问题解决方案

First Post:

Last Update:

Hexo主题开发经验杂谈 | MARKSZのBlog (molunerfinn.com)

注意事项

../../source/images/${filename}

在使用pandoc本地导出文件后,hexo-renderer-marked存在bug,需要在清除导出使用pandoc路径后执行npm命令二次安装

1
npm install hexo-renderer-marked --save

否则图片,公式在生成的静态网站上显示失败,且排错难以找到原因(大概率命名冲突,覆盖重写了一些文件)

HEXO插件问题

添加一行数据

$$123456$$延迟还能接受​

如果图片,公式显示错误

1
npm install hexo-renderer-marked --save

图片显示关联插件

1
npm install hexo-renderer-marked --save

该插件在卸载情况会出现图片不显示

HEXO插件问题

Hexo更改主题后启动服务器,界面显如下字符:

1
extends includes/layout.pug block content include includes/recent-posts.pug include includes/partial

解决方案:

执行如下命令

1
2
3
4
5
6
#下载对应的插件驱动
npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive
#清除缓存
hexo clean
#生成静态文件即可
hexo g

HEXO公式无法正常显示

更换Hexo的markdown渲染引擎

先后执行下面的两条命令,第一条表示将默认的渲染引擎hexo-renderer-marked卸载,第二条命令是安装hexo-renderer-kramed渲染引擎,此渲染引擎修改了hexo-renderer-marked渲染引擎的一些bug。

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

修改node_modules\kramed\lib\rules\inline.js文件

hexo-renderer-marked渲染引擎仍然存在一些语义冲突问题,到博客的根目录下,找到node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改:

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

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

同时把第20行的em变量也要做相应的修改。

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

在主题中开启mathjax开关

到博客根目录下,找到themes/next/_config.yml,把math默认的flase修改为true,具体如下:

1
2
3
4
5
# Math Equations Render Support
math:
enable: true
per_page: true
engine: mathjax
1
2
3
4
5
6
7
8
9
10
# 数学公式显示问题
mathjax:
tags: none # 或 'ams' 或 'all'
single_dollars: true # 启用单个美元符号作为内联(行内)数学公式定界符
cjk_width: 0.9 # 相对 CJK 字符宽度
normal_width: 0.6 # 相对正常(等宽)宽度
append_css: true # 将 CSS 添加到每个页面
every_page: true # 如果为 true,那么无论每篇文章的前题中的 `mathjax` 设置如何,每页都将由 mathjax 呈现
per_page: true
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML

在文章的Front-matter里打开mathjax开关

如果你写的文章里面用到了数学公式,需要在文章Front-matter里打开mathjax开关。如果用不到数学公式,则不需要管它。

1
2
3
4
5
6
---
title: index.html
date: 2018-12-5 01:30:30
tags:
mathjax: true
--

重启hexo

1
2
hexo clean #清除缓存文件
hexo g -d #生成并部署hexo

到这里,hexo中无法显示数学公式的问题就得到解决了!

如果还不行

【个人网站搭建】hexo框架下支持显示MathJax数学公式_hexo使用mathjax显示公式-CSDN博客

Hexo博客数学公式显示 | Dreamland (monkey0105.github.io)

参考文献:

[成功解决在hexo中无法显示数学公式的问题 | 初心 (runninggump.github.io)](https://runninggump.github.io/2018/12/05/成功解决在hexo中无法显示数学公式的问题/#:~:text=前言基于Hexo搭建的个人博客,在默认情况下渲染数学公式的时候是会出现问题的。下面的截图是我的先前的博客中出现的公式渲染错误: 经过了一波百度操作后,成功将问题解决,下面是解决后的截图:,下面我将我的操作写在下面,供需要的人参考。 解决步骤更换Hexo的markdown渲染引擎先后执行下面的两条命令,第一条表示将默认的渲染引擎hexo-renderer-marked卸载,第二条命令是安装hex)

在Hexo中渲染MathJax数学公式