1. 简介
hexo是一个基于node.js的静态博客程序,可以方便的生成静态网页(纯html)支持多个平台(Windows/MAC/Linux),风格优雅,更适合写技术博客,与hexo类似的博客程序还有jekyll,jekyll被github着力推荐官方就提供了jekyll教程,但是jekyll是基于ruby写的,并且关于代码高亮没找到比较好的方案,就选择了用hexo
2. 配置环境
2.1 安装git
作者用的是mac,可以使用brew下面命令安装
1 | brew install git |
也可以直接上git官网下载安装
2.2 安装node.js
同样的,mac可以使用brew安装,新版的node.js已经包含npm工具,不需要再另外安装了
1 | brew install node |
可以通过下面命令检查是否已安装
1 | node -v |
如果是windows用户可以通过官网下载 jode.js
2.3 Hexo安装
上面的安装完成后,接下来安装hexo
1 | npm install hexo-cli -g #-g表示全局安装, npm默认为当前项目安装 |
接下来就可以通过http://localhost:4000/查看效果了
3. 配置github pages
每个github账户都可以有一个外部空间/Responsitory,可以直接通过用户名.github.io
访问到该仓库的内容
- 在github上新增一个responsitory,仓库名为
用户名.github.io
或用户名.github.com
- 创建完成后,github会自动将 用户名.github.io指向该仓库,默认访问根目录下的
index.html
页面 - 可以进入Responsitory的Setting页查看
github会提供几个模板搭建站点,我们可以不用他提供的模板,可以在仓库里面,添加一个简单的index.html文件,如果能通过用户名.github.com
访问,则表明创建成功了
4. 写博客
hexo的文章存放在source目录下
1 | ├── source |
1 | hexo new post "postName" # 在source/_posts 目录下创建postName.md文件 |
创建文件的命名格式可以在_config.yml文件配置
1 | # Writing |
文件创建完成后会自动生成以下格式(可以自己添加)
1 |
|
关与写作的各种参数可以参见:https://hexo.io/docs/writing.html
写完后预览的时候发现,文章在首页就全部显示出来了,如果不想全部显示,可以在文章中间添加下面标记,在首页列表就会出现Read More
的标记
1 | <!--more--> |
Hexo支持使用Markdown语法写文章,我比较习惯用Atom写Markdown,Atom有个hexo插件
5. 主题
官方自带主题基本够用,有能力可以自己改造,当然,网上已经有很多人做了一些很好看的主题了,我们可以直接拿来用,下面是官方列出的一些主题,找到喜欢的可以直接用
https://github.com/hexojs/hexo/wiki/Themes
https://hexo.io/themes
在hexo上,主题放在themes目录下,我们只需要把别人做好的主题clone下来就好了,然后在_config.yml
修改一下配置
例如:我们可以https://github.com/xiangming/landscape-plus这个主题clone下来
1 | git clone git@github.com:xiangming/landscape-plus.git themes/landscape-plus |
修改设置_config.yml
1 | theme: landscape-plus |
6. 添加多说评论插件
到多说官网注册和创建一个站点
修改配置
到themes/landscape-plus/_config.yml
添加多说的配置,shortname即注册的站点名称
1 | # Duoshuo |
参见官方说明,替换评论相关的代码http://dev.duoshuo.com/threads/541d3b2b40b5abcd2e4df0e9
完成,如下图评论有了
7. 部署到github上
修改配置_config.yml
1 | deploy: |
1 | npm install hexo-deployer-git --save |
部署hexo到git上
1 | hexo deploy |
部署过程需要输入账号密码,然后会push到github上,参考:https://hexo.io/docs/deployment.html
hexo部署时会把最终生成的博客文件(public目录下的文件)push到git远程仓库,而博客程序还是在本地,当我们切换电脑的时候,无法对博客进行重新编辑和发布,这个时候我们可以在git添加一个分支
hexo
用来存放博客程序和编写的内容,详情可以参见: git创建分支hexo存放博客程序
8. 域名绑定
通常域名在godaddy注册比较靠谱,这个是最大的域名提供商,而且不需要备案,支持支付宝付款,购买的时候可以使用优惠码会便宜一些,网上有很多优惠码,可以自行搜索,购买过程很简单,这里就不贴了
到DNSpod注册登陆,然后到用户中心,添加域名,例如我的域名为
bomobox.org
进入设置
添加两个A记录指向github提供的ip,参见这里1
2192.30.252.153
192.30.252.154添加一个CNAME记录指向自己的github域名:
username.github.io
把其他的删除
- 注册域名和配置DNS
- 到github仓库的根目录添加CNAME文件,文件内添加自己的域名,否则会出现404访问错误,也可以在hexo的
source
目录下添加,然后不熟到github
上面步骤设置完成后可能会有几个小时的延迟,才能生效,总的来说还是比较简单的
9. 问题
在使用别人的主题的时候可能会报错或者有些功能用不了,原因可能是部分插件没有安装,例如RSS用不了,那可能是hexo-generator-feed
没安装,下面列举一些常用的插件,建议都安装,没有用到也没有关系,需要先到hexo程序目录下在执行命令,插件位于node_modules
目录下
1 | npm install hexo-generator-feed --save #支持RSS |
并在博客配置文件_config.yml
配置plugin
1 | Plugins: |
更多插件可以在https://hexo.io/plugins/找到
10. Atom插件
由于我编写md使用的是Atom,这里推荐几个Atom上的插件
- markdown-scroll-sync:Markdown预览实时滚动,自带的预览不支持实时滚动
- markdown-writer:Markdown协作工具
- Date:快速插入当前时间的工具
- atom-hexo:快速添加draft,post,publish,deploy
11. 总结
使用hexo搭建博客环境还是非常方便的,基本上都是自动的,当然还有一些详细的配置,例如分页,分类,评论等,Hexo支持的插件也相当多的,接下来可以好好写博客了,以后再慢慢完善了,今天先到这里