盒子
导航
文章目录
  1. 一、安装Node.js
  2. 二、安装Hexo
  3. 三、配置博客目录
  4. 四、撰写发布
  5. 五、参考资料

使用Hexo在Github上构建博客

以前和同学在阿里云上一起租用服务器自己搭建系统构建环境来跑Wordpress博客,要每个月交钱,还要经常备份。最近决定再次迁移,使用Node.js + Hexo来生成静态页面,然后放到Github上,这样就不用考虑什么域名备案、服务器费用等乱七八糟的东西了。

一、安装Node.js

安装Git (Git Doc),若安装了Xcode则默认会安装Git for Mac。然后下载安装Node.js引擎,很简单。

二、安装Hexo

安装好了Node.js就可以使用npm命令安装Hexo

npm install hexo-cli -g

很可能会出现权限问题导致安装失败,可使用sudo重试

sudo npm install hexo-cli -g

三、配置博客目录

任意一个文件夹作为blog工作区,如命名为blogws,然后初始化该文件夹为博客工作区,如果更换了文件夹,同样要执行以下操作来初始化工作区。注意:应该尽量避免使用sudo来做接下来的一些列操作,因为使用sudo意味着文件权限归属是超级用户而不是当前用户,这在后面可能会引起一些问题,例如远程部署到github上的时候,就不能使用超级用户也就是sudo来部署,这会被github服务器拒绝,参见链接

$ mkdir blogws
$ cd blogws
$ hexo init

根据提示安装其他依赖:

$ npm install

这样一个基本的博客工作目录就完成了,但这样还远远不够。事实上Hexo只是提供了一个平台,我们还需要安装其他的Hexo插件来完成诸如静态页面生成、本地预览、远程部署(例如部署到Git服务器)等,关于Hexo的可用插件可以在这个链接当中找到。Hexo及其插件是基于Node.js来开发的,安装的命令一般为

$ npm install –save

安装完成之后相应的组件就会安装到博客目录中的node_modules文件夹下。针对我自己的情况,我安装了如下组件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
npm install hexo --save
npm install hexo-search
npm install hexo-deployer-git --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-feed --save
npm install hexo-generator-index --save
npm install hexo-generator-sitemap --save
npm install hexo-generator-tag --save
npm install hexo-renderer-ejs --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-ruby-character --save
npm install hexo-server --save
npm install hexo-tag-bootstrap --save
npm install hexo-uglify --save # compress js

其中server用来在本地预览,deployer-git用来部署到git服务器,如果你需要部署到其他类型的服务器,就需要安装其他组件如Heroku、OpenShift、Rsync、Amazon S3等等,参考Hexo Plugin来下载安装相应组件。对于安装静态页面生成器,如果想偷懒就直接把generator全部安装了(别这么干,呵呵),如

npm install hexo –save
npm install hexo-generator-* –save

四、撰写发布

在source/_post下撰写博客文章(*.md文本文件),撰写文章需要学一下Markdown标记语法。在blogws文件夹下使用命令在本地预览,如果成功(看提示)则可以通过地址http://0.0.0.0:4000/(地址和端口可在blogws下的_config.yml文件中配置)来在本地预览博客(需要安装hexo-server)

hexo server

在blogws文件夹下使用命令生成静态页面(需要安装hexo-generator-*)

hexo generate

使用下面的命令

hexo deploy

来将静态页面发布到GitHub(需要配置ssh,参见如何在Github配置SSH,需要配置_config.yml)这里不要使用sudo,否则会部署失败,参见链接。发布需要会使用Git,Git类似svn,是用来做版本管理的,但它比svn更强大,Git使用参考

不过毕竟GitHub在美国,访问的速度还是相对较慢,所以我把博客主站设在了GitCafe,从站设在GitHub,博客更新时同时deploy到两个站点就好了。正好我有俩域名,www.imchaser.com指向从站,i36.me指向主站。不过比较可惜的是GitCafe只提供512M空间,大于该空间就要收费,否则不能push只能pull,所以不能放太多附件。

五、参考资料

  1. Git Docs
  2. Hexo Docs | 主题
  3. About Markdown
  4. Markdown Basics
  5. 撰写工具:Vim or Sublime