最近重拾了Github page,之前有了解到结合Github Action这个利器,现在发文章更流畅了,正好这段时间想着重新写写博客,对自己技术做一些反思和沉淀,所以就重新折腾了一次,在这里做一个生成Github Page的总结,可以避免各位踩坑
<!–swig8–>
毕竟总是手写html不方便,我们写博客,程序员当然最喜欢用Markdown来写,而Hexo就是其中最好的选择之一,我们首先全局安装hexo命令
1
npm install hexo-cli -g
然后clone 刚才你建好的github.io的项目,输入命令
git branch
来建一个新的分支并checkout
这一步记得做,之后用Github Action会涉及到
1
2git branch xxx
git checkout xxx在你新建好的
xxx
目录下,开始初始化hexo博客1
hexo init
初始完成后,直接start命令就可以本地预览你的博客了
1
hexo s
写作的话都是在
source
里面的_posts
去编辑对应的文章markdown,你可以用方便的hexo命令来生成文章1
hexo new xxx
xxx就是生成的markdown的文件名,hexo的写作还有一些文档和注意事项,可以在文档Front-matter中查看,如果你希望用不同的模板来新建文章,可以在
scaffolds
中新建一个markdown模板,然后新建文章的时候,可以直接写(比如aaa就是你新建的aaa.md的模板)
1
hexo new aaa xxx
预览完毕后,可以直接用generate命令来生成博客,也就是hexo会将你的markdown,生成githubpage所需要的html文件,生成目录是
public
1
hexo g
那么到这一步,其实你就可以手动将public中的文件,复制到你的master分支,提交后访问你的Github Page地址,就可以看到Hexo生成好的博客了
复制到你GithubPage设置的分支去,不一定是master
Github Action
但这样每次都要复制也太麻烦了,有没有什么方法可以只要我们提交当前分支,Github就自动帮我们生成博客呢,答案当然是肯定的,下面有请神奇的Github Action
大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。 - 阮一峰
所以我们现在的目标就是,只要提交我们的hexo代码后,也就是提交到我们的博客分支后,action自动帮我们运行hexo c && hexo g
生成博客文件,然后把生成的产物推送到master分支,那以后我们只要关注我们的markdown代码即可,其他的都是action帮我们处理好,那么现在开始action教程
新建一个Access Token
进入个人设置页新建一个Access Token
直接全选所有选项后,点击Generate token
生成后请自行保存好生成的token,如果关掉后就不再显示了
设置个人Secrets
回到github.io项目的Settings中,新建一个token,名字是ACCESS_TOKEN,值是刚才你保存的access token,如图
新建action的yml文件
回到刚才博客源码的那个分支,新建目录.github/workflows
,然后新建一个main.yml文件,到时候Action就会读取这个文件来做对应的操作,将以下代码复制进去
1 | name: Blog CI/CD |
万事俱备,只欠push
操作万上面所有东西后,你就可以直接push你这个博客源码分支了,然后你可以去项目的action那里看到对应的进程详情,成功与否都能知道是什么问题
当成功后,master就能看到新生成的blog文件,至此,整个博客的发布流程就完全搞定了,Enjoy it!
hexo server
之后发现没有热更新,不太习惯,可以自行安装hexo-browsersync
- Hexo有丰富的免费主题库,我自己用的是Fluid,挺舒服的,大家可以试试
支持我,让我有更多动力写出更好的文章