前言

Hexo 是一个方便快速的博客系统,但事无巨细,对于像我这样的小白来说,使用时还是会遇到许多小问题,这篇文章主要是记录Hexo的小问题解决方案。

1. 如何新建文章(博客)?

假设我要新建标题为 小白的逆袭之路 文章,我们进入Hexo博客主目录,在命令行操作下执行:

1
hexo new post "小白的逆袭之路"

文章即会被创建在博客主目录/source/_posts 目录中

2. 如何删除博客

进入博客主目录/source/_posts目录,找到你想删除的文章,鼠标右键删除即可。

3. 如何编辑博客

hexo 编写文章使用的是Github的GFM语法的Markdown格式,在编辑文章之前,我强烈建议大家先去了解hexo下Markdown的基本语法,上手非常简单

  1. 使用专门的 Markdown 编辑器

    目前市面上有许多Markdown编辑器,这里我墙裂推荐大家使用 Typora 使用方式以及介绍可以参考 少数派:Typora 完全使用详解

    配置好 Typora后我们编辑文章时只要点击我们要编辑的以md结尾的博客文件,鼠标右键>打开方式>用Typora打开

    即可用Typora编辑器进行编辑。

  1. 利用Git Bash的vim编辑器,执行命令:

    1
    vim 小白的逆袭之路.md
  2. 其他的一些文本编辑器类。

4. 如何为文章添加标签(tags)以及分类(categories)

在我们编辑文章时,文章头部都会有这样的格式:

Hexo 称其为Front-matter 用于指定个别文件的变量,Hexo设定了多种参数:

参数 描述 默认值
layout
title

tag 对应你想对该文章设置的标签 ,书写格式为:- 标签名

1
2
3
4
title: 小白的逆袭之路
tags:
- 小白 #标签1
- 励志 #标签2

categories 指定分类,书写格式为:- 分类名

1
2
3
4
5
6
7
title: 小白的逆袭之路
tags:
- 小白 #标签1
- 励志 #标签2
categories:
- Dream #父分类
- Light Dream #子分类

仔细观察的朋友估计已经看出来了,我在分类名后面分别注释了 父分类以及子分类,为什么是这样子呢,根据官方的说明:

在Hexo 中,分类和标签有着明显的差别:分类具有顺序性和层次性,而标签没有顺序和层次行。

区别于WordPress ,WordPress支持对一篇文章设置多个分类,这些分类可以是同级的,也可以是父子分类。但是Hexo不支持指定多个同级分类。例如上面的指定方法,会将分类Light Dream 变为 Dream 的子类,而不是并列分类。因此,在进行您的文章分类时,请尽可能准确的分类。

5. 修改主题配置正确但刷新未显示修改的内容。

在每次我们进行主题或者是对站点配置修改后,执行:

1
2
3
hexo clean
hexo g
hexo s

6. TypeError: Cannot read property ‘length’ of null

开始遇到这个问题的时候一脸懵逼,再加上对 js 不熟,所以困扰许久。

首先我们查看异常内容,里面有这一段:

1
node_modules\highlight.js\lib\highlight.js:388:42

然后我寻找源码看到这段注释:

1
2
3
4
/*
Syntax highlighting with language autodetection.
https://highlightjs.org/
*/

语法高亮自动侦测语言?然后我想起来配置文件好像有个侦测语言的,查看了一下站点配置文件找到highlight:

1
2
3
4
5
highlight:
enable: true
line_number: true
auto_detect: true #自动判断代码语言
tab_replace:

看到了auto_detect ,自动判断代码语言,所以应该就是这里。

那么是哪里出了问题呢,我的文章中代码比较复杂但是都指定了语言,这里的自动侦测语言可能遇到比较复杂的代码会检测出问题。

于是我将 auto_detect 改为false,重新运行生成 hexo g,成功。



Hexo博客      Hexo Hexo 问题

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!