使用Hexo搭建Github Page
Github Pages是Github免费提供的静态网站服务,我们可以将自己的静态网站推送到Github仓库,让它提供网站服务,**免去自己申请主机服务器的困(费)扰(用)**。不过默认对外提供的域名为
<username>.github.io
,如果希望使用自己的域名如baidu.com
,则需要对该域名进行CNAME
解析到<username>.github.io
.
一.本地搭建Hexo环境
1. 准备好github仓库
在github上可以用户名创建一个repository: <username>.github.io
,该仓库即为一个静态页面github page,可以在github上该仓库的设置界面选择主题来设置自己喜欢的theme
,也可以通过Hexo
来更新整个github page。为了可以在多台电脑上均可管理hexo源码与发布github page博客博文,我们需要使用两个分支:master
与 hexo
。
- hexo分支为源代码文件。
- master分支为发布的github page静态页面所需的所有文件,设置为默认分支。
1 | $cd |
配置环境变量使nodejs与npm生效。以ubuntu16.04环境为例。
1 | vi .profile |
2. 在本地搭建hexo环境
在环境变量生效以后,普通账号拥有nodejs与npm程序,使用普通账号基于全局安装hexo
1 | $ npm install -g hexo-cli |
配置ssh密钥,加入到github中,可以参考官方指导Generating a new SSH key and adding it to the ssh-agent
3. 在本地搭建master分支
- 在github上创建仓库:
meixuhong.github.io
,默认分支为master
. - 添加README.md到master分支
- 创建hexo分支
- 在本地clone hexo分支
1 | $ git clone -b hexo git@github.com:meixuhong/meixuhong.github.io.git |
在空仓库中初始化hexo工程,生成会生成hexo的工程文件,包括package.json等如下文件。
1 | drwxrwxr-x 6 ubuntu ubuntu 4096 Apr 1 11:10 ./ |
其中node_modules文件是每个nodejs工程所需要安装的依赖包,不是全局包,每个工程都应该有一个这样目录,但是上传到github时最好把它删除掉,新用户clone该仓库后,可以在目录下执行npm install
命令来生成新的node_modules目录。
_config.yml是网站的配置文件,包括主题选择等等。需要修改该文件指定托管部署地址。
1 | $ vi _config.yml |
设置主题,可以选择hexo-theme-even主题,参考github主页提示执行如下步骤安装。
1 | $ cd meixuhong.github.io.git |
下载好了主题以后,修改配置文件中的 theme
字段为 even
:
1 | Extensions |
更多主题设置,查看 Document, 可以删除themes主题下的.git
目录与.gitignore
文件。
如果使用的是snippet主题,因为 hexo-theme-snippet 使用了 ejs
模版引擎 、 Less
CSS预编译语言以及在官方插件的基础上 进行功能的开发,以下为必装插件:
1 | npm install hexo-renderer-ejs hexo-renderer-less hexo-deployer-git -S |
在通过git上传到github之前,需要安装hexo-deployer-git
,可以全局安装,也可以本地工程安装。下面采取本地安装。
1 | npm install --save hexo-deployer-git |
还有一些可选的hexo插件,可以安装到本地工程目录中去:
1 | npm install hexo-server --save |
后续继续执行hexo命令来生成静态网站。
1 | $ hexo clean |
注:
--save
参数会将库安装到本目录下的node_modules下面。- nodejs工程将需要安装的包写在
package.json
文件中。- 使用
npm audit -fix
可以查出工程还需要哪些包- 可以到https://mirrors.huaweicloud.com/下面查看nodejs加速镜像
4. 在本地搭建hexo分支
上面已经在github上创建了hexo分支,使用git命令提交hexo程序到github的hexo分支。
1 | $ git add * |
二.在其他电脑搭建Hexo环境
该电脑可以做hexo源码重新开发也可以只用作发布blog,可以分别通过控制hexo与master分支来进行同步即可。
搭建nodejs与npm环境,与上述步骤相同
搭建hexo全局环境,与上述步骤相同
生成ssh-key密钥,添加到github中,与上述步骤相同
复制hexo分支代码到本机
1 | $ git clone -b hexo git@github.com:meixuhong/meixuhong.github.io.git |
如果使用的是snippet主题,因为 hexo-theme-snippet 使用了 ejs
模版引擎 、 Less
CSS预编译语言以及在官方插件的基础上 进行功能的开发,以下为必装插件:
1 | npm install hexo-renderer-ejs hexo-renderer-less hexo-deployer-git -S |
在通过git上传到github之前,需要安装hexo-deployer-git
,可以全局安装,也可以本地工程安装。下面采取本地安装。
1 | npm install --save hexo-deployer-git |
还有一些可选的hexo插件,可以安装到本地工程目录中去:
1 | npm install hexo-server --save |
注:
--save
参数会将库安装到本目录下的node_modules下面。- nodejs工程将需要安装的包写在
package.json
文件中。- 使用
npm audit -fix
可以查出工程还需要哪些包- 可以到https://mirrors.huaweicloud.com/下面查看nodejs加速镜像
- 如果需要对Hexo源码进行操作,发布到hexo分支
1 | $ git add * |
- 如果需要更新blog,则使用hexo操作发布到master
1 | $ hexo clean |
如果有更换电脑,直接在新电脑上将hexo分支clone下来即可, master分支可以通过hexo命令生成 。另外,如果需要定制主题的话,一般是在
header.ejs
与style.css
下面定制头与css样式。
文章首发公众号-梅旭红,欢迎关注,不定期更新。
全文完。
