从零开始了解Hexo博客

博客这个互联网时代的原始生物有着强悍的生命力,经过了几十年的发展,终于找到了自己的位置。从最初的各个门户平台血拼博客服务,到后来的人人网日志,微博、微信的兴起。主流的文字输出形态不断的变化,越来越碎片。在这个发展过程中,始终有一群人,不愿意跟随大众的步伐随便找一个服务商,让自己的博客起起伏伏。他们一直在用自己的方式向人们述说自己的故事。

独立博客的技术已经非常的成熟和简单,从Wordpress到Jekyll。不同的人有不同的选择。近几年兴起的Hexo方式也是很不错的博客搭建工具。利用Hexo和Github提供的Github Pages服务可以非常方便的搭建出一个静态博客。
我折腾博客的时间也有年头了,但是一直以来断断续续,无论是技术还是内容。这一段时间系统的了解了Jekyll和Hexo,最终选择Hexo作为手中的利器,所以本博客也从Hexo的搭建开始。

Hexo是什么

Hexo是台湾的Tommy Chen2012年开始维护的博客框架。2012年10月11日Tommy Chen写了一篇博客:Hexo 颯爽登場!,当年的10月29日Hexo 更新至 0.1。到目前为止,已经更新到3.2版本,并且项目还在不断更新中,通过hexojs/hexo仓库可以看到项目的最新进展,欢迎大家加入开源项目,欢乐多多。

关于为什么要做Hexo,以及为什么叫Hexo,Tommy Chen在博客中说到

我想每個 Octopress 的使用者一定都有這樣的煩惱──隨著文章數量愈來愈多,檔案建立的速度愈來愈慢。本站目前已累積至 54 篇文章,每次建立檔案時,至少都需要花費一分鐘以上的時間。
或許是因為 Ruby 天生就比較慢,而這種問題未來似乎也不會改善,Jekyll 和 Octopress 已經一段時間沒有更新,那麼唯一的解決方案只有另覓其他 Blog Framework 了。
那麼唯一的方式,大概只剩自造輪子了。
Prototype 的速度相當不錯,在 2 秒內即可將全站的資料都建立完成。之後的一個月,便以此為基礎擴充、加強,最後的成品即是──Hexo!
你或許會好奇這篇文章的開頭為何要放一張與內容毫不相關的圖片,雖然放不相關圖片是傳統,不過這次的開頭圖片可是有關聯性的!
我想 Octopress 的名稱來源也許是 Octal(八進制) + Press,因此我便以十六進制(hexadecimal,縮寫為 hex)來取名

还需要写这些么?

无论是百度还是Google,随便一搜就能找到大量的Hexo的安装教程,再加上官方的操作指南,还有必要来写Hexo的安装配置博客么?在配置博客的过程中,我遇到了一个大坑,花费了将近10个小时的时间最后才找到答案。
如果你是想找一些教科书式的安装步骤,请移步官方文档,如果你就是随便看看,网上随便一搜有大量的相关的“随便”的文档。我要写的内容主要有以下几个关键:

  1. 内隐知识:一套程序背后,有大量的内隐知识,这些内容是很难通过教程说清楚的,我尝试把自己意识到的关键点记录下来,在那些千篇一律的解决办法面前,给出自己鲜活的答案。
  2. 疑难杂症:仅仅是一个静态博客的安装,也涉及到git、终端语句等大量相关知识,也需要用挑通程序的方式来对待。任何一个错误都会让你的博客像一张被人随便涂抹的油画一样让人难过。而这些错误,至少我遇到的小问题,找了很久的资料才找到原因。
  3. 操作步骤:这是为了自己,在官方文档之外总有一些自己的技巧和步骤,写下来,做一个沉淀。写到博客上,也可以方便其他人。

一些工具

要想顺利安装,你可以找到官方文档或者有责任心的教程从头到尾做一遍。

但这并不足以支撑你后续的博客之路。你会想要做一些自定义,如果用独立博客的人会”将就“,就不会来捣鼓独立博客了。了解到什么程度能够做到既不会写代码,又能够顺利的使用博客呢?

  1. 了解github和github pages如何使用
    • 知道如何设置默认分支
    • 知道什么是github pages服务
  2. 了解git的基本原理,能够使用终端做最基本的版本管理
    • 新建分支的操作
    • 上传文件到github的操作等
  3. 了解Hexo的基本知识
    • 基本的安装步骤
    • 文件目录体系和各个文件的作用
    • 一般博客都会有的基本组件(分类、标签等)

给新人的建议

  1. 尽量不要使用Windows环境,特别是文件路径中含有中文,有出错的可能性。
  2. 尝试按照官方文档或者全面的文档从头到尾做一遍。做过一遍,才能理解在文档之外的内容,遇到问题找人解决问题更有效。
  3. 了解一些终端代码,如果不了解,也做好要不断搜索的准备。否则容易在出错的时候不断涌现出不了解的新知识点,大量的认知更新导致行为瘫痪。
  4. 了解git和github,因为主要是建立在github的服务基础上,github又是基于git的版本管理,如果不了解相关知识,出现的问题同3。

为什么要用Hexo

弃Jekyll投Hexo

Reference

声明: 本文转载需标明出处,禁止用于商业目的。

ChangeLog

20161107 新建文档
20161107 发布文档
20161108 更新文档