Mac 上搭建 Hexo+GitHub+Coding 个人博客

前言:

  1. Hexo;
  2. NexT 主题;
  3. github;
  4. coding;
  5. 阿里云域名。

环境配置

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

1.Node.js

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

2.Git

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

安装Hexo

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

sudo npm install -g hexo

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

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

初始化

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

hexo init myblog

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

npm install

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

hexo s

此时,浏览器中打开网址http://localhost:4000,能看到如下页面:

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

关联Github

1.创建仓库

登录你的Github帐号,新建仓库,名为用户名.github.io固定写法,如jovelin.github.io即下图中所示:

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

_config.yml
db.json
node_modules
package.json
scaffolds
source
themes

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

vim _config.yml

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

deploy:
type: git
repository: https:
branch: master

你需要将repository后jovelin换成你自己的用户名,地址在GitHub仓库获取。hexo 3.1.1版本后type:值为git。

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

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

hexo generate		或者:hexo g

此时若出现如下报错:
ERROR Local hexo not found in ~/blog
ERROR Try runing: 'npm install hexo --save'

则执行命令:
npm install hexo --save

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

再执行配置命令:

hexo deploy			或者:hexo d

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

npm install hexo-deployer-git --save

再次执行hexo generate和hexo deploy命令。

若你未关联Github,则执行hexo deploy命令时终端会提示你输入Github的用户名和密码,即

Username for 'https://github.com': GitHub用户名
Password for 'https://github.com': GitHub密码

hexo deploy 命令执行成功后,浏览器中打开网址http://jovelin.github.io(将 jovelin 换成你的用户名)能看到和打开 http://localhost:4000 时一样的页面。

为避免每次输入Github用户名和密码的麻烦,可参照第二节方法

2.添加ssh key到Github

1.1.检查SSH keys是否存在Github

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

ls -al ~/.ssh

1.2.生成新的ssh key

执行如下命令生成public/private rsa key pair,注意将[email protected]换成你自己注册Github的邮箱地址。

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

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

1.3.将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绿色按钮即可。

3.发布文章

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

hexo new "firstArticle"

名为firstArticle.md的文件会建在目录/blog/source/_ posts下,firstArticle是文件名,为方便链接不建议掺杂汉字。你当然可以用vim来编辑文章。还可以用Mou、Atom编辑器,支持预览!

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

hexo generate		        //生成静态页面

hexo deploy //将文章部署到Github

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

安装Theme

你可以到Hexo官网主题页去搜寻自己喜欢的theme。这里以hexo-theme-next为例
终端cd到 myblog 目录下执行如下命令:

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

将myblog目录下_config.yml里theme的名称landscape修改为next

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

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

hexo g //生成缓存和静态文件

hexo d //重新部署到服务器

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

注意坑四:hexo g 时会根据NexT.Mist主题重新生成缓存和静态文件,如果要修改头像的话,记得替换/myblog/themes/next/source/images/avatar.gif图片, 其它的文件同理!

绑定个人域名

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

1.Github端

在/myblog/themes/next/source目录下新建文件名为:CNAME文件,注意没有后缀名!直接将自己的域名如:jovelin.cn写入。

2.域名解析

如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。登录万网,在你购买的域名后边点击:解析 –> 添加解析

记录类型:CNAME

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

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

[海外]是从国外访问时的链接,开始使用[默认]国内就行。

此时,点击访问http://jovelin.cn和访问http://jovelin.github.io效果一致。

1、把Github项目转移到Coding.net

操作如下:

1.首先找到github的托管地址https://github.com/***/*****.git
比如:https://github.com/jovelin/jovelin.github.io.git

2.在coding.net上创建个私有仓库,不用同步本地代码比如新仓库地址为https://git.coding.net/xxx/xxxxx.git
比如:https://git.coding.net/jovelin/jovelin.git

3.在控制台cd到桌面路径

git clone --bare https://github.com/***/******.git
//--bare 创建的克隆版本库都不包含工作区,直接就是版本库的内容,这样的版本库称为裸版本库。

然后桌面就会出现一个xxxxx.git 这就是在github上的项目

4.使用镜像推送的方式上传代码到新的服务器

cd xxxx.git
git -push --mirror https://git.coding.net/xxx/xxxxx.git
//https://git.coding.net/xxx/xxxxx.git 是coding.net仓库地址

5.删除本地代码

 ..//返回上一路径
rm -rf xxxx.git //干掉

6.从新服务器clone下来

git clone https://git.coding.net/xxx/xxxxx.git

2、将个人博客同时部署到 GitHub 和 Coding

1、首先到 Coding 上注册并开一个项目,项目名称和用户个性后缀相同(方便二级域名访问博客),拿到项目的 https 地址(上面操作已克隆好GitHub上的项目)

2、打开本地 myblog 目录下的 _config.yml 文件,修改如下

deploy:
type: git
repository:
github: https:
coding: https://git.coding.net/jovelin/jovelin.git
branch: master

3、cd 到本地 myblog/source 目录下执行如下命令新建 Staticfile 文件

touch Staticfile  //名字必须是Staticfile

原因是 coding.net 需要以这个文件来作为静态文件部署的标志,就是说看到这个 Staticfile 就知道按照静态文件来发布。

4、执行发布命令 hexo g 、 hexo d

5、个人域名添加两条 CNAME 解析。将 jovelin.github.io. 解析为 [海外] ,将 jovelin.coding.me. 解析为 [默认]

这样就是为了从国内访问 jovelin.cn 就是访问 Coding 上的博客项目,从国外访问 jovelin.cn 就是访问 GitHub 上的博客项目。

6、到 Coding 上的博客项目主页,点击 Pages服务 输入部署分支 master 立即开启

这样就可以访问自己在 Coding 上的个人博客了 jovelin.coding.me/jovelin 如果像这样你的用户后缀名与博客项目名称相同你还可以省略项目名称直接访问 jovelin.coding.me

7、添加域名绑定,输入个人域名就 OK 了,可能需要耐心等待几分钟,这样在国内访问自己的博客就快得多了。

OK,大功告成!

参考链接