一次失败的更新

本博各项GTD已经陆续完成,唯独缺一个数据检索。根据HUGO官方的检索方案建议 ,看中了Algolia。年前的时候看了下教程 ,下意识得出结论,自认为并不难。不过一直苦于未寻得入眼的search模板,迟迟未下手改造。

最近抽空新增了site logo模块后,心思越发活络,添加Algolia检索成为心心念念的头号任务。说干就干,注册账号、从面板获取API Key等皆为举手之劳,即便对文科生也是毫无半点技术门槛。

接着是通过npm安装hugo-algolia

$ npm install hugo-algolia -g

如果改造过npm镜像源 ,阿里源的下载安装也是神速。

一路绿灯后秀发飞扬,但当在hugo根目录新建config.yaml,并指定 Algolia相关的 API 数据万,之后运行:

$ hugo-algolia -s

4s、8s、20s、40s……结果是死活跳不出成功提示。检查了public目录下,确实有一个algolia.json文件,但大小为0,没有内容。
情急之下,clt+c中断了命令,然后hugo server先查看partial模板改造后,search入口是否能显示。终端立刻报错本地站点无法生成预览。

仔细阅读了官方的MD说明 ,其中提到一句:

If you don’t want to set your write key in your config.yaml, you can also use environment variables. Just set a variable ALGOLIA_WRITE_KEY to the write key for your account, and the module will use that instead.

似乎有了一点头绪,除了key可以另外存储,API数据唯一读取来源即config.yaml。这一点毋庸置疑。

然而,问题出在我的主题配置文件是json格式,根据hugo官方配置文档 ,hugo配置文件格式存在默认的检索顺序,即toml>yaml>json

Configuration Lookup Order

Similar to the template lookup order, Hugo has a default set of rules for searching for a configuration file in the root of your website’s source directory as a default behavior:

./config.toml

./config.yaml

./config.json

一言蔽之,hugo将hugo-algolia的API数据配置文件当成了整个站点的配置文件进行渲染,结果可想而知。

微微一笑,小手一抖,config.yaml删除后,果然一切如旧。转念一想有些心灰意懒,至少在将config.json转换成config.toml之前,algolia是不奢求了。