Hexo + github 搭建个人博客
YoungForest · https://youngforest.github.io/2016/11/02/Hexo-github-building-personal-blog/
文章目录 · 5 节
动机(放在前面)
之前在cnblog上有个博客, 但是也不经常维护, 到现在满打满算也才有3篇随笔, 1个粉. 主要是因为自己没有写东西的习惯. 高中的时候记过一段时间的日记, 零零总总写了有大半本, 都是一些励志(自欺欺人)的东西, 写给自己看的.
首先, 之前感觉没有可写的, 但现在觉得可写的还是挺多的.自己这两年也折腾了不少东西.但折腾完后, 说实话忘得挺快的, 下次自己再弄或者给别人处理相同问题的时候, 基本上又要重新来过. 记下来下之后, 不管是自己日后需要, 还是给小伙伴们借鉴都是极有用的.
其次, 经高人安利, 经常写博客, 总结自己的工作学习, 和网络上的大牛们交流是学习计算机的基本技能. 写下来, 不仅可以系统地记录自己的学习历程, 供后日回顾, 或后人参考, 还可以督促自己坚持下来. 何乐而不为呢?
最后, 最近在搞编译课设的时候, 看到了这篇博客. 学习编译知识的同时, 感觉这个博客设计的很美观, 博主也很nice. 了解到使用Hexo搭建的时候, 便有了自己搭建博客的想法, 现在也终于有时间实现了.
介绍Hexo
有很多专门用来搭建博客的框架, 如 WordPress, Jekyll, Octopress, Joomla等. 这些我都没有用过, 就不评论了. 事实上, 这是我第一次搭建博客的经历, 也算是一种猿粪吧, 遇上了Hexo.
这里我就自己的感受, 说说Hexo的优点:
- 文档完善.
- 中文支持好, 包括文档各个方面. 事实上, 开发者就是中国人.
- 主题丰富.(作为一个看脸的人)
搭建过程
本地Hexo安装配置
关于如何搭建, 我这里推荐官方的文档. 文档中说的已经很详细了, 而且遇到问题的话, 还可以直接在文档最下面的讨论区提问, 貌似遇到奇奇怪怪问题的人挺多的, 我遇到问题一般靠谷歌, 事实上, 很多时候都被谷歌引到讨论区或者文档中的Troubleshoot了.
我安装hexo使用的环境的Ubuntu14.04, 在安装hexo的时候$ npm install -g hexo-cli, 会遇到这样的问题
1 | sh: 1: node: not found |
通过搜索可以很快找到解决问题的方法. 只需要sudo apt-get install nodejs-legacy就可以了.
出现这个问题的原因是, debian社区发现, nodejs解释器的命令是node. 然而, 这个命令和其他的包有命名空间的冲突, 比如 node 包中的 ax25-node. 所以, 他们决定把nodejs解释器命令改为nodejs, 大家需要用到nodejs的解释器时需要nodejs命令, 而不是node. 但是这样就会带来向后兼容的问题, 之前的nodejs脚本中的命令还用的是node, 其他Linux发行版也一直在用node. 所以他们想了一个兼容的方法, 创建一个符号链接, 将/usr/bin/node链接到/usr/bin/nodejs. 这个工作又node-legacy包来实现, 不推荐用户自己手动链接. 并且他们也规定, 'nodejs’的源代码包应该也提供一个node-legacy的可执行包. 这样就"完美"地解决了兼容问题.
由此看来, debian系的发布版都会出现这个问题.
发布到github上
在github上新建一个库, 库名为 “{your name}.github.io”, 比如, 我的是"youngforest.github.io". 事实上, 以这样的格式命名, github会默认配置好你的[GitHub Pages](https://pages.github.com/), 默认发布到"https://{your name}.github.io/“, 比如我的就是"https://youngforest.github.io/”.
当然, 如果你不这样命名的话, 自己也可去库中的设置中设置发布GitHub Page.
在本地的博客目录下, 运行hexo generate, 即可在public/中生成你博客的静态页面, 在这个文件夹下, 将其中所有的文件推到你在github上建好的库就可以了.
关于具体如何将本地的文件夹推到新建好的库, 在你新建好空库的时候, github应该会告诉你.

如果你想要一条命令完成github部署的话, 可以参考相关文档.
我在运行hexo deploy是会遇到这样的错误ERROR Deployer not found: git.
查了半天在hexo的isuue中找到了解决方法. 在bash中运行如下命令就好了.
1 | npm install hexo-generator-index --save |
当你在浏览器中访问你的"GitHub Pages"时, 就会看到部署好的博客.
在这里可以看到我部署好的博客.