Hexo Material Theme Issues

Author Avatar
source. 1月 20, 2019
  • 在其它设备中阅读本文章

此页面用于汇总在使用 Hexo Material Theme 时遇到的问题及解决方案。

Material Theme Docs

Material Design Icons

针对 TOC 不可用

我原来在 Hexo 文件夹下装了 hexo-toc 插件,然而在使用 Material 主题时,点击 TOC 并没有跳转至对应的位置,可以发现地址栏变成了:

../#undefined

一直持续了很久很久不知道原因。后来发现把 hexo-toc 插件卸载就可以让功能正常了。

在 Hexo (站点)文件夹下运行命令:

npm uninstall hexo-toc

针对公式块不能渲染

终于公式块正常显示了QAQ。

修改默认的render

hexo 默认的渲染引擎是 marked,但是 marked 不支持 mathjaxkramed 是在 marked的基础上进行修改。我们在 hexo 目录下执行以下命令来安装 kramed

npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
npm uninstall hexo-math --save
npm install hexo-renderer-mathjax --save

修改kramed的渲染细节

/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 找到(11行):

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

修改为:

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

在同个文件中找到(20行):

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

修改为:

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

配置 Material 主题的 Mathjax 加载的 CDN 链接

mathjax 终于弄好了 QAQ~

在主题配置文件(material/_config.yml)下添加:

vendors:
# MaterialCDN
#   You can load theme unique files from your private cdn or oss.
#   The new src will have the base domain you configured below.
    # MathJax 2.7.0-2.7.1
    mathjax: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js

这样,在需要用到 MathJax 的md文件头中,填入:

mathjax: true

针对摘要显示

在想显示的文字末尾添加语句:

<!--more-->

这样,它之后的内容都不会显示到摘要中。

添加站内搜索

需要先安装插件:

npm install hexo-generator-search  --save
npm install hexo-generator-searchdb --save

站点配置 文件中,添加(或搜索):

search:
  path: search.xml
  field: post

主题配置 文件中,搜索并将 use 的值改成 local

# Search Systems
# Available value:
#     swiftype | google | local
search:
    use: local
    swiftype_key:

ERROR …\material\layout\layout.ejs:3

在构建时报错信息如以上,请尝试使用 2018 年前的版本,可在https://github.com/viosey/hexo-theme-material/releases中下载 1.52 及以前的版本。

原因可能是主题配置文件 _config.yml 不匹配。

为新建的页面添加 TOC

通过 hexo new page "name" 添加的页面默认不显示 TOC(左上角第二个图标)。

可在 Front-matter 中添加:

toc: true

即可显示。

针对连接不安全 Dec. 11, 2019

此条是 Hexo 插件的问题

使用免费的 .github.io 域名的网站默认都是 https,但是我发现地址栏提示连接并不安全。

使用 F12 检查工具,Ctrl + Shift +R 重新加载页面,在【Network】选项卡下可以发现与 Mathjax 有关的资源标红了,协议用的是 http 。原来如此,只要把 http 改成 https 就行了。

到哪里改,在 Hexo 目录下看到 node_modules,到里面通过 grep 命令寻找和 Mathjax 有关代码,找到 hexo-renderer-mathjax/mathjax.html ,找个编辑器打开,将 <script> 中的 src 中的 http 改成 https 即可。

现在可以完整提供 https 支持啦~

禁止商业用途,非商业分享转载请注明来源。
本文链接:http://comydream.github.io/2019/01/20/hexo-material-issues/