从博客平台到放弃
折腾博客也有不少年了,从最开始的csdn,到博客园,简书,以及开源的hexo,hugo,最终稳定在了Hugo上,也算是不少时间的折腾吧。
国内的一些博客平台吧,现在问题都挺多的,csdn就不说了,各种垃圾转发文章,还贴各种广告,贴广告能理解,到处都是广告,严重影响阅读体验,而且垃圾文章特别的多,有时候就一句话一个链接就结束了,特别的恼火。
博客园倒挺好的,没有广告,而且很多文章的质量还行,但是我感觉编辑器有点老旧,不大喜欢在上面写文章,但是博客园用来看还是挺好的,另外说一句,用爱发电果然不靠谱,博客园都能倒闭的,太难了。
简书倒是挺好的,广告适中,文章样式也符合我的审美,而且编辑器也挺好使的,不过里面有些限制也挺严重的,被判违规之后,文章就被锁了,而且不能贴公众号图片去倒流,想蹭点流量的路又被堵死了。
自建个人博客
上述平台都有各种各样的问题,那么一个符合自己审美和心意的个人博客,就非常的有必要了。
我也看过不少的开源博客工具,首先是 barretlee,我非常的喜欢他的样式,但是博客的安装介绍没有太多,就放弃了,这个博客是真的好看呀。
后来又看了一些开源的博客系统,比如halo,wordpress等,但是这些需要额外安装进程,对于我这种不想买机器的人来说,有点费劲。
最终把目光放在了基于github pages的静态博客系统上面,文章的源文件和发布页都通过github实现,静态博客网站比较出名的有hexo和hugo。
我一开始在少数派上冲浪,发现了有个作者基于github pages自己折腾了一个博客出来,我也照着折腾了一下,不得不说,真的折腾出来了,但是可能作者自己也放弃了维护,我折腾完之后也没有后续了,也搁置了,git地址如下: Blog-With-GitHub-Boilerplate
一段时间之后,又开始手痒,重新折腾博客,试过Hexo,后来也放弃了,在最后一回,终于确定用github action+github pages+hugo搭建我的静态资源博客了。
稳定的博客版本-Hugo
可能是累了,也可能是想稳定的写点东西,肯定是要用静态资源博客的,所以选了个比较有知名度的hugo。
另外为了不用买机器,所以选择了使用github仓库作为文件存储和发布工具
不得不说,搞定了用哪种博客系统之后,博客更新也稳定了,可以写点自己想写的东西了,纯粹作为自己的碎碎念保留在互联网上吧。
最终的最终,经过了2,3次主题的切换,从zozo到coder到even,最终主题定在了even,其他的主题稍后有空再试吧。
目前我的博客,使用hugo+github pages+github action,主题用even,目前已经稳定的在更新和运行了。
hugo折腾记
安装Hugo
首先是hugo的安装,我的电脑是mac,用的是brew安装的,具体安装的过程比较简单,可以搜索一下。
在本地新建一个hugo项目,然后和github仓库关联。
github actions
我使用的是使用github actions自动构建部署和发布博客。
可以在提交文章的时候,自动触发构建,可以指定监听哪个分支的变化,构建出静态资源之后选择另外一个分支进行部署。
参考如下文章实现的自动部署 github actions实现hugo自动部署
为了解决每次部署都会丢失自定义域名的问题,需要在static目录新增一个CNAME文件, 里面添加自己的自定义域名
贴一下我的构建脚本,从别的博客看到然后改成了自己的github配置。
name: GitHub Pages
on:
push:
branches:
- main # Set a branch name to trigger deployment
pull_request:
schedule:
# Runs everyday at 8:00 AM
- cron: "0 0 * * *"
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- uses: actions/checkout@v3
with:
submodules: recursive # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
extended: true
- name: Build
run: hugo --minify
- name: Deploy on Github
uses: peaceiris/actions-gh-pages@v3
# If you're changing the branch from main,
# also change the `main` in `refs/heads/main`
# below accordingly.
if: ${{ github.ref == 'refs/heads/main' }}
with:
personal_token: ${{ secrets.PERSONAL_TOKEN }}
publish_branch: gh-pages
publish_dir: ./public
commit_message: ${{ github.event.head_commit.message }}
主要是监听的分支和发布的分支需要改一下,其他的涉及权限,需要在github上配置一下,需要添加一个PERSONAL_TOKEN的key-value,具体路径如下,打开你的repo,点击settings,然后选择左侧的security->security and variables->actions->new respository secret新增一个PERSONAL_TOKEN即可

主题
博客可能最重要的就是主题了,hugo社区有大量免费好用的主题,我一开始冲浪的时候,发现了一个叫coder的主题,感觉逼格满满的
不过用了一阵之后,发现没有tag功能,而且实际相比说明少了一条黑白分明的线,自己折腾tag又折腾不明白,所以又换了主题。
挺喜欢,但可惜,coder地址如下: hugo-coder
换成了中文的主题even,even相比之前的多了标签分类的功能,虽然整体上感觉少了些什么,不过现在也能将就用着,后面有需求再换吧。
主题的说明都是中文的,使用体验好了不少。
hugo的even主题地址如下:
为博客添加评论
使用了even之后,想着为我的博客添加评论系统,刚好也支持评论,然后就接了一下,用的工具是 utteranc
使用的是github仓库存储博客信息,在utteranc上关联github账号,在config.toml里配置一下owener和repo名称即可接入
[params.utterances] # https://utteranc.es/
owner = "" # Your GitHub ID
repo = "" # The repo to store comments
为博客添加访问统计
使用的是google analytics服务,需要在config.toml里配置googleAnalytics ="",value是在google统计中获得的一个唯一key
然后需要添加一个html页面layouts/_internal/google_analytics_async.html
,这个页面粘贴从google统计那获取到的脚本,
最后将这个页面编译进所有的文章页面,even应该是对这个做了支持
config.toml里设置如下值
googleAnalytics = "G-GZV-XX" # G-XXXXXXXX-X
layouts/_internal/google_analytics_async.html页面内容
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GZV-XX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-GZV-XX');
</script>
even中处理analysis的地方
themes/even/layouts/partials/scripts.html
<!-- Analytics -->
{{- if (in (slice (getenv "HUGO_ENV") hugo.Environment) "production") | and .Site.GoogleAnalytics -}}
{{ template "_internal/google_analytics_async.html" . }}
{{- end -}}
后记
博客更新说明先到这里,后续再补充