搭建过程中的踩坑记录,供同为小白的同志们参考,陆续补充,并录制视频进行教学,预计完成时间2023.10月。在开始动手之前,建议先想想值不值得投入大量时间和精力来折腾。
起因
何为区块链博客?可参照这篇文章:区块链博客,作者的博客也是搭建在区块链之上的。看完文章后我对Web3.0产生了浓厚的兴趣,但作为一个技术小白,似乎只能做两件事情。一是去购买IPFS发行的Filecoin;二是像上面的博客搭建一个区块链博客。这篇文章就是记录后一件事情的一些细节。
作为一个合格的BIMer,向来就是什么难搞搞什么,画得了图建得了模写得了代码,在知乎、头条、微信号上面简单写字发点文章,实在是没有什么难度,要就整点区块链独立博客,在区块链博客上写技术文章,才能符合BIMer钻研的精神。
区块链博客本质上是一个静态博客放在区块链网络中,所以我们首先要做的是搭建一个静态博客。
简要指南
静态博客搭建
本博客使用Hugo,同步到Github私有仓库,并采用Vercel自动部署进行实时更新展示。
基础搭建步骤可以参考文章:如何在 Windows 系统从零开始构建一个和我一样的 Hugo 博客,文章详细但不啰嗦,每一步关键点说的也很清楚。搭建步骤不再复述,只在第三章节记录我遇到的问题,作为补充参考。
博客同步到区块链
同步到区块链可以参照区块链博客一节选,作者科普倾向比较多,对于具体操作则是简要说明。当然我在看IPFS(InterPlanetary File System,星际文件系统)这一概念是有点小激动的。在第四章节我会记录遇到的问题。
博客搭建补充说明
Github速度慢
Github在国内大部分地区限流,几K速度每秒,如果没有条件挂梯,可参考 解决GitHub访问速度慢问题 来提高下载上传速度。不过没有合适的上网手段不建议使用此种方法搭建博客,毕竟之后写博客也麻烦。可以参考其他相关教程使用国内的Gitee。
Stack主题使用
博客使用Stack主题,感觉主题文档写的不够详细,也没有中文版,小白操作难度很大。在基础搭建步骤里面只说了如何做,但详细说明每一步作用有助于之后遇到问题灵活处理。
我把Hugo官方Quick Start的做个说明然后再解释一下
| |
教程中的添加Hugo主题Stack跟上面操作类似,只文章没有说明为啥要复制文件出来粘贴替换。
作者回复是主题设置没有生效,你可以试一下按命令拉取主题内容到themes以后,在目录下config.toml 插入 theme = “hugo-themes-stack” 是否有作用。如果有网站生成说明生效了。
如果不生效则需要手动去把主题中的文件复制出来进行替换。类似的操作Stack主题文档中也有说明
原教程则是使用完全替换的方法,照做能够生效也行。
如果是使用根目录下修改成config.toml加入 theme = 'ananke'的方式使用主题,则主题的参数设定则需要到thems/hugo-them-stack/config.yaml中修改,两个配置文件共同起作用控制站点。
同时在thems/hugo-them-stack/exampleSite中主题给出了填充网站的内容,和修改的网站配置文件,复制到根目录下进行替换,操作和之前类似,不再赘述。
Stack主题安装报错
安装出现以下错误
| |
如果没有挂梯子,一是json报错,主题默认内容里面有国外网站,可以删掉主题里自带的Rich Content这篇文章,或者参照下方;二是主题生成时间过长,超过30s,安装下方增加时限即可。
在config.yaml文件里面增加这两行 ignoreErrors: [“error-remote-getjson”] timeout: 200000
网址设定
除根据搭建教程完成设置以为,我自己配置的主要有以下内容
language我只需要中文,所以删除了;DefaultContentLanguage设定为 zh-cn;permalinks文章路径 post: /post/:slug/ 页面路径 page: /:slug/
更多设定参照Hugo官方文档,链接这章的说明我找了Hugo框架中文文档 内容管理 链接URLs一文,方便英语不过关的同志参考。不过英语不好,不看原始文档,弄起来难度会大很多。
category页面设定
删掉theme/hugo-them-stack/content/categories,在根目录下进行设定,或者删掉根目录下的文件,再主题文件的categories文件夹下面编辑,只留一个,否则可能搞混乱。在categoires下面新建文件夹,文件夹名称是分类展示的名称,里面按要求编写_index.md文件
例如想新建美好生活的分类,则新建名称为美好生活名称的文件夹,在此文件夹下面建立_index.md文件,内容如下,同级文件插入图片进行链接展示。
| |
社交图标
首先svg图片路径在 assets/img 下面,相应的图标在config.yaml的social一节可以进行修改,具体步骤参照基础教程。这里我的知乎图标在教程的网站没找到,直接找了Victor42的博客F12查看源代码复制了一个过来。
图片插入设定
主题建议插入的图片和文章是以下格式
| |
index.md文章中的图片只需要直接格式插入,前后空行,Stack模板会自动生成相册模式。如果使用下方的外部链接形式则相册模式不可用,可自行选择。

另外一种格式是,图片统一在post下面新建img文件夹,里面有index.md空文件,然后按年份放置图片,post下的文章按年份组织排列,使用slug来控制名称,页面的设置用slug来控制。
| |

这样在文章1.md里面写文章要插入202303-1.jpg这张图片,只需要在markdown格式下插入如下网址就行: 。优点是不用每篇文章都新建一个文件夹,图片也能集中到一处,缺点则是因为相当于外链,没有了相册预览模式。

可自行取舍。
favicon与头像
参照教程,可搜索favicon generater等工具,生成favicon.ico图标,并放置在根目录下static文件夹(没有就新建一个),再在config.yaml文件中设定。
| |
网站速度优化
使用17CE测速,作为部署在被墙的Github上的网站,达到这种速度心满意足。唯一隐患就是可能随着该部署方式的普及,Vercel可能被墙,到那时候再说吧。类似的替代产品不少,国内也有一些。

如果你的网站测速比较慢,可以按F12,打开Network,刷新网站,逐一查看是哪些地方拖累了速度,有针对性的进行修改。

博客写作
静态博客最大的槽点在于太麻烦,不仅只是部署,连写作都是。传统的写文章,无非是登录网页,输入账号密码,开始写作,提交更新。而静态博客由于没有管理后台,需要用特定编辑器或者git push等写代码的方式更新。
门槛太高。
这里分别在PC和手机上提供一种方法,只需要登录网页点击鼠标就能更新博客,忘记那些写代码的方法。git命令,add commit push pull根本弄不清。
当然一点基础的Markdown知识必不可少,让你不用担心排版效果,写作思路连续。
网页在线写作
PC端操作总结起来一句话,登录Github网站部署页面,按鼠标右下的.符号,则进入github.dev编辑器。写作的界面就像下面这样

我们只需要在post下新建md格式文件,便可以开始写作,而且提供markdown即时预览界面,左右对比。
官方解释如下:
github.dev 编辑器引入了完全在浏览器中运行的轻量级编辑体验。 使用 github.dev 编辑器,可以从 GitHub 中导航文件和源代码存储库,并创建和提交代码更改。
也就是说在github上搭建的静态博客有了一个足够强大的后台编辑器,你的更新和上传图片在网页端就能完成,即使是在一台新的电脑上,只要你能访问Github,就可以简单的更新文章而不用再把文章同步到本地,并且使用烦人git同步命令。
当然,新建文章后的一些标签还是得要设定,如果你记不住,找之前的一篇文章复制过来改改就行。
比如像下面这样
| |
写完之后在这里输入更新内容说明,点击Commit&Push提交就行,网页会自动更新。中间的操作就是Github会把新的代码传递给Vercel,Vercel进行编码处理生成静态文件,然后发布到网站。当然这些中间操作是自动的,我们不用关心。

手机在线写作
下载GitHub App,手机打字更新文档,相关应用程序可自行搜索。这一项应该不是强需求,手机上打好字在电脑或者平板上编辑上传更快捷。
如果视频播放不支持,可点击链接查看手机在线写作。
博客备份
备份最简单的就是直接打开网址,点击Code,把程序都下载下来,在content/post文件夹下面有你所有的文章。自动的保存就不折腾了,投入产出比太小。而且只要你不乱来删除文件,或者被封号,Github也不倒闭。没啥问题。

博客上链
参照Vercel部署方式,在Fleek上面选择与Github绑定,然后选择部署博客仓库,使用Hugo,选择合适的版本。如果部署不成功可以查看一下原因

稍等片刻之后就会给你把博客部署到区块链网络上面,顺带给你一个可供访问的域名。如果有需要,可参照之前文章注册.eth域名并进行绑定。此处不再赘述。
有任何问题可随时联系
