返回

关于 giscus 的相关问题修复

修复了一个很讨厌的 bug

我只能说,没有基础确实就只能大声叹气,直接丢失人权了。

问题描述

giscus 的评论系统莫名其妙地掉了,在我将官方的配置文件搬过来之后。

对的,就是这么简单,因为 hugo 对于外部组件的加载失败是没有给任何的 errorlog 的,完全不知道从哪里查起。只能硬着头皮一点一点读整个网站的结构系统。

问题定位

我是在打开 F12 工具,一点一点对着网页找元素找出来的那个空空的框。我甚至可以说你绝对不敢相信,它渲染出来了和没渲染出来一模一样……感谢便利的检查元素工具……

具体来说,这一块“卡片”是渲染出来了的,但是里面确实空的,且由于 style 的缺失,所以从外面看不出来这里渲染成功了的。

那么其实也就很好定位问题了,肯定是哪里少了相对应的数据导致组件不能正常工作,所以我又去 F12 工具里面找元素的值,检查它的递归调用是否出了一点什么问题。果不其然,这个东西最后的值是空的。

问题解决

我就选择去一个一个翻 html 的相互调用(这里面又是 hugo 的语法看的我有点小小的乱)并且依次在每个 html 上添加官方(giscus)给的 script 标签,发现都能正常运行。这时候我考虑到可能是不是传值的时候出了一点问题,遂去看了看每一层之间的变量名的关系。果不其然,我在 config.yaml 中找到的变量名和 giscus.html 中引用的变量名不一样。你绝对不敢信,hugo 使用的变量名和官网(giscus)的变量名不一样导致了引用出问题了。但是其实也不能怪 hugo 吧,只能说这个东西是历史遗留问题()因为 hugo 语法中变量名不允许出现 ‘-’ ,所以 hugo 就把变量名做了一定程度的简省和合并,即类似于 data-repo –> repo 的操作,并且在递归调用中顺理成章地采用了自己的变量名(要不然怎么能跑得起来)最后对直接粘贴官方文档的人造成了毁灭性打击(

后话

但是其实我觉得还好? 至少这个 bug 强行要求我去比较彻底地理解了 hugo 的网站结构,具体一些有用没用的知识说不定也涨了?

还有一个点,在 md 文件头中请不要出现 comments 字段,一旦出现就没有评论加载,原因不明……

所以 hugo 你的文档里怎么一句不提啊啊啊

Licensed under CC BY-NC-SA 4.0
长夜如此温柔,我该用什么把你留住


© Licensed Under CC BY-NC-SA 4.0


蜀ICP备2024113293号