Hexo + Github 打造个人博客

在知乎上看到一个作者的个人博客非常惊艳,尤其是点击的动作很炫酷,因此产生了定制一个私人博客的想法。
千里之行始于足下!Let’s go!

准备工具: Hexo + Github

Hexo

Hexo具有非常好的特点来建立博客,借用官网所言:

超快速度

Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染.

支持Markdown语言

Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。

一键部署

只需一条指令即可部署到 GitHub Pages, Heroku 或其他网站。

丰富的插件

Hexo 拥有强大的插件系统,安装插件可以让 Hexo 支持 Jade, CoffeeScript。

在安装hexo之前,需要先有nodejs和github

nodejs下载: http://nodejs.cn/download/

github下载: https://git-scm.com/downloads

之后利用npm安装hexo,在Git Bash输入(也可以在控制台cmd中输入):

1
$ npm install -g hexo-cli

建立本地博客

打开你想存放博客的文件夹,然后右键打开Git Bash,输入指令:

1
2
3
4
hexo i blog     #在当前目录初始化一个blog项目,并建立一个blog文件夹
cd blog #进入blog的根目录
hexo g #生成网站静态文件到默认设置的public 文件夹
hexo s #将blog部署到本地服务器,用于预览主题。

这样我们就初始化了一个简单的博客,并且将其部署到了本地服务器,默认地址是: http://localhost:4000/ 。在某些情况下(打开了福昕阅读器),端口4000可能会被占用,此时可以选择重新设置端口:

1
hexo -p 5000 s

这样本地博客的地址就变成了:http://localhost:5000/
打开浏览器,输入地址预览博客:

看到这个样子就成功了,这个是hexo默认的主题landscape,在下一篇文章中我们会写到怎么配置自己的博客主题。

建立GitHub Pages

  1. 首先,你需要一个GitHub账号:https://github.com

  2. 创建一个新项目:

3.按照格式输入项目名称:

注意这里的username最好是GitHub的用户名,这样可以保证blog域名的简洁性。因为我一个有一个以github用户名LukeZy创建的项目了,因此截图中用的是hustzy。两个项目名的差别在于:

LukeZy项目的域名:https://lukezy.github.io/

hustzy项目的域名:https://lukezy.github.io/hustzy.github.io/

  1. 点击Settings,创建pagese

    拉到下面GitHub Pages,点击Choose a theme

    任意选择一个主题,反正最后会被覆盖

    跳转之后,拉到最下方保存设置

  2. 再次进入Settings,拉到GitHub Pages

    点击域名,进入GitHub Pages:

将本地博客部署到Github

  1. 进入刚刚建立的项目,复制项目地址:

需要注意的是,GitHub项目有两种连接方式:

  • -HTTPS 每次上传到仓库都需要输入账号密码
  • -SSH: 不用每次上传输入账号密码,但需要配置SSH Key

在这里我们使用-SSH的连接方式,配置SSH Key的方式请参考SSH Key

  1. 修改hexo站点的配置文件_config.yml

    注意这里deploy和type不是对齐的,有一个缩进。

  2. 下载部署插件:

    1
    $ npm install hexo-deployer-git --save
  3. 在站点根目录Git Bash输入:

    1
    $ hexo d

回车之后会弹出一个对话框让你输入passphrase:

输入配置SSH Key设置的passphrase,回车即可成功部署本地博客到GitHub!
在浏览器输入username.github.io就可以看到你的博客啦,如:https://lukezy.github.io/hustzy.github.io/

5.以后的部署就是三步走了:

1
2
3
$ hexo clean  #可选
$ hexo g
$ hexo d

Author: Luke Zy
Link: https://lukezy.github.io/2018/07/26/hello-world/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.