HEXO框架撰写博文简单教程
之前写在GitHub Pages上,发表于 2017-02-09
前言
过了个年假回来,已经将原本不怎么会的Markdown语法彻底忘掉,这个还好,毕竟资料还算丰富,查阅起来也算方便。但是连HEXO框架发布博文的方式彻底忘掉,连hexo这个关键词都忘得一干二净就比较蛋疼了,毕竟这意味着博文写好了不知道往哪儿存,也不知道如何本地预览、远程发布,这就麻烦了。所以趁这次重学的机会,一并写作文字以备后观,也算是分享学习吧。
HEXO简介
Hexo是一个开源的静态博客生成器,用node.js开发,作者是台湾大学生Tommy351(Tommy Chen,https://zespia.tw/)。
为什么是静态博客
很多人选择在虚拟主机或vps上面搭建动态博客。但是这些主机商通常“免费的不稳定,稳定的不免费”。前一段时间,我观察了我的个人博客友链上面的几个站点,一部分在十几天之后就销声匿迹了。独立博客如此麻烦的维护工作,能不能减轻一些呢?正如阮一峰前辈所说,blogger分为三个阶段。最开始,是门户博客。之后,是独立博客。最后,觉得独立博客自己管理起来费劲,便找个别人来管的空间,自己负责写就好。如果我们能够找到这样的空间,在自己保留最大控制权前提下,由别人托管,会省去不少事情。

为什么是HEXO
常用方案有:
- WorkPress:一般需要独立VPS,对MarkDown不友好,体量太大于个人用户不便
- GitHubPages + Jekell:免费,稍微有点麻烦
- GitHubPages + Hexo:免费,使用简单,使用者众多
综上选择了HEXO,再列出HEXO的特点:
- 安装配置Git、Node.js较简单
- 支持Markdown文档
- 配置好后只需专心写Markdown文档,一键生成静态页
- 静态页支持一键切换主题
- 一键本地预览、一键远程发布
- 平台移植性好,兼容Windows、Mac、Linux
0.准备工作预览
- git
- node.js
- github
- markdown编辑器*
- 域名*
markdown编辑器是非必须的,只要你熟悉语法,随便一个编辑器来写都不是问题。
域名也是非必须的,gitcafe pages服务提供免费的二级域名。注册域名不是本文重点,这里略过。
1.创建Github仓库
注册Github、创建其仓库较为简单,且不是本文重点,这里略过。但提一点,创建仓库时Repository名必须与Github用户名一致(如有Upper case应全写作lower case),这样这个仓库才能使用Github提供的GitHubPages功能。
2.本地环境准备
安装Git
安装Git不必修改默认配置,一路next即可。这里不再赘述,仅提供链接。
p.s. 为图省事儿,本文只做Windows下安装简要说明。
安装Node.js
Node.js推荐使用LTS(Long Term Support)的版本,这个版本字面意思是提供长久支持,一般是18个月,就像Ubuntu的LTS的版本。除此之外,还有一层意思是一个对老版本支持较好的一个系列,就像MariaDB之于MySQL(MySQL被Michael Widenius卖给了Sun Microsystems,而后者与年被Oracle收购,为规避闭源风险,社区新建一个分支就是MariaDB(Michael Widenius的女儿的名字)了),又像jQuery1.9后分了两个版本。
安装Node.js也不必修改默认配置,一路next即可。这里不再赘述,仅提供链接。
安装HEXO框架
在CMD中输入命令:npm install hexo-cli -g
p.s. HEXO官网有很多详细文档可以借鉴。
创建本地博客环境
用CMD定位到博客本来打算的目录,如D:\Workspace\Blog\
在CMD中输入命令:hexo init soyadokio.github.io
p.s. SoyaDokio是我的用户名,所以这里写作soyadokio
配置主题
- 进入官网主题页面选择主题,也可以进入官方Github的主题页选择主题(这两处的主题几乎都是广大HEXO爱好者自制并免费分享的)。
- CMD中切入
D:\Workspace\Blog\soyadokio.github.io\目录,输入切换主题命令:git clone <repository> themes/<theme-name>,比如我在Github的主题页看中了第一款主题:Ada,点进去发现readme里有其作者放的预览图以及安装、更新、卸载方法,这里只提安装,其命令为:git clone https://github.com/gaoryrt/hexo-theme-pln.git themes/Ada。 - 修改
D:\Workspace\Blog\soyadokio.github.io\目录下的_config.yml文件(建议事先备份,以免改花),将键theme的值改为<theme-name>,比如刚才举例主题是Ada,这里就写theme: Ada(冒号后记得留一个空格)。 - 修改该主题的配置文件,路径为:
D:\Workspace\Blog\soyadokio.github.io\themes\<theme-name>\_config.yml(其文件名与博客配置文件名相同,勿混淆),具体修改参照每个主题官方Github页面的readme自行配置。
p.s. theme: false时禁用主题
配置博客基本信息
还是修改刚才博客目录下的_config.yml文件,详情参考官方教程,这里只列出必须配置的几项。
| 参数 | 描述 | 举例 |
|---|---|---|
| title | 网站标题 | SoyaDokio’s Blog |
| description | 网站描述 | <需要SEO的必备,否则随意> |
| author | 您的名字 | SoyaDokio |
| language | 网站使用的语言 | zh-Hans |
| deploy | 部署部分的设置 | <详见下文> |
deploy配置说明
deploy:
type: git # 使用git方式提交
repo: <repository url> # 存放博客的仓库地址
branch: [branch] # 分支名称。如果您使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测。
message: [message]
比如我的:
deploy:
type: git
repo: https://github.com/SoyaDokio/soyadokio.github.io.git
branch: master
p.s. 官方简中教程不能更详细,配置文件具体改法不再详述。
使用博客
撰写博文
撰写博文并保存格式为md的Markdown文档,存放在D:\Workspace\Blog\soyadokio.github.io\source\_posts\目录(或其子目录,即自定义分类)下。
p.s. 默认有篇HelloWorld的文档
本地部署预览
在CMD中切换到D:\Workspace\Blog\soyadokio.github.io\目录下,输入命令:
hexo clean # 清除已生成文件及缓存
hexo generate # 生成静态页面,简写做hexo g
hexo server # 启动本地WEB服务器,简写做hexo s
然后按照提示在浏览器中访问http://localhost:4000/即可(我这里访问要卡半天,不知何故)。需要停止时只需在命令行输入Ctrl+C强停即可。
p.s. 有时本地部署过于频繁(强停)易导致端口占用,只需换个端口即可,命令:hexo server -p <port>
安装自动部署发布工具
这里使用到了hexo-deployer-git,安装命令:
npm install hexo-deployer-git --save
发布博文
若是在本地预览无误,或是觉得不必预览,在CMD中切换到D:\Workspace\Blog\soyadokio.github.io\目录下,输入命令:
hexo deploy # 启动本地WEB服务器,简写做hexo d
p.s. 第一次部署会要求输入Github用户名密码
每次部署的步骤,可按以下三步来进行:
hexo clean
hexo generate
hexo deploy
其它
创建分类页面
在CMD中切换到D:\Workspace\Blog\soyadokio.github.io\目录下,输入命令以创建分类页(必须使用如下命令创建):
hexo new page categories
然后根据提示找到index.md文档(我的在D:\Blog\soyadokio.github.io\source\categories\index.md),编辑之:
# ---
title: All tags
date: 2016-11-25 15:20:40
# 若将页面的类型设置为 categories,主题将自动为这个页面显示所有分类
# 若将页面的类型设置为 tags,主题将自动为这个页面显示标签云
type: "categories"
comments: false
# ---
注意事项
- 关于第三方服务的 ”duoshuo_info“
在配置该项的时候,user_id 键对应的值不要修改,也就是保持为 0,原因未知,改后页面空白异常。 - 特殊字符导致报错
如添加新博客的时候报错了,而且提示的是 js 中某些地方报错,那么很可能是 md 文件中存在特殊字符(不是正常显示的字符,不是说特殊符号,能正常显示的都不是这里说的特殊字符),把特殊字符删除即可 - HEXO命令的常见报错
参考博文:HEXO+Github,搭建属于自己的博客。 - 使用HEXO,如果换了电脑怎么找回记录、更新博客?
知乎上已有详细解答。我觉得高赞第一利用Github的分支来管理的方案很好,不过本地其实也有比较好的方案:用OneDrive等网盘将目录<github-username>.github.io目录随时同步。 - HEXO一些常用命令:
hexo new "postName" #新建文章
hexo new page "pageName" #新建页面
hexo generate #生成静态页面至public目录
hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server)
hexo deploy #将.deploy目录部署到GitHub
hexo help #查看帮助
hexo version #查看Hexo的版本
- 绑定独立域名
详情参见这篇百度经验






