Github + Hexo 三步曲

序曲

之前有过一次搭建博客的经历,当时购买了自己的第一个 .COM 域名,并用 Wordpress 挂在了同学的服务器上,一年下来只写了有寥寥几篇博客,虽然都还算认真写的,但写作动力不足,最后域名过期便无疾而终了,想来还因为 Wordpress 太慢,且臃肿难用,二来每次在网页上写文章很不方便,一旦网页挂掉就 Game Over 了,Evernote 和有道笔记用过之后也不是很满意,一个太慢,一个除了慢而且长得丑(每次都要登陆登陆,登陆你个大头鬼啊,你知不知道我每次都是写的本地笔记本啊,而且最近每用一次必崩溃一次),两者功能都太多,我现在只偶尔用 Evernote 的剪藏功能来收藏网页。

其余,我想有一个能记录想法或笔记的工具,随时能用,并且有一个展示的地方,仅此而已。本来也可以写在Lofter、新浪博客、点点等博客平台上,但是总感觉不够『独立』,尤其在用了 Markdown 之后,更被 Markdown 的简洁优雅所吸引。最最重要的是我最近要开始学习 iOS 开发,到时会记录一些学习笔记和总结在这里,因为我发现很多大牛都有在博客上记录总结的习惯。与此同时还可以好好用下 Git 和 Github,综上,才有了我的新博客。

So,Let’s start!

第一步:准备工作

首先,你要:

1. 注册 GitHub

GitHub 是我们放博客的地方,它是开源世界的一个代码仓库,甚至可以毫不夸张地说是它推动了开源运动的发展,同时它也是世界上最大的同性交友社区,咳咳——严肃点!

2. 学习Markdown

Markdown 简洁优雅的语法让人可以专注于写作,越来越多的网站和作者都在使用和支持 Markdown,当然你最好找一个支持 Markdown 的编辑器。我在用的是 Evernote 的『马克飞象』,有网页版和 Chrome 插件,可以绑定Evernote账号同步,支持离线写作。因为我只需要一个编辑器,而且写完后会发布到博客,所以并没有绑定账号。

  • 如果使用马克飞象没有绑定账号的话,不管是网页版还是插件版估计都会有缓存容量限制,而且文章多了会影响打开时的加载速度,所以记得写完后即使清理以前的文章。
  • 其实绑定账号后,文章都被同步到 Evernote,这样就不用考虑博客的备份问题了,是吧?

第二步:安装软件

1. 安装Git

Git 是一个非常流行的分布式版本控制工具,全世界的搬砖工人、射击师都在用它,据不完全统计,这些人手拉手可以绕地球……多少圈来着,还没人统计过,估计因为人太多了!!!关于 Git 到底是什么以及可以用来干什么,请自行搜索。关于 Git 的使用,甚至可以用一整本书来讲解,因为它太复杂了,但是不用担心,我们只需要学会它简单的几条命令的就可以了,这里有份 Git 简易指南,它对于我们的使用已经足够,甚至你连这份这份简易指南也可以不用看,后面我们会提到。但是如果你想深入学习 Git 的话,这里有官方的 Pro Git 英文版Pro Git 中文版

关于 Git 客户端的选择,我只讨论 Windows,我之前用过一段时间使用过 GitHub Desktop For Windows,但是感觉有点重,不管是 GUI 还是 Git Bash 启动都很慢,所以我现在只想找个轻量一点的类似 Linux 下的命令行工具,几经搜寻后,决定使用 Git 官网提供的客户端 ,同时它还有 Linux 和 Mac 的版本。

客户端安装好后,发现它也提供了Git GUI,但是从安装到现在我一次都没开过,打开 Git Bash,默认样式不是很好看,自己在右键 Options 里面进行调整。然后输入如下命令对 Git 进行基本配置:

1
2
3
git config --global user.name "你的github用户名"
git config --global user.email "你的github注册邮箱"
git config --global core.autocrlf false #注释:为了避免稍后通过Hexo发布博客时出现LF would be replaced by CRLF in xxx.html 错误,我们先配置这条,Stackoverflow上有关于这个问题的讨论:http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf.

然后因为你以后大多时候可能会使用 SSH 方式和 GitHub 建立连接,你可能需要 配置 ssh-key,大致原理是在本地产生一个加密串,然后将这个加密串保存到 GitHub 里面,链接里面是 GitHub 提供的详细教程。

这一步最后你可以尝试 利用 GitHub Pages 发布第一篇博客,GitHub Pages 是 GitHub 提供的一个托管个人主页的服务。这个链接里面会一步步教你建立一个repo,存放你的二级域名指向的站点,成功后 username.github.io 可能不能立即访问,等十几分钟就行了。这一步算是看看你的阶段性成果。哦,差点忘了提,掌握这里面使用的 Git 命令就差不多了,前面提到的那个简易指南相对来说都有点多了。

2. 安装 Nodejs

由于 Hexo 是用 Nodejs 写的,所以不解释。NodeJs 官网首页提供了 Windows 版的下载,下载完成后直接运行安装即可,最近的版本已经不需要配置环境变量什么鬼了。当然使用其它系统的请参考 Hexo 英文文档中文文档,首页介绍了 Nodejs 在各个系统的安装方法。

3. 安装 Hexo

安装完 Git 和 Nodejs 后,就可以安装 Hexo 了,其实这一步以后的过程, Hexo 官方文档 里都包括了,但我还是想捋一下。关于为什么是 Hexo,其实我也是在 Hexo、jekyll、FarBox 等等工具上调查纠结了几天,这是 Hexo 官网的slogan:

Hexo —— A fast, simple & powerful blog framework

我觉得光是 Hexo 这个名字就很简洁犀利、够Geek,所以就它了,嗯~
由于安装了 Nodejs,改变了系统环境变量,所以需要 重启Git Bash,再执行如下命令:

1
2
3
4
npm install -g hexo-cli #安装Hexo,下面的是初始化过程
hexo init <folder> #初始化博客文件夹,folder是你想写博客的文件夹
cd <folder> #进入该文件夹
npm install #安装依赖

然后你应该把 Hexo 官方文档 的Getting Started 和 Basic Usage 这两部分浏览一遍,了解 Hexo 的配置以及博客从写作到发布的流程,当然如果你有时间的话,可以浏览一下整个文档,这对于你以后想 Hack 别人的 Hexo 主题或者写自己的 Hexo 主题会有用。

第三步:发布博客

到了这里,我们的节目基本就接近尾声了,“啪~,套话又来了……”

1. 安装必要插件

其实到这里,我们的安装软件的任务已经结束了,但为了稍后少走弯路,我直接按照解决问题后的思路来写了。

1
2
3
npm install hexo-deployer-git --save #安装Hexo的git插件,因为我们会在Hexo里面用git发布文章
npm install hexo-generator-feed --save #安装生成RSS的插件,方便用户订阅
npm install hexo-generator-sitemap --save #安装生成sitemap插件,提供给蜘蛛

2. 更改 Hexo 配置

Hexo 配置文件 _config.yml 位于 Hexo 根目录,可用 Vim 或其他编辑工具打开修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## Docs: https://hexo.io/docs/configuration.html
title: 网站标题
subtitle: 网站的子标题
description: 网站描述
author: 作者,即博客拥有者名字
language: en #关于language的使用各个主题都稍有不同,看主题文档配置

...中间省略若干...

theme: again #主题名字,每次更换主题都要一定改这里

deploy: #发布博客平台的配置,还可以增加诸如国内的gitcafe
type: git
repo: git@github.com:username/username.github.io.git
branch: master

配置文件里面我只列出了主要需要修改的地方,剩余其他选项可以看看 文档的Configuration部分

注意:每个配置名称和配置内容之间要至少一个空格!!!

3. 更换主题

Hexo 默认的主题有点丑,但功能还算完善,Hexo官网展示了部分主题以及GitHub wiki上列出了比较全的主题,选定喜欢的主题后,可以到主题的项目主页看看README,有没有需要安装的包依赖,那么如何更换主题呢?

  1. 将主题克隆到本地,在 Hexo 根目录执行如下命令:

    1
    git clone https://github.com/username/theme-name.git themes/theme-name
  2. 修改配置文件,打开 Hexo 根目录的 _config.yml:

    1
    theme: theme-name #在这里填写你更换的主题名称

4. 写博客

  1. 按照Scaffolds目录下提供的layout之一新建一个文件,当然你也可以写一个属于自己的layout放到此目录下,而写文章要用 post 类型的 layout,而 post 在 Hexo 的配置文件里被配置成了默认的 layout,所以如下命令的 loyout 可省略。

    1
    hexo new layout "postName" #postName是博客名字,博客文件名称也是根据该名字来生成的,博客文件默认在source/_post目录下,当然这些也都是可配置的。
  2. 然后用你喜欢的Markdown编辑器打开刚刚生成的博客文件,写下你想写的文字。

  3. 生成博客:

    1
    2
    3
    hexo generate #生成网页静态文件,Hexo会在根目录新建public文件夹来存放
    hexo server #启动本地服务器,成功后可通过浏览器输入localhost:4000来测试博客效果
    hexo deploy #发布,如果前面的git插件安装后正确配置,就不会有太大问题

    注意:hexo deploy 时每次都会覆盖原来的内容,所以记得备份。

  4. 发布成功后,就可通过 username.github.io来访问你的博客。

关于我正在使用的主题,我用的是 Hexo 官网展示的第一款主题 Again,不是因为我懒,而是我调查了几十个主题纠结之后的果断选择,这款主题不是很令人满意,也不是很完善,甚至没有提供分类和标签功能,但是这样反而让它看起来简单简洁,我想有时间我会将它改的更让人满意。
Ps:关于如何创建分类和标签页面在我参考的文章里面估计可以找到

关于404页面,在没有购买顶级域名的情况下,配置404页面并没什么用。

曲终

感谢 Git、GitHub、Hexo、Markdown、Nodejs 的技术支持以及开源世界的贡献者!

参考

  1. Hexo官网
  2. GitHub Pages 主页
  3. ibruce 的 hexo-your-blog
  4. zipperary的Hexo系列
  5. V2关于hexo deploy报错的讨论
  6. 还包括文中其他链接

avatar

神无

舍悟离迷,六尘不改。