博客这种比较古老的方式,虽然现在没有以前流行了,但是它的很多优点却有着不可替代的作用。 hexo,一个静态的博客生成系统, 和 github,一个免费的托管网站, 使用他们,你就能搭建属于自己的博客啦!
鉴于 hexo 比较偏技术化,所以我不推荐一般人使用 hexo。 其它的博客托管服务,如新浪博客等,可能更适合你。 但是对于对 IT 感兴趣或者本身就是 IT 的,想搭建博客强烈建议 hexo! 你不仅能建立一个漂亮的博客,还能从中学习到一些东西。
本文介绍了一些搭建 hexo 静态博客的准备工作和基本知识,力求通俗易懂,给想搭建博客的人一个参考。
1. hexo 和 github 是什么?
hexo,其实是一个软件。你使用诸如 markdown 格式来书写博文,然后把它放到指定的文件夹内。 之后,运行这个软件,它就能解析你的博文,来生成一批静态的 HTML 文件。 你再把这些静态的 HTML 文件放到网站空间上去,访问,你就惊讶的发现一个静态博客就这么搭建好了!
至于 github,其实它是一个源代码托管网站,给程序员们来托管代码,分享代码, 甚至是约代码架,同性交友等等。。。 但是这些不重要,对现在的我们来说,有一点就足够了,github 免费提供了静态 HTML 文件存放的网站空间! 这样,我们就能利用 github,来托管我们的静态博客,这样别人通过一个网址,就能浏览你的博客了!
当我们一切都就绪都配置好了,发布博客的步骤是这样的:
- 首先在你的电脑里写好博文,一般是一个 markdown 文件。
- 把这个博文文件放在 hexo 指定的文件夹内。
- 运行特定的命令,hexo 会根据博文生成静态的 HTML 页面。
- 再运行特定的命令,hexo 会把静态的 HTML 页面同步到 github 的网站空间里。
- 别人打开你的博客网址,发现你发布了一篇新博文!
2. 安装需要的工具
首先需要做一些准备工作。前面说到,hexo 是一个软件。 我们还要多提一点,hexo 是一个用 javascript 语言写成的软件,并且也支持使用 javascrpit 语言写成的 hexo 插件来扩展其功能。 由于 javascript 是动态语言,所以我们需要一个解释器来运行它,这个解释器叫做 nodejs。
对于像 hexo 这种 javascript 语言写成的软件,其实有很多,hexo 只是其中的一种。 为了照顾懒人(/手动呲牙),专门有个叫 npm 的软件,用来安装它。 你只需要输入一条命令,npm 就会自己去网络上下载所要的软件,并且安装在你的电脑上。
由于 github 原本是代码托管网站,给你提供了静态页面纯属附带用途。 github 使用一种叫做 git 的软件,来帮你把生成的静态 HTML 页面同步到 github。 你不用知道怎么使用,hexo 都为你包装好了,但是你的电脑里必须要安装 git。
2.1. linux 下安装 npm 和 nodejs
什么,你用 windows?这节你可以跳过了,去官方网站找安装包吧。 鉴于 windows 下安装这个非常简单,就不多说了。 值得一提的是你要注意配置好环境变量。
对于 debian 系用户,你可能想到使用 apt-get 来安装 nodejs 和 npm。 但是我这里 不推荐 这种方式。之前我也是这么安装的,但是发现有一小一大两个坑:
- 安装 nodejs 会创建
nodejs
命令而不是node
命令,但是很多包会试图调用node
命令。 - 最新版本的 nodejs 已经到 6.x,然而源里面还是 0.xxx 版本。。。这导致了使用新特性的代码无法运行。
第一个问题好歹能用硬链接解决,但是第二个坑,这么也绕过不过去的。
2.1.1. 从官方下载最新版本
去 http://nodejs.org ,找到合适的版本,推荐使用长期支持版。 之后下载和你的硬件匹配的版本,这里提供的还挺全,连 arm 系列都有!
等下载完毕之后,解压,自己找个地方放着,比方说,~/software/node。 你会发现~/software/node/bin 下有两个文件:node 和 npm。
接着编辑你的~/.profile 文件。值得一提的是,类似功能的其实有三个文件:
~/.profile
~/.bash_profile
~/.bash_login
编辑在你电脑里面 存在 的那一个,后面会以~/profile 文件为例。 如果你用的 debian 系,存在的那一个应该就是~/.profile。
在末尾加入以下内容,作用是将 bin 目录加入环境变量:
|
|
使修改马上生效:
|
|
之后,试试运行 node -v,看看能不能运行,以及版本号。到这里,npm 和 nodejs 安装完成!
2.2. 配置 npm
前面提到,npm 是一个软件,用来安装那些使用 javascript 语言写成的软件包。 npm 会把这些包下载并安装到某个地方。 但是在 linux 系统下,默认的地方是需要 root 权限的。 好在 npm 提供了配置方法,我们可以通过设置,将 npm 的安装包安装路径更改到用户目录。
npm 会连接一个网站自动下载软件包。我们把这个网站称之为 源 。 npm 默认连接的源,在国外,不仅速度卡成狗,有些时候直接就无法下载。 好在阿里,就是淘宝的那家公司,也提供了一个供 npm 自动下载软件包的网站,位于国内,速度很快。 我们把这样的网站,叫做 镜像源 。 之后,通过 npm 安装软件包,手动在命令后指定阿里的镜像源即可。
2.2.1. linux 下设置 npm 安装路径
这不是必要的环节 。如果你不想的话,这小节可以忽略了。 但是要注意的是,在使用 npm -g 的时候,会需要 root 权限。
下面演示了,如何设置将 npm 安装包路径更改到~/.npm-global:
|
|
加入到环境变量:
|
|
使更改立即生效:
|
|
完成!在这之后,使用 npm -g
安装的包,都会放在刚才指定的目录里。
2.2.2. 镜像源配置
如果你只是偶尔用用 npm 安装软件包,直接在对应的命令后指定镜像源即可。 hexo install
是 npm 的安装命令,如:
|
|
在最后附上 --registry=https://registry.npm.taobao.org
,即指定阿里源作为下载源:
|
|
如果你经常使用 npm 安装软件包,不想使用 npm 都得拖这么一个小尾巴, 参考 http://npm.taobao.org/ ,有关 cnpm 包的更多信息。
2.3. 安装以及配置 git
前面提到,需要 git 是因为 hexo 通过它来将静态的 HTML 同步到 github 的网站空间上去。 由于 hexo 为你包装好了,所以你无需对 git 有太多了解,只需要安装及配置一些必要的信息就行。
2.3.1. 安装 git
windows 下,去这个页面:https://git-scm.com/download/win。 选择与你系统匹配(32 位或 64 位)的 Windows setup 安装包,下载得到 exe 文件。 双击安装,看不懂不要紧,一路 next 即可。
linux 下,更简单了,使用你的包管理器安装。以 debian 系为例:
|
|
2.3.2. 配置 git
配置你的用户名和电子邮件。 把 <用户名>
替换成你的用户名, <电子邮件>
替换成你的邮箱,输入命令:
|
|
2.4. 安装 hexo
有了前面的充分准备,这步就非常简单了。输入命令:
|
|
为了检查你是否真的成功安装,输入命令 hexo -v
,稍等一会儿,hexo 会输出它的版本号等信息。
至此,我们的所有准备工作以及全部完成! 之后的重点,是通过 hexo 这个强大的软件,来生成我们的静态博客了!
3. 开始搭建博客
3.1. 初始化博客目录
新建一个目录,之后使用 hexo 初始化这个目录。 之后,这个目录就是你的的博客基地了! 你的文章会在这个文件夹里,hexo 的配置在这个文件夹里,你安装的插件也在这个文件夹里。
要注意的是,后面的步骤是需要联网的。
3.1.1. linux
下面我假设你建立的目录是~/hexo-blog。 输入命令:
|
|
3.1.2. Windows
在你想要的地方建立一个文件夹,之后进入到文件夹内。 确保你的电脑设置没有隐藏已知文件的扩展名(怎么关掉自行百度), 在文件夹内建立 run.bat 文件,加入内容:
|
|
之后双击这个文件,会弹出一个黑窗户。输入:
|
|
就使用 hexo 初始化了这个目录。
注意:在后面的命令中我会以 linux 的版本为例。 如果你用的是 windows,只需要把 cd ~/hexo-blog
脑补成博客目录下的 run.bat 就行。
3.2. 基本配置
博客目录下的东西,我们需要知道这些信息:
_config.yml
这里是博客的一些配置,你可以按需修改。source/_posts
这里存放的是你写的文章,markdown,html, 或者下文要用插件支持的 org 模式。public
博客最终静态 html 的存放目录,hexo 会自动生成的,你无需过多操心。themes
主题目录,这里面按目录放着不同的主题。你可以找自己喜欢的主题放在这里。
关于以 yml 结尾的配置文件,要注意:
- 在修改时 不要 使用 windows 的记事本! 我推荐使用 notepad++,这是个普通的 windows 软件,很好安装。 之后你电脑里的记事本可以退役了。
- 修改内容时要注意,yml 文件的内容是对缩进敏感的。
现在开始配置一些博客的基本信息。打开博客目录下的config.yml
,比如我的部分配置:
|
|
下一节会告诉你如何预览博客,你可以尝试修改上面的内容,重新启动预览服务器,看看有什么效果。
3.3. 使用 markdown 书写你的博文
现在我们来写一篇博文。 博文实际上是放在指定目录下的,有着一定格式的文本文件。 现在 source/posts 文件夹里创建一个以.md 的文件,比如 test.md。 使用 notepad++等编辑器编辑它,比如:
|
|
我们看到,在 ---
之前,我们通过某种特殊的语法设置了文章的标题,发布日期,分类和标签。 它们被称为 front-matter,想了解更多用法请查看官方文档:http://hexo.io/zh-cn/docs/front-matter.html。
在 ---
之后,是使用 markdown 格式书写的正文。markdown 是一种轻量级的标记语法,直观简单。 比如说,你能用这种语法标识大纲,插入链接等。 如果你不会 markdown,推荐阅读这篇文章:http://www.jianshu.com/p/1e402922ee32/
3.4. 发布和预览你的博文
现在你的博文已经写完了。 查看 source/posts 文件夹,发现里面躺着我们写好的博文 test.md。
现在,调用 hexo,让它读取这些博文文件,生成静态的 HTML 文件:
|
|
好了,静态的 HTML 文件已经生成。 hexo 为了预览方便,提供了一个本地服务器。 启动这个本地的服务器,用浏览器访问本地的一个网址,你就能看到自己的博客啦! 启动本地服务器:
|
|
这会在 http://localhost:4000 开启一个服务器。访问它看看吧! 使用 C-c,关闭服务器。
3.5. 将你的博文发布到 github 上
终于到达最后的一步了! 现在你要把你的博客同步到网站空间上去,这样你的朋友们才能看得到。
不过,在此之前你得先申请 github 的帐号并添加一个 repository。 并且还要在 hexo 里面修改一些配置。
3.5.1. github 配置
去 https://www.github.com 新建一个账户。 用户名是很重要的东西,请仔细填写。 别乱填什么 jfhdhfk 这种,否则将来你的域名就是 http://jfhdhfk.github.io
了。/手动偷笑
之后找到 New Repository 按钮。 之后的页面,假如你的用户名是 jfhdhfk,Repository name 就得填写 jfhdhfk.github.io
, 这得和你的用户名保持一致。
3.5.2. hexo 配置
首先得安装一个插件,有了这个插件 hexo 才能把博客同步到 github 上去。 输入以下命令(Windows 下按照前面说的点击之前建立的 run.bat,之后直接执行那条 npm 命令):
|
|
接下来配置 hexo,告诉它,应该往哪儿同步。 编辑博客目录下的config.yml,找到 deploy:
开头的地方,修改成:
|
|
注意, 不要照抄 !把 jfhdhfk 换成你的用户名。
3.5.3. 开始发布!
现在,终于可以真正的发布了。还记得第一大节所说的步骤吗? 我们先书写了 markdown,之后调用 hexo g
生成静态的 HTML 页面。
最后,我们将静态的 HTML 页面同步到 github 上去:
|
|
在同步的时候会让你输入你的 github 的用户名和密码。 值得一提的是,输入密码的时候不会回显,所以,不要误以为是你的键盘坏了!
最后,访问 https://jfhdhfk.github.io
,看看你最终的效果吧。 哦,对了,记得把 jfhdhfk 换成你自己的用户名。
4. 管理你的博客
4.1. hexo-directory-category插件
这里严重推荐的一个插件是hexo-directory-category
。
前面说过,hexo定义分类是需要在markdown的头部的yml标记中手工定义分类。
我们知道,分类是由层次结构的,由此可见,层次结构的分类天然和目录结构匹配。
你只需要把博文安装目录的方式组织,该插件就会自动按照目录生成分类。
即方便管理博文,也省去了手动填写分类的麻烦。安装:
比如说,你的博文路径是 ./_posts/IT/linux/test.md
,那么最终生成的分类和下面的效果一样:
5. 帮助文档和总结
最后,在我们配置好了 hexo 和 github 之后,重新回顾下发布博文的步骤:
- 首先在你的电脑里写好博文,xxx.md。
- 把这个博文文件放在博客目录下 source/posts 文件夹中。
- 运行
hexo g
,hexo 会根据博文生成静态的 HTML 页面。 - 再运行
hexo d
,hexo 会把静态的 HTML 页面同步到 github 的网站空间里。 - 别人打开你的博客网址
https://你的用户名.github.io
,发现你发布了一篇新博文!
如果遇到问题,或者想知道关于 hexo 的更多细节,最好的文档自然是官方文档了。 hexo 是台湾人写的一个软件,所以它的文档是有中文版的,你不用担心要硬着头皮看英文。 不过默认打开是英文,你得仔细找找切换语言的地方。
官方文档地址:https://hexo.io
这篇文章是我根据自己建立博客的笔记整理出来的,包含了一些基础配置。 后续我还会将关于主题和 org 文件的支持整理成博客发布。 祝愿建博愉快!
6. 更新记录
- <2018-03-29>2018-03-29> 添加 hexo-directory-category 插件的推荐和介绍。