Hexo博客的搭建
Hexo是一个快速、简洁且高效的博客框架。Hexo使用Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页
- 超快速度
Node.js所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染
- 支持Markdown
Hexo支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件
- 一键部署
只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台
- 插件和可拓展性
强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
原因
为什么突然想到搭建个人的博客?大概是终于想主动做些有意思的事。可以预料到的是,这个博客大部分时间只有我自己会来浏览,偶尔或许会有人出于好奇,通过github上这个项目旁边的链接进来瞧瞧,不过这都无所谓了,姑且当它是我的一本日记,我想在这当中记录一些我想要记录的东西
博客初成形
相比于查阅官方文档,我更倾向于观看演示视频来解决问题,因为这样更便于我的操作与理解,一定程度上也减少了错误的发生。最初的默认主题博客搭建参考于b站上的up主CodeSheep的视频—手把手教你从0开始搭建自己的个人博客 |无坑版视频教程| hexo。
一、环境准备
安装Hexo前需先安装下列应用程序:
- Node.js
- Git
1、安装Node.js
Hexo是一个基于Node.js的博客框架,这意味着,想要搭建Hexo博客,我们需要先安装Node.js
需要注意的是,官方文档中要求Node.js版本需不低于10.13,建议使用Node.js 12.0及以上版本。如果你的电脑中尚未安装Node.js,那么可以前往Node.js (nodejs.org)下载相应的安装包进行安装
如果你像我一样,电脑中已经安装了Node.js,但需要升级到更高的版本,那么无需卸载原来的版本,Node.js提供了一种更加简单且高效的升级办法:下载所需版本的安装包,安装时选择当前版本的安装目录(此时的默认安装目录正常情况下便是当前版本的安装目录)安装即可,安装程序会将当前版本替换为需要安装的版本
2、安装Git
Git ,一个软件开发者必备的代码版本控制系统。Hexo 使用 Git 来管理主题和插件等外部依赖,并且在部署 Hexo 网站到远程仓库(如 GitHub、GitLab 等)时,Git 也是必需的。
你可以前往Git (git-scm.com)进行下载
如果你需要对你的git版本进行更新,你可以打开终端界面输入
1 | git update-git-for-windows |
系统会为将你的git更新至最新的版本
二、安装Hexo
所有必备的应用程序安装完成后,即可使用npm安装Hexo
1、全局安装:
直接打开终端界面输入
1 | npm install -g hexo-cli |
此时安装的Hexo可以在系统的任意一个目录下使用,你可以打开终端界面在任意一个目录下键入Hexo命令来搭建Hexo博客
2、局部安装:
进入需要安装的目录输入
1 | npm install hexo |
此时安装的Hexo仅能在该目录及其子目录下使用,通过cmd命令框键入Hexo命令在该目录或其子目录下搭建Hexo博客
3、旧版本Hexo安装
考虑到并非所有人都愿意使用较新版本的Node.js,如果你坚持使用较旧版本的Node.js,你也可以安装旧版本的Hexo来避免版本不兼容的问题
打开终端界面,然后运行以下命令,将version替换为你想要安装的Hexo版本号
1 | npm install -g hexo@version |
例如,如果你想要安装Hexo的3.2.0版本,命令将如下所示
1 | npm install -g hexo@3.2.0 |
安装完成后,可以运行以下命令来检验Hexo的安装版本:
1 | hexo -v |
这将显示安装的Hexo版本号,以确保安装成功
以下为Hexo与Node.js的版本对应表:
| Hexo版本 | 最低版本(Node.js版本) | 最高版本(Node.js版本) |
|---|---|---|
| 7.0+ | 14.00 | latest |
| 6.2+ | 12.13.0 | latest |
| 6.0+ | 12.13.0 | 18.5.0 |
| 5.0+ | 10.13.0 | 12.0.0 |
| 4.1 - 4.2 | 8.10 | 10.0.0 |
| 4.0 | 8.6 | 8.10.0 |
| 3.3 - 3.9 | 6.9 | 8.0.0 |
| 3.2 - 3.3 | 0.12 | 未知 |
| 3.0 - 3.1 | 0.10或iojs | 未知 |
| 0.0.1 - 2.8 | 0.10 | 未知 |
你可以选择你当前Node.js版本所能支持的Hexo版本进行安装
三、建立博客
1、初始化
经过上述准备后,系统已经满足了建立一个Hexo实例所需的所有条件
执行下列命令
1 | hexo init <folder> |
这里的<folder>是Hexo实例所处的文件夹,若当前目录下无该文件夹,系统会新建一个文件夹,在该文件夹的目录下,系统会生成一系列的文件,这里只介绍三个较为重要的文件
source
初始情况下只有一个文件夹_posts(用于存放你博客正文的Markdown文件),后续可能需要添加其他文件夹,如about(用于存放about页面的Markdown文件),以及一个用于存放图片资源的文件夹images
themes
这个文件夹初始情况下为空,它用于存放后续个性化博客时的主题文件
_config.yml
极其重要的文件,作为整个博客的配置文件,用于配置博客中的各类功能与内容
2、本地运行
执行以下命令
1 | hexo generate |
Hexo会生成静态文件,这些文件就是博客的源码,他们被放到了public文件夹当中
再执行
1 | hexo server |
Hexo会启动本地服务器,并将生成的静态文件部署在该服务器上。默认情况下,访问网址为:http://localhost:4000/,你可以在浏览器的地址栏输入该网址进行访问
你将看到

这便是默认的Hexo博客,同时Hexo为你自动生成了一片示例文章,至此,我们完成了基本的Hexo博客的搭建
部署
GitHub提供了一项免费的静态站点托管服务GitHub Pages,它直接从GitHub上的仓库获取HTML、CSS和JavaScript文件,通过构建过程运行文件,然后发布网站
要想使用GitHub Pages,首先我们需要创建一个用来管理Hexo生成的静态页面的仓库,GitHub Pages规定了这个仓库的命名格式应为<你的GitHub用户名>.github.io,同时这个仓库名后续也将成为公网访问该页面的地址
这里我们需要安装一个Hexo的上传插件deployer-git
1 | npm install hexo-deployer-git --save |
后续这个插件将极大地便捷我们的推送
然后我们需要进行推送信息的设置,使用vim打开配置文件_config.yml
1 | vim _config.yml |
找到deploy并将其修改为
1 | deploy: |
在这之后,我们只需执行
1 | hexo deploy |
即可通过deployer-git快速的将本地的Hexo博客部署到GitHub Pages上,在首次推送时,需要进行GitHub的身份认证,输入用户名和密码后,系统将开始推送,完成推送后,查看对应的GitHub的仓库

对应的静态页面文件已被推送到仓库中
此时我们在浏览器的地址栏输入<你的GitHub用户名>.github.io便能访问该博客页面
更换主题
作为最热门的博客框架之一,Hexo拥有一大批第三方主题供用户选择。更换Hexo主题非常容易,找到你所需主题所对应的仓库并执行
1 | git clone https://github.com/<作者名>/<仓库名>.git themes/<主题名> |
git会将主题文件下载到themes中,之后再修改_config.yml中的theme
1 | theme: <主题名> |
这样我们便完成了主题的更换
以keep主题为例,首先我们将keep主题的文件克隆到themes中并命名为keep
1 | git clone https://github.com/XPoet/hexo-theme-keep.git themes/keep |
然后修改配置文件中的theme
1 | theme: keep |
至此,我们便将Hexo的主题换成了keep
通常,一个主题可能会有以下的结构:
1 | . |
_config.yml
主题的配置文件。和 Hexo 配置文件不同,主题配置文件修改时会自动更新,无需重启 Hexo Server。
languages
语言文件夹
layout
布局文件夹。用来存放主题的模板文件,决定了网站内容的呈现方式
scripts
脚本文件夹。在启动时,Hexo会加载此文件夹内的JavaScript文件
source
资源文件夹,除了模板以外的Asset,例如CSS、JavaScript文件等,都应该放在这个文件夹中。文件或文件夹开头名称为_(下划线)或隐藏的文件会被忽略
遇到的问题
问题描述:最初更换主题时,出现了一个无法解释的现象,在本地运行时,主题的样式正常显示,但是当推送到GitHub Pages之后,无法在网页正常显示主题的样式,查看生成的对应静态文件,当中也无法找到明显的错误
问题解决:打开_config.yml,发现当中存在这样一行
1 | # URL |
将其改成
1 | # URL |
问题完美解决
问题分析:推测为,若在_config.yml文件中不设置或者不更改url的值,Hexo将使用默认值,这个默认值是一个相对路径,通常是”/“,这就导致了资源文件的链接问题:如果你在Hexo中包含了任何链接,它们将使用默认的相对路径,这可能导致在部署到不同环境时生成的链接可能会指向错误的位置,进而导致大量资源无法加载
总结
虽然搭建Hexo并没有使我得到大量技术相关的收获,我收获的仅仅是一个简单的个人博客以及对于GitHub Pages的简单了解,但是通过一次这样的实践,更多的,我得到是精神层面的反馈,对于未知事物的认知与接触又一次触发了我对这个领域探索的热情。
愿这份热忱,永不泯灭