前言 #
很久一段时间没有写博客了,或者说今年只写了几篇。和一个哥们聊了一会发觉要把所做的事情给记录下来,能发网上当赛博遗产也不错。其中比较受这篇文章影响如何搭建知识库
又由于觉得不应该依赖于国内主流网站如知乎,所以决定要自己搭建一个Github Page。
哥们推荐了Hugo,就去看了一下。
搭建过程 #
首先要安装Hugo,我用的是scoop包管理器安装的,官网也有其他包管理器以及其他的安装方法。https://gohugo.io/getting-started/quick-start/
因为要挑选一个theme,我便从支持的列表里面找了一个好看的,最后相中了Blowfish
所幸的是Blowfish非常的方便有个CLI工具可以快速搭建不用修改文件。https://blowfish.page/docs/installation/
按照Hugo官方的quick-start教程走完并且用git submodule的方法安装了Blowfish主题后,试着跑了一下,虽然什么都没有但是有Blowfish的theme了。
之后把素材之类的东西从Blowfish theme的目录下复制过来才能用,比如config和assets。
为了方便本地调试复制过来后根目录下的baseURL先不用填,会自动定位本地根目录下的资源文件,如果填了编译之后将无法获取本地资源而是还没搭建好的远程资源。
由于这是一个github page的子项目,url大概类似feishiko.github.io/feishiko-blog-page。
用hugo
指令打包后,发布的版本位于项目根目录的public文件夹,进入public文件夹并git init
,完成git仓库初始化,然后上传到远程仓库,我用的是github,并且用了github desktop,非常方便非常简单非常快捷的就上传好了。
这里做一个提醒,你可以直接把项目文件上传到github并且用hugo的action在线编译,由于theme是submodule并不会上传到你的github仓库而是作为一个指针远程参与编译。https://gohugo.io/hosting-and-deployment/hosting-on-github/
上面的链接步骤到第四步是一样的
因为我是打包的静态网页,所以action用了static一开始。嗯,就算用hugo的action好像也不用像官网那样自己写一个,现在的github似乎是有hugo的预设的。
workflow写好或生成好后,等待部署就能看到自己的网页了。
现在还有一个问题,就是要把实际的网页链接复制到baseURL上,不然会出现资源定位错误的情况。
目前我不知道要怎么把图像资源定位到博客项目的仓库,可能和我图像地址写的../assets/img/xxx.png有关,不过暂时懒得去考虑了。
所以有点麻烦的我现在图像资源在feishiko.github.io所属仓库也放了几张,通过F12查看项目文件应该能定位到博客项目的img资源。
Blowfish主题自带的搜索没法用,我想应该和github page没有提供相关支持有关,之后换了这个action想看看能不能支持搜索依然不行。https://github.com/marketplace/actions/upload-github-pages-artifact
关于创建文章而言没什么好说的,博客统一的资源定位在content/posts,使用Blowfish的CLI工具或Hugo创建一个文章,同时拟定文件名以及标题(标题可以在里面继续改),会在文件开头生成一些metadata,通过修改日期等数据可以控制网站达到预期的效果。draft设置成true的时候在正式打包并不可见,预览的时候可以通过hugo server -D
将draft可见。正式打包可将draft改成false以正式发布。
如果看不到自己创建的博客,需要让博客显示出来,创建menus或显示最近博客都行。
踩坑 #
其实上面或多或少都讲到了可能的坑,毕竟我一路做下来确实没那么顺利。
顺便一说飞鱼子用的shell是NuShell,在设置环境变量上有点小问题,后面发现可以直接pwsh -command使用powershell的指令。
如上面说的我确实遇到了资源定位的问题,一开始用的也是static的workflow,但之后重新部署了反而就正常了这一点还不是很清楚。
每次push后要等待几分钟,效果不会那么快显现出来。
jpeg格式的图片可能有问题,如果不行就用ffmpeg把格式改成png的即可。
最后效果:https://feishiko.github.io/feishiko-blog-page/ 并且把知乎之前写的文章也搬了上来,有几个早期文章用的github的图床但仓库被我删了,不知道会不会补回来。