零投资并不是零投入,你需要有一颗爱鼓捣的心————By Jeason

注意: 现在我的博客已经迁移到了 hugo, 此文仅限参考

这是一篇详细文章来讲述用Mac搭建Hexo博客于Github上的完整历程, 也是踩了无数的坑搭起来的,这篇文章很大部分内容由“与佳期”完成,征得原文作者同意后发布。

如果你曾经或一直是一个 “域名+服务器+WordPress” 的使用者,那么。我建议你不仿看完全文。
如果你也想像我一样零投资搭建一个好看的博客,那你没啥说的,看完它。

环境配置

Hexo官网上本就有对Hexo安装及使用的详细介绍,墙裂推荐。这里来讲述自己安装的亲身步骤,或有区别。

Node.js

用来生成静态页面。移步Node.js官网,下载v5.5.0 Stable 一路安装即可。

Git

用来将本地Hexo内容提交到Github上。Xcode自带Git,这里不再赘述。如果没有Xcode可以参考Hexo官网上的安装方法。

安装 Hexo

Node.jsGit 都安装好后就可以正式安装 Hexo 了,终端执行如下命令:

  1. $ sudo npm install -g hexo

输入管理员密码(Mac登录密码)即开始安装 (sudo:linux系统管理指令 -g:全局安装)

注意坑一:Hexo官网上的安装命令是$ npm install -g hexo-cli,安装时不要忘记前面加上sudo,否则会因为权限问题报错。

初始化

终端cd到一个你选定的目录,执行hexo init命令:

  1. $ hexo init blog

blog是你建立的文件夹名称。cd到blog文件夹下,执行如下命令,安装npm:

  1. $ npm install

执行如下命令,开启hexo服务器:

  1. $ hexo s

此时,浏览器中打开网址http://localhost:4000,能看到如下页面:
macOS 上搭建基于 GitHub Page 和 Hexo 的博客 - 图1

本地设置好后,接下来开始关联 Github

关联 Github

添加ssh key到Github

检查SSH keys是否存在Github

执行如下命令,检查SSH keys是否存在。如果有文件id_rsa.pubid_dsa.pub,则直接进入步骤1.3将SSH key添加到Github中,否则进入下一步生成SSH key。

  1. $ ls -al ~/.ssh

生成新的ssh key

执行如下命令生成public/private rsa key pair,注意将your_email@example.com换成你自己注册Github的邮箱地址。

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

默认会在相应路径下(~/.ssh/id_rsa.pub)生成id_rsaid_rsa.pub两个文件。

将ssh key添加到Github中

Find前往文件夹~/.ssh/id_rsa.pub打开id_rsa.pub文件,里面的信息即为SSH key,将这些信息复制到Github的Add SSH key页面即可。

进入 Github —> Settings —> SSH keys —> add SSH key:

Title 里任意添一个标题,将复制的内容粘贴到 Key 里,点击下方Add key绿色按钮即可。

创建仓库

登录你的 Github 帐号,新建仓库,名为用户名.github.io固定写法,如jeasonstudio.github.io,如下图所示:
macOS 上搭建基于 GitHub Page 和 Hexo 的博客 - 图2

本地的blog文件夹下内容为:

  1. _config.yml
  2. db.json
  3. node_modules
  4. package.json
  5. scaffolds
  6. source
  7. themes

终端cd到blog文件夹下,vim打开_config.yml,命令如下:

  1. $ vim _config.yml

打开后往下滑到最后,修改成下边的样子:

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

你需要将repositoryjeasonstudio换成你自己的用户名,地址在上图2位置获取。hexo 3.1.1版本后type:值为git

注意坑二:在配置所有的_config.yml文件时(包括theme中的),在所有的冒号:后边都要加一个空格,否则执行hexo命令会报错,切记 切记

blog文件夹目录下执行生成静态页面命令:

  1. $ hexo generate 或者:hexo g

此时若出现如下报错:

  1. ERROR Local hexo not found in ~/blog
  2. ERROR Try runing: 'npm install hexo --save'

则执行命令:

  1. npm install hexo --save

若无报错,自行忽略此步骤。

再执行配置命令:

  1. $ hexo deploy 或者:hexo d

注意坑三:若执行命令hexo deploy仍然报错:无法连接git,则执行如下命令来安装hexo-deployer-git

  1. $ npm install hexo-developer-git --save

再次执行hexo generatehexo deploy命令

此时,浏览器中打开网址http://jeasonstudio.github.io(将jeasonstudio换成你的用户名)能看到和打开http://localhost:4000时一样的页面。

发布文章

终端cd到blog文件夹下,执行如下命令新建文章:

  1. $ hexo new "postName"

名为postName.md的文件会建在目录/blog/source/_posts下。你当然可以用vim来编辑文章。

在此说明一下,我一直都在用微软的 VSCode编辑器来编写MarkDown,如果你有什么更好的建议,我会非常感激的。
另外MarkDown格式的语法教程,前面的博文里有,但我知道你懒,传送门

文章编辑完成后,终端cd到blog文件夹下,执行如下命令来发布:

  1. $ hexo generate //生成静态页面
  2. $ hexo deploy //将文章部署到Github</pre>

至此,Mac上搭建基于Github的Hexo博客就完成了。下面的内容是介绍安装theme,添加评论功能和绑定个人域名,如果有兴趣且还有耐心的话,请继续吧。

安装theme

你可以到Hexo官网主题页去搜寻自己喜欢的theme。这里以hexo-theme-next为例

终端cd到 blog 目录下执行如下命令:

  1. $ git clone https://github.com/iissnan/hexo-theme-next themes/next

blog目录下_config.ymltheme的名称landscape修改为next

终端cd到blog目录下执行如下命令(每次部署文章的步骤):

  1. $ hexo clean //清除缓存文件 (db.json) 和已生成的静态文件 (public)
  2. $ hexo g //生成缓存和静态文件
  3. $ hexo d //重新部署到服务器

至于更改theme内容,比如名称,描述,头像等去修改blog/_config.yml文件和blog/themes/next/_config.yml文件中对应的属性名称即可, 不要忘记冒号:后加空格。 NexT 使用文档里有极详细的介绍。

绑定个人域名

现在使用的域名是Github提供的二级域名,也可以绑定为自己的个性域名。购买域名,可以到GoDaddy官网,网友亲切称呼为:狗爹,也可以到阿里万网购买。

Github端

/blog/themes/landscape/source目录下新建文件名为:CNAME文件,注意没有后缀名!直接将自己的域名如:jeasonstudio.com写入。

终端cd到blog目录下执行如下命令重新部署:

  1. $ hexo clean
  2. $ hexo g
  3. $ hexo d

注意坑四:网上许多都是说在Github上直接新建CNAME文件,如果这样的话,在你下一次执行hexo d部署命令后CNAME文件就消失了,因为本地没有此文件嘛。

域名解析

如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。

登录你注册域名的网站,比如万网,在你购买的域名后边点击:解析 —> 添加解析

记录类型:CNAME

主机记录:将域名解析为example.com(不带www),填写@或者不填写

记录值:jeasonstudio.github.io. (不要忘记最后的.jeasonstudio改为你自己的用户名),点击保存即可。

此时,大功告成!

后记

参考Hexo博客:Jeasonstudio,希望对大家有所帮助,欢迎吐槽~

参考链接