hexo搭建静态博客以及优化

首先,这不是一篇详尽的完整的教程,只是记录大致的hexo建站流程以及自己折腾的过程。因为网上关于hexo的教程已经太多,一搜一大把。但是我还是推荐英文尚可的直接阅读hexo作者的文档,因为很多教程也只是一知半解,还是看作者文档来的比较彻底。另外,hexo源代码开源,实在不行还可以去hexo的github去提issue

折腾的成果就是你现在看到的这个博客,所以这里本身就是一个demo。^_^

p.s. hexo作者据说是台湾的一名在校学生…… T_T 努力吧少年……

建站流程

1. 安装node.js以及git

2. 安装hexo

$ npm install -g hexo

3. 部署github pages

3.1 github建立repo

以下二选一。

  • 建立一个 username.github.com 的repo,username为你的github用户名,每个用户只能有一个这样的repo,则直接发布到master分支即可。
  • 建立一个项目repo,发布的branch是gh-pages.

自定义域名

如果你用自定义域名的话,github pages需要你建立一个名称为CNAME的文件,里面放入你的域名地址。如我的CNAME文件.

因为每次deploy的时候hexo都会重新生成文件,所以直接加在github是不好使的,这个文件需要放在 hexo folder/source文件夹根目录下。

3.2 hexo配置deploy信息:

修改在blog根目录下的_config.yml,添加repo地址:

deploy:
  type: github
  repository: https://github.com/[username]/[reponame].git

References:
[1] github pages help
[2] hexo Deployment Docs
[3] 想用BAE的可以看这篇:在BAE上使用hexo搭建博客

4. hexo基本操作

  • 新建博客

    $ hexo init <folder>
    

在该目录下就建立了你的hexo blog.

  • 新建文章

    $ hexo init <title>
    

会在source/_post新建一个名为 title.md 的文章,用喜欢的编辑器打开就可以用markdown语法写文章了。

  • server

    $ hexo server
    

就可以在 localhost:4000/ 查看你的博客。

  • generate & deploy

    $ hexo generate
    $ hexo deploy
    

或者(以下这俩效果是完全一样的)

$ hexo generate --deploy
$ hexo deploy --generate

折腾

插件 plugins

  • rss生成 hexo-generator-feed
  • sitemap hexo-generator-sitemap

添加插件的基本操作是:

$ npm install <plugin-name> --save
$ npm update

然后修改blog根目录下的_config.yml,添加:

plugins:
- plugin-name

插件部分详见:https://github.com/tommy351/hexo/wiki/Plugins

组件 widgets

  • 关于 about me [1]
  • 日历 calendar [2]
  • 返回页面顶部 Scrolltop [2]
  • 微博秀 weibo show [3]

其他调整

  • 去掉addthis和Disqus
  • 添加多说 [1]
  • 添加百度统计 [1] 和Google Analytics
    原先一直用GA然后现在两个都用是打算对比一下。。
  • 自动附上博客文章源码的github地址
  • 添加social icons
  • 样式微调
  • 字体微调 [1]

优化调整参考了:
[1] jim-liu的优化版light theme
[2] 净土howiefh
[3] 微博开放平台

其他

源代码管理

由于我用的github pages所以发布是会发布到gh-pages分支,而我用这个博客repo的master分支管理整个博客的源代码。这样就可以轻松的实现不同电脑的同步了。
本博客的源代码:https://github.com/wileam/code/

发布显示更多

在你觉得适合的位置插入

<!-- more -->

就会将之前的部分生成摘要。点击”阅读全文“才会看到全文。

YAML

hexo文章的头部文件是用YAML来写的,比如文章要同时标记多个tags,就需要用

tags: [tag1, tag2]

或者

tags:
- tag1
- tag2

这样的语法来写,详见YAML的wikipedia.

ejs和stylus

hexo是用的ejs和stylus。同样如果习惯用LESS之类也可以装相应的plugins.

ejs是embedded javascript,从js文件中抽取出html结构,使代码结构清晰简洁易读。(其实我还不太明白所以没怎么改ejs……)
文档存备用:https://code.google.com/p/embeddedjavascript/w/list

stylus是和less/sass类似的一个css processor,比原生的css更简洁一些。
同样文档存备用:http://learnboost.github.io/stylus/

markdown

参见markdown syntax,或者我之前的博客,markdown语法

疑似bug

如果更新了css文件,那么需要把public的css文件删除,然后

$ hexo deploy --generate

这样才会重新生成新的文件。我试了好几次都是这样,不知道是不是bug……


本文源码:https://github.com/wileam/code/blob/master/source/_posts/build-a-hexo-blog-and-optimize.md