在没有自己个人服务器的情况下,我们可以利用 github 的托管页面服务来搭建我们的 Hexo 博客。

目录速览

前言

记录自己一步步在 Github 上搭建 Hexo Blog 的过程

搭建步骤

步骤一:安装Node

Node.js中文网

步骤二:安装Git

Git网站

步骤三:安装hexo-cli

1
$ npm install -g hexo-cli

步骤四:初始化本地Hexo blog工程

1
2
3
4
5
# myHexo为保存你 Hexo blog 工程的文件夹,名字随意,符合规范就行
$ hexo init myHexo
$ cd myHexo
$ npm install
$ hexo s

即可完成hexo blog的初始化和內建服务器进行调试,凡是进行修改之后,只要在浏览器上进行刷新就好。

步骤五:选择和安装Hexo blog的主题包

可以上 Hexo 的官网 http://hexo.io 进行主题包的浏览和选择。强烈推荐 NexT 主题,够清爽,而且该主题的官网教程做得超好!
NexT 主题官网地址:http://theme-next.iissnan.com/,按照上面的教程安装即可。

步骤六:搭建到自己的Github上

将自己的 Hexo blog 托管到 Github 上,并使用其下的 pages 服务,便可以使用 Github 的域名加你自己的 Github 名对 Hexo blog 进行访问,很好!

  1. 注册一个属于自己的 Github 账号,具体操作百度一堆;
  2. 新建一个仓库,直接新建,不需要选择 README.md.gitignore 这两个文件,这两个我们后面可以自己写的。要注意的就是仓库名的格式应为:yourgithubname.github.io,例如我的 github 名字为ironmaxtory,那么我要新建的仓库名就应该为:ironmaxtory.github.io,以后把 hexo blog 的代码文件上传之后,访问该博客的地址就为该仓库名,直接在地址栏上输入 yourgithubname.github.io 即可;
  3. 建立本地 PC 与 github 的 SSH 连接,SSH 为不同计算机之间的一种安全连接协议,大家百度一下即可,傻瓜式的操作;
  4. 修改 Hexo blog 的 站点配置文件,即根目录下的 _config.yml 文件,配置为如下:

    1
    2
    3
    4
    deploy:
    type: git
    repo: <新仓库的地址>
    branch: master
  5. 对目录下的文件进行修改之后,可以在 git-bash 命令行终端中输入如下命令以便进行调试:

    1
    2
    $ hexo clean
    $ hexo server
  6. 当觉得可以发布博客时,只需要输入如下命令就可以发布到 github 上新建的那个托管仓库了,然后在地址栏输入 yourgithubname.github.io 即可访问。

    1
    2
    3
    $ hexo clean
    $ hexo generate
    $ hexo deploy

步骤七:将hexo blog的站点代码上传到github上

有时候,你并不是只在一台电脑上进行博客的编写吧?所以,我们需要将原来那些 hexo blog 的代码上传到 github 上,注意了,并不是刚才那个托管的仓库,在这里还要新建一个用来保存代码的仓库,随便命名,反正我就命名为 myHexo。然后利用 Git 的代码就可进行上传了,接下来可以再任意一台电脑上进行 pull 或 clone 下来进行编写再上传。

步骤八:同步主题NexT文件夹

用 Git Subtree 在多个 Git 项目间双向同步子项目,附简明使用手册

网站上很少有说到怎么上传自定义主题文件夹的,因为自定义主题,通常都是git clone下来别人的代码,往往就是一个仓库,比如说整个 Hexo 仓库是 A,那么主题仓库就是 B,git push A 时,不会 push B。其实,B 在这应该要被看作为一个子项目来维护。既可以单独提取出来,又可以融合在别的项目中。

  1. 进入到 NexT 的官方 Github,对该主题项目点击 fork,然后自己的 Github 仓库也就有一份了,比如地址为:`git@github.com:ironmaxtory/hexo-theme-next.git`:
    图片
  2. 添加 NexT 主题包作为子项目的 remote 仓库,或称「子仓库」:

    1
    git remote add next git@github.com:ironmaxtory/hexo-theme-next.git
  3. 将 next 主题文件夹添加到 myHexo 项目里:

    1
    git subtree add --prefix=themes/next next master

    next 只是一个远程仓库名,是 `git@github.com:ironmaxtory/hexo-theme-next.git` 的别名,代表着 NexT 该主题包

  4. 对 NexT 主题包进行改动后,进行上传更新 Github 上的子仓库:

    1
    git subtree push --prefix=themes/next next master

    稳妥一点的办法:

    1
    git subtree push --prefix=themes/next next hotfix/next_xxx

    这会在远程仓库生成一个 hotfix/next_xxx 的分支,包含了过去对 themes/next 所有的更改记录;

  5. 多人/多机协作从Github更新主题子仓库到本地

    1
    git subtree pull --prefix=themes/next next master
  6. 注意:
    如果修改了主题包的文件,平时依旧 git addgit commit 没有影响,但是一旦要更新到远程或拉取到本地,必须依照步骤 4、5 进行操作;

步骤九:绑定自定义域名

首先要到阿里云官网下的万网产品下去购买一个自定义的域名,个人建议随便买一个最便宜的域名就可以了,本人就买了一个首年1元的 ironmax.xyz 域名,直接后果就是部分 DNS 商并不支持,所以解析超级无敌慢,除非浏览器上有缓存,用户体验可是很差的,所以拿来做学习和测试是可以的,要是真的资金充足,那就买一个 .com 的域名吧,解析快。接下来就是进行设置,如下:
图片
图片

然后在 博客根目录/source/ 下,创建文件 CNAME,不用后缀,内容直接只写你刚才所申请的域名,我就直接写ironmax.xyz,完事!然后上传到远程仓库,完成!

注意

在上面的 步骤七 中,并不是那么顺利,你会发现在一台新的 PC 上尝试用 SSH 方式进行 hexo blog 源代码的下载时,会提示失败,因为没有权限。为啥?因为新电脑还没有跟你的新 PC 建立 SSH 连接,防止别人恶意将代码上传!所以如果是本人操作的话,你大可以重新为新电脑与 github 上添加一个新的 SSH 连接,github 上是可以拥有 N 个 SSH 连接的。