Hexo + NexT + Github:搭建博客
首先我们先理清一下这三者的关系:
- Hexo
本身是自动生成博客网页的框架代码,它不需要我们自己编写网页(例如
.css
,.js
),而是修改_config.yml
文件提供的参量,自动生成静态网页,可以在本机浏览; - NexT 是 Hexo
的主题插件,本身依赖于 Hexo,提供额外的主题。它同样也提供
_config.yml
文件供我们配置; - 使用 Github 将生成的静态网页推送到互联网当中。
新版本的 NexT 可以在博客根目录下配置 _config.next.yml
文件,这可以避免在使用 Github 更新 NexT
时与,本地的配置文件发生冲突,同时也不再用区别 Hexo 和 NexT
名称相同的配置文件。
安装 Hexo
Hexo 的官方配置文档在这里。
首先安装一些必备的工具:Node.js
;Git
。
然后使用 npm
安装 Hexo:
1 | npm install -g hexo-cli |
初始化博客本地文件夹
我们现在需要在本机的某一文件夹下初始化博客,例如想将博客文件放在
\Blog
目录下,在该文件夹中打开命令行,运行如下命令
1 | hexo init |
运行上述命令之后,在 \Blog
文件夹下会生成如下子目录结构:
1 | . |
第一次使用 Hexo 命令时,可能会报关于 PowerShell 不能信任 Hexo
脚本的错误,并在界面中指向网址。直接把执行策略改成
Bypass
:
1 | Set-ExecutionPolicy -ExecutionPolicy Bypass |
配置博客
详细的配置步骤可见 Hexo 和 NexT 官方文档,不过更推荐看 NexT 的文档,因为 NexT 的文档中既包含了 Hexo 的配置,同时一直在更新当中。这里列举了一些在教程之外的配置。
自定义菜单栏内容
NexT 提供的菜单栏内容如下:
1 | menu: |
如果要添加分类和标签页,首先使用命令生成对应的博客页面
1 | hexo new page categories |
在 source/
目录下会多出
source/categories/index.md
和
source/tags/index.md
,为了在博客页面中显示文档的分类和标签,还需要修改头部的代码:
1 | --- |
1 | --- |
如果希望加入额外的标签页,新建标签如下
1 | nichijou: /nichijou/ || fa-regular fa-sun |
其中 fa-regular fa-sun
是来自 font awesome
的图标。这时我们还需要配置语言,使得 NexT 能够识别关键词,在
./theme/next/language
目录下找到 zh-CN.yml
,在
menu
关键词下添加如下翻译词对:
1 | # add user defined translation pair |
在修改完配置文件之后,我们还需要生成博客 page 页面对应的
.md
文档,使用如下命令:
1 | hexo new page nichijou |
之后会在 ./source
目录下生成同名目录
nichijou/
,同时在该目录中生成 index.md
文件。这样在点击博客菜单栏标题时,就会显示 index.md
的内容。
公式显示
按照默认设置,博客显示的公式是 LaTeX 代码。因此需要修改
_config.next.yml
关于 math
部分的配置:
1 | math: |
知识协议
配置的协议为 cc by-sa,可以共享、修改、用于商业目的,但是必须在引用时指明来源,并且使用相同的协议。
撰写博客的工作流程
新建博客文档
新建文档的命令是 new
1 | hexo new [layout] <title> |
- 可选参数
[layout]
:默认是post
,可以选择为draft
,这时会在\source\_drafts
目录下生成待发表的博客文档,并且没有时间戳; - 文档题目
<title>
:可以不添加后缀,默认生成<title>.md
文档。如果题目中没有空格,也可以不用加双引号。
例如新建文档:测试我的第一篇博客文档
1 | hexo new 测试我的第一篇博客文档 |
这样就可以在 \source
目录下找到对应的
测试我的第一篇博客文档.md
文档了。
如果不想立即发表博客文档,可以使用如下命令:
1 | hexo new draft "博客草稿" |
这时在生成网站文件时会自动忽略该文档。如果该草稿已经完成,则使用如下命令进行发表,hexo
会将该文档转移到 \source\_posts
目录下:
1 | hexo publish post "博客草稿" |
此外还可以在 \scaffold
目录下自定义模板文件,具体详见
hexo 写作
文档。
生成网站文件
首先先清理一下原来的站点文件:
1 | hexo clean |
或者简写为
1 | hexo cl |
然后生成静态文档
1 | hexo generate |
或简写为
1 | hexo g |
后面还可以加一点组合命令,比如 -d
表示生成完静态站点之后直接推送到 Github 上去,它与如下命令是等价的:
1 | hexo deploy -g |
上个命令意思是在 deploy
之前先
generate
。如果想在本机中查看网页生成的效果,可以运行
1 | hexo server |
总结
在配置完成之后,上传一篇博客文档的工作流程可以总结为:
- 在 目录中生成
博客文档.md
文件:hexo new <博客文档名称>
; - 编写
博客文档.md
文档 (可以不在 Hexo 生成的 .md 文件中编写,完成后将文档内容复制到该文件中); - 清除生成的静态文件:
hexo cl
; - 重新生成静态文件:
hexo g
; - 查看生成网页的效果,若不满意,则返回第 2
步:
hexo s
; - 上传到
Github,博客的内容最终展示在互联网上:
hexo d
一些博客插件
NexT 主题下使用 note 标记