用Hexo和GitHubPages建站写博客
前言
之前一直在简书上写一些文章进行分享,简书刚出的时候氛围挺好,界面简洁,而且我看设置里还支持导出文章,真是良心,不坑人,于是就用了。没想到,这过了若干年,简书的热门推荐已经全都是:《离婚后,妈宝男前夫后悔了》《前世渣男把我迷晕还叫我别怕,重生后我杀疯了》等等。这都些什么鬼啊。毕竟曾经也是很棒的平台,我就不多吐槽了。总之还是准备迁移一下我的文章,放到一个更加持久的地方。也考虑过用掘金,现在的技术氛围依然尚可,不过它好像不支持文章导出。只进不出的话,我怕了。最终GithubPages成为了我的首选。
当时GithubPages刚起来的时候(2016年?),Hexo框架就流行起来了,我记得当时还搞了一波尝试了一下,后来觉得发文稍有些麻烦就搁置了。不过现在来看,不管麻烦不麻烦的,文章能存下来就是好事咯。(况且Hexo也有很多优秀插件,可以提供更方便的管理文章的方式,不过目前还没有实际操作过,只是看了看,以后应用的好的话可以再总结总结分享一下。)
关于Hexo
Hexo 是一个快速、简洁且高效的博客框架。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
官方文档:https://hexo.io/zh-cn/docs/
关于GithubPages
可以通过在Github个人账号中创建仓库,并在仓库中放置Web页面相关文件,实现Web站点的展示。
两者结合使用
由于Hexo官方文档中已经有了具体的介绍,本文不再赘述。只是记录一下部署过程中遇到的坑。
记录1:GithubPages默认认为仓库是Jekyll
Jekyll也是一套生成html页面的工具,GithubPages官方首推,不过它是基于Ruby搭建的,这个语言体系还没接触过,所以想以后想要接触的时候再集中学习一下。而Hexo是基于NodeJS的,这个熟,应用广泛,因此我选择了Hexo。但是在仓库中上传了Hexo工程之后,GithubActions在执行的时候自动识别为Jekyll了,我看其他人很少遇到这类问题。不过后来为了防止他使用Jekyll编译,我在工程根目录放置了一个空文件名为:.nojekyll,管用。
记录2:简要部署流程思路
- 使用hexo初始化站点工程
1 | hexo init xxxxx |
- 加入GithubPages的GithubAction工作流配置文件
参考文档:https://hexo.io/zh-cn/docs/github-pages
- 修改_config.yml文件,定制站点显示的内容
配置文件的含义参见:https://hexo.io/zh-cn/docs/configuration
- 修改站点主题
- 本地编译生成站点文件
1 | hexo g |
- 本地测试效果
1 | hexo s |
- 提交并推送本地git仓库到远端,此处应当注意远端分支名应当与前面配置文件中配置的一致
代码推送后,Github Actions应该会立刻执行,此时可以去Actions标签中查看进度。
最终效果:
https://sandy1108.github.io/tech-blogs/
后续陆续就把简书导出的markdown都转存在这里,这样也不用担心哪一天文章没了。毕竟Github作为全球最大的开源社区,应该不至于说没就没了。(手动狗头)