使用hexo+github搭建静态blog

写在前面

过去几年,我曾经用多种方式写作。自从大学毕业,基本不再使用人人网(过去的时候叫校内网),后来新浪云发布,在网上找到了一个基于python的博客系统,随便改了改就发到新浪云上了,还给专门搞了一个一级域名(www.zyx1986.pw,现在已经不能用了)。

再后来,微信公众号开始流行,我也赶了个时髦开了公众号。微信公众号对文本、图片支持的还可以,但对于代码、公式的支持几乎没有,所以在微信公众号的文章大部分是随笔或者鸡汤,没什么营养。

最近开始整理之前的学习笔记,刚开始在简书上发文,刚写了两篇还可以,毕竟简书支持Markdown格式的文章,对代码高亮的支持也不错,但我想写的文章如果有数学公式就尴尬了,很繁琐而且效果不好,所以就想自己搭建一个blog。

搜索了下,hexo+github成了我的选择。

Hexo是什么

Hexo是基于node.js的轻量化的博客框架,安装和使用都非常简单,很快就可以上手。并且Hexo支持自定义主题和Markdown格式的文件,极速渲染页面,非常适合经常写文档的朋友。

Hexo有很多插件支持更多更丰富的功能,因此能够支持丰富的文档特性,比如代码高亮、公式等,因此也很适合撰写科技和技术文章。

为什么是Hexo

Hexo最大的优点就是遵循了KISS[^1]原则,其具有以下特点

  1. 基于node.js安装简单
  2. 支持Markdown格式为源文件
  3. 支持MathJax渲染LaTeX的公式(大爱这一点)
  4. 支持代码高亮
  5. 配置简单可以定制主题
  6. 生成的是静态页面可以利用 GitHub的Pages功能

以上就足够了。

声明及准备

本文的安装是基于MacOS

安装准备:

  1. github账号
  2. homebrew
  3. node.js
  4. npm
  5. hexo

由于node.js自带npm,所以只需要安装node.js即可。

搭建流程

获取github

因为是基于GitHub搭建静态blog站点,所以需要先获取GitHub的账号和建立相应的repository。如果你没有GitHub的账号,点击这里注册。

注册完获取到账号后,你可以创建一个repository:
创建新的repository

创建的repo的名称为:yourid.github.io

安装node.js

因为Hexo是基于node.js,所以要先安装node.js。在这里提供两种方式安装:

通过Homebrew安装

强烈建议Mac用户安装Homebrew,通过Homebrew来管理Mac的软件,Homebrew在安装和删除软件上特别方便。

  1. 首先安装Homebrew,在终端输入:
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. 安装完Homebrew,可以安装node.js:
    brew install node.js
  3. 安装完成后查看:
    node -v
    npm -v

以上就完成了node.js和npm的安装。

离线方式安装

除Homebrew安装外,可以离线下载安装包安装,点击这里在官网下载pkg安装包后,一路点击安装。

休息下听首歌

听听我录得歌,不自动播放了,各位请欣赏,哈哈!


        

安装hexo

安装hexo的命令很简单,在终端输入:

npm install -g hexo-cli

安装完成后可以输入命令查看:

hexo -v

建立本地站点

安装完hexo后,需要在本地建立站点并初始化站点:

mkdir blog
cd blog
hexo init

这样一个本地站点就完全建立了,你也可以用一个命令完成以上操作:

hexo init blog

安装完成后的目录结构为:

├── _config.yml
├── node_modules
├── package.json
├── scaffolds
├── source
└── themes

4 directories, 2 files

基本使用

在blog目录内依次运行以下命令:

hexo clean
hexo g
hexo s

如果正常则会显示:

INFO  Start processing
INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

按住CMD键同时点击http://localhost:4000/就可以在浏览器访问本地站点啦.

完结

[^1]: Keep it simple, stupid!