3 优雅地使用Hexo
3.1 Hexo简介
Hexo是一个简单、快速、强大的基于 Github Pages 的博客发布工具,支持Markdown格式,有众多优秀插件和主题。
3.2 原理
由于github pages存放的都是静态文件,博客存放的不只是文章内容,还有文章列表、分类、标签、翻页等动态内容,假如每次写完一篇文章都要手动更新博文目录和相关链接信息,相信谁都会疯掉,所以hexo所做的就是将这些md文件都放在本地,每次写完文章后调用写好的命令来批量完成相关页面的生成,然后再将有改动的页面提交到github。
3.3 注意事项
Hexo不同版本差别比较大,网上很多文章的配置信息都是基于2.x的,所以注意不要被误导;
hexo有2种_config.yml文件,一个是根目录下的全局的_config.yml,一个是各个theme下的;
3.4 安装Hexo
在你认为合适的地方创个文件夹,我是在D盘建了一个blog文件夹。然后通过命令行进入到该文件夹里面
$ npm install -g hexo-cli
安装位置
soft ▸ usr ▸ local ▸ lib ▸ node_modules
3.5 初始化
在电脑的某个地方新建一个名为hexo的文件夹(名字可以随便取),比如我的是/Volumes/doc/hexo,由于这个文件夹将来就作为你存放代码的地方,所以最好不要随便放。
$ cd /f/Workspaces/hexo/ $ hexo init
3.5 初始化
在电脑的某个地方新建一个名为hexo的文件夹(名字可以随便取),比如我的是/Volumes/doc/hexo,由于这个文件夹将来就作为你存放代码的地方,所以最好不要随便放。
$ cd /f/Workspaces/hexo/ $ hexo init
- 启动服务
$ hexo s
执行以上命令之后,hexo就会在public文件夹生成相关html文件,这些文件将来都是要提交到github去的
hexo s是开启本地预览服务
打开浏览器访问 http://localhost:4000 即可看到内容
3.6 修改主题
默认主题丑到反人类,替换一个好看点的主题
首先下载这个主题:
$ git clone https://github.com/wizardforcel/hexo-theme-landfarz.git themes/landfarz
下载后的主题都在这里
修改_config.yml
中的theme
landscape改为theme: landfarz
然后重新执行hexo g来重新生成
3.7 备份
在上传代码到github之前,一定要记得先把你以前所有代码下载下来(虽然github有版本管理,但备份一下总是好的),因为从hexo提交代码时会把你以前的所有代码都删掉。
3.8 部署
如果你一切都配置好了,发布上传很容易,一句hexo d就搞定,当然关键还是你要把所有东西配置好。
- 首先,ssh key肯定要配置好。
- 其次,配置_config.yml中有关deploy的部分:
正确写法:
deploy: type: git repository: git@github.com:liuxianan/liuxianan.github.io.git branch: master
错误写法:
deploy: type: github repository: https://github.com/liuxianan/liuxianan.github.io.git branch: master
后面一种写法是hexo2.x的写法,现在已经不行了
- 无论是哪种写法,此时直接执行hexo d会报如下错误:
- 还需要安装一个插件
sudo npm install hexo-deployer-git --save
根据警告再安装即可
发现又有警告,MD!
好了,终于没有警告了!
输入hexo d就会将本次有改动的代码全部提交,没有改动的不会
3.9 保留README.md等文件
提交之后网页上一看,发现以前其它代码都没了,此时不要慌,一些非md文件可以把他们放到source文件夹下,这里的所有文件都会原样复制(除了md文件)到public目录的:
由于hexo默认会把所有md文件都转换成html,包括README.md,所有需要每次生成之后、上传之前,手动将README.md复制到public目录,并删除README.html。
3.10 常用hexo命令
常见命令
hexo new "postName" #新建文章 hexo new page "pageName" #新建页面 hexo generate #生成静态页面至public目录 hexo server #开启预览访问端口(默认端口4000,'ctrl + c'关闭server) hexo deploy #部署到GitHub hexo help # 查看帮助 hexo version #查看Hexo的版本
缩写:
hexo n == hexo new hexo g == hexo generate hexo s == hexo server hexo d == hexo deploy
组合命令:
hexo s -g #生成并本地预览 hexo d -g #生成并上传
3.11 _config.yml
这里面都是一些全局配置,每个参数的意思都比较简单明了,所以就不作详细介绍了。
需要特别注意的地方是,冒号后面必须有一个空格,否则可能会出问题。