关于FixIt主题的搜索功能
目前hugo博客使用的是FixIt主题,这个主题算是功能比较全的一个主题了,用着还不错,但是搜索功能有点小问题,搜索时只能搜索到文章前面一小部分的内容,后面的就搜不到了,我在其它用hugo搭建的博客试过别人配置好的搜索功能,确实还是比较好用的,所以今天有时间也配置一下
创建Algolia应用
-
注册 algolia 账号
-
在 algolia 中创建一个应用(Application),例如
fixit-blog
我这里选择了免费的套餐
然后点击skip for now
-
「选中应用
fixit-blog
」>「点击Data Sources
」>「点击Indices
」>「点击Create Index
」 -
创建一个索引,例如
index.zh-cn
-
「点击Settings」>「点击API Keys」>「复制保存API Keys」:
-
Application ID
-
Search-Only API Key
-
Admin API Key
(请勿公开)
-
Application ID
和 Search-Only API Key
用于搜索配置,Admin API Key
用于自动化更新索引。
配置hugo.toml
将配置文件中关于搜索的部分修改一下:
|
|
写本文档时使用的Application ID
、Search-Only API Key
、Admin API Key
保存在「百度网盘」>「娱乐」>「7.加密数据」>「algolia相关key_25_7_21.7z」中
为了生成搜索功能所需要的 search.json
, 请在你的站点配置中添加 search
输出文件类型到 outputs
部分的 home
字段中。
|
|
上传索引
然后你需要上传 search.json
到 algolia 来激活搜索功能。你可以使用浏览器来上传 search.json
文件,但是一个自动化的脚本可能效果更好,Algolia Atomic 是一个不错的选择。
使用Shell脚本自动化上传索引
准备
首先确保已经安装了node.js
安装Algolia Atomic
如果你的项目中没有 package.json
文件,请先创建一个,创建命令如下,输入该命令后会提示输入对应的信息,如果不输入npm会使用默认值(后续在package.json里可以修改)
|
|
然后安装 Algolia Atomic。
|
|
在 package.json
文件中添加以下内容。
|
|
使用
当你执行 hugo
命令生成站点后,你可以在bash中使用以下命令上传 search.json
文件到 algolia
来更新索引。
|
|
ALGOLIA_APP_ID
:algolia Application ID
ALGOLIA_ADMIN_KEY
:algolia Admin API Key
ALGOLIA_INDEX_NAME
:algolia
索引名称,我这里是index.zh-cn
ALGOLIA_INDEX_FILE
:本地search.json
文件路径
创建deploy.sh
|
|
⚠️注意:ALGOLIA_APP_ID
和ALGOLIA_ADMIN_KEY
要改成自己的
赋予执行权限
|
|
运行脚本
|
|