一次失败的更新
本博各项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是不奢求了。