前言
我们利用 Hexo 框架在本地搭建了一个精美的博客,可是只能本地访问,要想发布到互联网上,还需要将它部署在网站上。博客的功能只要能阅读文章就够了,因此可以考虑将其部署在提供静态网页托管服务的网站上,许多平台都提供了静态网页托管服务,其中最方便的当然是 GitHub Pages,只需要注册一个账号就可以使用。GitHub Pages的服务器毕竟在国外,如果觉得访问太慢,也可以选择国内功能相似的 Gitee Pages。本篇文章介绍怎样利用 GitHub 提供的免费静态网页托管服务 GitHub Pages 建站。后面我应该还是会选择部署在服务
一、GitHub Pages
GitHub 是世界上最流行的软件源代码托管服务平台,为什么要提供网页托管服务呢?
这是因为一个项目的主页如果只有源码,对新接触的人很不友好,不知从何处下手。虽然已经有了 readme.md 文件,但毕竟不如一个直观的网页来的直接。于是 GitHub 就设计了 Pages 功能,允许用户设计一个图文并茂的网页作为项目首页。
虽然 GitHub Pages 的初衷是提供自定义的项目首页,但是它的玩法不止这一个。因此许多博主都用这个功能来搭建自己的博客,因为它实在是太太方便了。
去GitHub Pages 官网 pages.github ,拉到最后,可以看到官方也推荐使用 GitHub Pages 搭建博客,并且提供了示例教程。
二、GitHub Pages 准备
前提是你拥有一个gitHub账号
由于每个 GitHub 账户只能建立一个 GitHub Pages 页面,所以 Repository name 必须填<你的用户名>.github.io
,否则就会建立一个普通仓库,GitHub Pages 功能不会生效。比如用户名是jacksparrow
,Repository name 这里就填jacksparrow.github.io
,不知道用户名是哪个,可以点击页面右上角头像,看到第一行“Signed in as xxx
”字样, xxx
即为这里的用户名。
Description 填写仓库描述,比如 jacksparrow's blog
等,可不填。
注意勾选 Public
,否则 GitHub Pages 功能不会生效。建议勾选 Add a README file
,会自动生成一个 readme.md
文件。
最后点击Create repository
创建仓库。
我们可以通过输入网址https://<你的用户名>.github.io
,来访问到这个仓库里面的内容。
三、GitHub Pages 发布
我们把自己的博客生成静态 html 网页,提交到这个仓库目录下,就可以在我们的网址看到博客页面了,这就是 Hexo 框架部署博客的原理。当然,对于 Hexo 来说,提交部署只需要几条命令。
四、Hexo+Git+Github博客在多台终端同步管理
此方法利用Git管理Hexo产生的文件,实现在不同的电脑上同步(Github)所需的文件,也可以正常的在不同的Hexo环境里进行相应操作,只要在做完之后同步到Github的仓库里即可。下面具体来说说:
网上基本上都是这个思路:
Github 分支管理Hexo环境目录
主要是通过维护两条git分支来实现,第一个分支是 Gihub 上默认的 master 分支,用于存放发布的博文的静态页面;另外再新建一个分支,比如命名为 Hexo ,通过此分支存放主题、原始的博客文件等等,这些文件才是不同电脑需要同步的文件;当每次修改主题或者新增博文后,先将修改的主题文件(在themes文件夹下)或者新增博客(在source文件夹下),同步到远程的 Hexo 分支,然后在通过 hexo g -d命令发布博文,也就是将新增的博文的静态页面同步到 master 分支。这样通过不同的分支管理不同的文件,实现了多台电脑同步更新博文的功能。!
1 | ├── .gitignore |
其中 .deploy_git、public 两个文件夹下存放的是博客文章的静态页面,通过对比 Github 上博客仓库的master分支可以看到master分支下面的文件结构和 .deploy_git 文件夹下的文件是一致的,这个应该可以判断通过 hexo g -d 发布到 Github 的内容就是 .deploy_git 文件夹下面的文件。其余的文件夹和文件即是Hexo的主题文件、原始的博客文件等,刚在上文提到的Hexo分支,存的即时这些文件
实现方式
创建分支
在PC b,
初始化分支
1 | git clone 仓库地址(自己的仓库地址) |
将仓库文件拉取到本地,生成的文件名为 username.github.io;进入username.github.io文件夹,除了 .git 文件夹以外,其他文件全部删除;同时添加.gitnore
1 | .DS_Store |
提交本次修改
1 | git add . |
同步分支(PC2上面操作)
git pull拉取远程hexo分支的代码
但是暂时不要提交,先安装hexo环境去
1 | # 安装 hexo 框架 |
然后再执行
1 | hexo clean |
这时你文件夹下多出了db.json,node_modules,public,还会多一个.deploy_git(hexo打包后上传到master主分支的静态博客文件夹)因为我用了yarn,所以会有yarn.lock,这个无关紧要,这时git提交上去就行,最后的文件目录如这样
文章内更新点东西,加一句话什么的,再去执行hexo的命令
过会再去打开https://你的用户名.github.io,更新了就代表没问题了