When it’s time to move on, I hope you don’t back down.

Hexo是什么?

(这个我就不多BB了,去官网看看吧,介绍什么的真的不适合我……)

你可能需要有如下准备:

1,一台电脑(Windows或Linux均可,差别不大)

2,拥有自己的域名,没有的话可以在腾讯云或者阿里云上申请。(国内的便宜但是需要备案)

3,一个带有Page服务的仓库(推荐Github,Coding)

4,最后就是耐心(这个过程可能会很枯燥的说~)

正式文章之前

1,障碍扫除。

在其他Hexo 和 Github 搭建博客的文章中你肯定见过这些:Hexo、Github Pages、SSH 配置、域名解析、A 记录、CNAME。这些究竟是什么东西?有时候真的会很懵,搞得自己晕头转向,我曾今在搭建博客的路上走了不少弯路,我只是希望你能少走些弯路。这一部分就是先帮我们理清思路的。

2,模块区分。

这里将 Hexo 和 Github Pages 搭建博客的流程一共分为如下 3 大模块:

Hexo 本地建站:这一模块利用 Hexo 在本地(你的电脑)内生成你的网站,可以通过 http://localhost:4000/ 来查看最后生成的网站;

部署到 Github Pages:这一模块介绍 Github Pages 服务以及利用 Hexo 将上一模块中生成的网站部署到 Github 服务器,从而可以通过 your_name.github.io 访问你新建的博客。其中,your_name 是你 Github 的用户名;

绑定独立域名:这一模块介绍如何绑定自己购买的独立域名,从而可以通过自己购买的网址访问自己的网站,如果没有购买独立域名的打算,这一模块可以不用进行。

1,Hexo 本地建站:

1-1,安装Hexo

根据Hexo官方的介绍:安装 Hexo 的前提是先安装 Node.jsGit

首先去这两个网站下载好这两者的安装包,这里提供淘宝源,国内的会比较快一些。(注意:下载最好为msi引导安装文件,当然你下载其他的也肯定可以,不过要自己手动配置环境变量)

安装完成之后:在终端cmd中输入

1
npm install -g hexo-cli

1-2,部署文件

1,建立文件夹。

首先在自己喜欢的地方新建一个文件夹,用来存放自己的博客数据。这个文件夹的名字随便起。我的是blog

(注意:在更换主题时要备份数据库,数据很重要)

2,初始化文件夹。

1,切换到自己的文件夹

1
cd 到你的文件夹中

2 ,更改镜像源

1
npm config set registry "https://registry.npm.taobao.org"   <!--由于默认的 NPM 镜像实在太慢太慢,我们把源替换成淘宝的镜像,在终端中执行如下命令:-->

3,依次执行下面两条命令,建立我们的新网站:

1
hexo init
1
npm install

3,本地测试:

3-1,在终端中敲入如下命令:
1
hexo generate
3-2,熟练了之后就输入首字符就行。例如 hexo g,hexo s
1
hexo server
3-3,在自己本机的浏览器中输入:http://localhost:4000/ 大功告成。就可以看到自己的landscape的主题页面。
e

总结:

hexo init [folder]:新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站;

hexo generate:生成静态文件;

hexo server:启动服务器。默认情况下,访问网址为: http://localhost:4000/

hexo deploy: 部署网站(后文会用得);

hexo clean: 清除缓存文件 (db.json) 和 public 文件夹下已生成的静态文件。

额外的:更换主题,

1,Hexo-Theme-Butterfly主题安装

1
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/Butterfly

2,hexo 4.2以上的系统需要安装cheerio

1
npm install cheerio@0.22.0 –save

3,安装pub和stylus渲染器

1
npm install hexo-renderer-pug hexo-renderer-stylus --save

Tips:如果其中出现了error等错误,可能是由于镜像源没有更新导致。故本文具有时效性。

2,部署到 Github Pages

这一步的操作由之前介绍到的git来完成。按住鼠标右键,选择Git Bash Here ,如图所示:x

根据官方文档将本节分为3步——走战略!

2-1,Creating a repository

参考github的官方文档,Create a new repository on GitHub 已经图文并茂将如何建立一个 repository 交待得非常清楚明白了,唯一要注意的是,第二步里的 Repository name 一定要是 your_name.github.ioyour_name 是你的 Github 用户名。

2-2,Setting up Git

根据 Github 的官方文档 Setting up Git,这一操作的目的是 Tell Git your name so your commits will be properly labeled 和 Tell Git the email address that will be associated with your Git commits,也就是告诉版本控制软件 Git 接下来这台电脑上提交的文件是 E-mail 地址是什么的谁谁谁提交的。在 Git Bash 中执行如下代码即可:

1
2
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"

其中,YOUR NAME 是自己取的名字,YOUR EMAIL ADDRESS 是自己的邮箱。由于自己的博客网站就自己一个人提交,所以就都设置成跟 Github 用户名和邮箱相同了。但其实是可以不同的,因为对于很多项目,并不只有一个开发者,Github 允许多人向同一个 Repo 提交,这里提供用户名和邮箱,只是为了搞清楚哪些代码是谁谁谁提交的。

2-3 Authenticating with GitHub from Git

为了实现这个在浏览器中输入域名就能访问文件,首先我们先要让本地的电脑和 Github 服务器建立起某种联系,也就是让 Github 服务器信任由我这台电脑提交的东西,接受,并存放到 your_name.github.io 这个 Repo 下面,与 Github 服务器建立信任的这个环节就是身份认证(Authenticating )。Github 的官方文档 Categories / SSH 可以参考。

在git bash中执行:(切记不要再cmd中执行,因为这压根就不是cmd能够识别的命令)

1,Git Bash 下执行如下命令,生成 SSH key

1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

其中,your_email@example.com 是你的 Github 注册邮箱。其中,your_email@example.com 是你的 Github 注册邮箱。然后,Git Bash 中会出现

其中,your_email@example.com 是你的 Github 注册邮箱。然后,Git Bash 中会出现

1
2
Enter a file in which to save the key
(/Users/you/.ssh/id_rsa): [Press enter]

这里 id_rsa 是生成的 key 文件的文件名,默认都是这个;如果不是,在后面用到 id_rsa 的地方请替换成出现的名字。这条信息是让你选择 SSH key 存放的地点,按回车选择默认的即可。回车后,还会出现

1
2
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

让你设置使用 SSH 密钥时的密码,由于我们都是在自己个人的电脑上操作,所以仍然回车,不设置密码即可。

2,将 SSH key 添加到 ssh-agent

在 Git Bash 下执行如下命令,开启 ssh-agent

1
eval "$(ssh-agent -s)"

然后我们要将这个 SSH key 添加到 ssh-agent 里去,运行如下命令,其中 id_rsa 是你的 key 文件的文件名:

1
ssh-add ~/.ssh/id_rsa

3,将 SSH key 添加到 Github 账户

手动添加,登录 Github 帐号,依次点击自己的头像,SettingsSSH and GPG keysNew SSH key 或者 Add SSH key, 在 Title 这里输入 Key 的label,比如 your_name - PC,然后在 Key 里面把 SSH Key 粘贴进去,点击 Add SSH key 大功告成。

4,测试 SSH 连接

1
ssh -T git@github.com

你可能会看到类似于

1
2
3
The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

输入yes

1
2
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

至此为止,我们已经建立起了跟 Github 服务器的连接。

2-4,Hexo 部署

Step 1: 在终端中运行如下命令,安装 hexo-deployer-git 插件:

1
npm install hexo-deployer-git --save

Step 2:_config.yml 中修改参数,如下所示:

1
2
3
4
deploy:
type: git
repo: https://github.com/your_name/your_name.github.io.git
branch: master

至此,在终端执行 hexo deploy 命令,就可以把我们的网站部署到 Github 服务器上。在第一次部署的时候,Github 还会跳出来一个小窗口,让你输入 Github 帐号和密码,输入即可。

3,绑定独立域名:

在腾讯云的我的域名下方找到解析,就是将github的服务器的ip添加的自己域名的解析行列中。

q

github的ip服务器地址有两个,如下图所示:

w

这就成功了!

source 文件夹下添加一个 CNAME 文件,里面就一行内容,写上自己的域名,比如 your.site。 在终端中运行

1
hexo generate

Hexo 在生成 public 文件夹内容的时候,会自动把 CNAME 文件复制过去,这样,public 文件夹下就也有 CNAME 文件了。再运行

1
hexo deploy

将其部署到 Github,让 Github 知道 your_name.github.io 对应哪个域名。

大功告成!!