hexo博客相关问题及解决方案汇总

需要安装的插件

1
2
3
4
npm install hexo-generator-searchdb --save # 站内搜索
npm install hexo-generator-index-pin-top --save # 置顶
npm install hexo-blog-encrypt --save # 文章加密
npm install hexo-renderer-kramed --save # 数学公式

图片自适应, 点击放大

fancybox

数学公式渲染异常

https://www.once4623.site/2017/10/03/2017-10-04--Use-MathJax-In-Hexo-Next/

hexo 实现置顶功能

https://blog.csdn.net/qwerty200696/article/details/79010629

hexo 站内搜索

https://www.jianshu.com/p/519b45730824

https://blog.csdn.net/ksws0292756/article/details/82714984

一直处于加载状态

首先看是不是有哪些文件的title命名方式有问题, 已知的问题有:

  • 不能有包含半角的冒号(全角可以), 这个可以用hexo g得知, 如果有问题, 则hexo g会报错
  • 数学公式中用星号代表乘号.

方法一: hexo clean + hexo g 重新生成search.xml文件

方法二: 更新searchdb插件: npm install hexo-generator-searchdb --save

方法三: 文章太多时, 尝试将_comfig.ymlLocal Search下的limits设置的更高一些

方法四: 查看 search.xml 文件: 根据报错信息确定哪一篇文章有问题. 有时候, 报错的行数并不是真的问题所在, 需要不断用排除法才能确定具体的行数, 并且, 有可能该行本身并无错误, 而只有重新敲一遍之后才能正常搜索. https://www.itfanr.cc/2017/11/24/resolve-hexo-blog-search-exception/

如果public/search.xml文件报错(用谷歌浏览器打开), 则根据错误进行排查., 通过 “更多工具->开发者工具”, 确定是哪一篇文章出错, 然后将其修正, 具体步骤如下

  1. 用chrome浏览器打开atom.xml
  2. 一般会提示和上述相同错误,并提示Bytes: 0x10 0xEF 0xBC 0x8C
  3. 用 atom 或者任意一款拥有正则匹配搜索功能的编辑器打开atom.xml
  4. 用正则匹配模式搜索\x10字符,留意搜索的结果, 并在source/_posts路径中找到*.md文章源文件, 用正则匹配替换掉搜索到的所有\x10字符为空. 可能存在多个文件有特殊字符。(修改完成后记得保存)
  5. 刷新chrome中的atom.xml此时应该已经不会报错了.(无需重新hexo g, 只需刷新页面即可)

快速解决问题, 直接用 atom 打开最新生成的 search.xml, 搜索以下字符

1
2
\x03
\x08

显示更新时间

https://www.itfanr.cc/2017/12/06/hexo-blog-optimization/

默认的更新时间是最后的修改时间, 也可以手动添加 updated 参数强制设置更新时间.

修改完成后, 需要重新启动 hexo server 才能正确显示.

如果显示的是英文: post.updated, 则需要在 languages/zh-CNs 文件中的 post 选项下添加 updated: 更新于

文章加密

【链接】MikeCoder/hexo-blog-encrypt
https://github.com/MikeCoder/hexo-blog-encrypt/blob/master/ReadMe.zh.md