用 Hugo 配合 Algolia 实现高效美观的站内搜索
作者已经在最新的主题中加入了Algolia搜索,现在只要在配置文件中开启一下即可。
前言
很多的 Hugo
主题是没有自带搜索功能的,但是们为了方便用户浏览和查找内容是需要在网站上提供搜索功能。大家可以查看 Hugo 官方推荐的搜索方案,这里我选择的是 Algolia , 折腾了很久,主题也从EVEN
更新到了现在的LOVEIT
,发现也并非很繁琐,以下是折腾后的成果。
在Algolia 端创建应用和索引
Application
点击NEW APPLICATION,Name可选,方案选择FREE,然后创建,随后的地区选择邻近地区即可;
Indices & Index
点击侧栏的Indices,然后点击Create Index,Index name自定义(例如自己的域名)
API Keys
点击侧栏API Keys,记住以下的 Keys,之后都会用到;
在本地生成索引
config.yaml
在themes
同级添加config.yaml
文件,注意这里的key
是Admin API Key。
|
|
hugo-aligolia
我们这里使用一个hugo-algolia
的插件来完成我们的数据同步工作,要安装hugo-aligolia
我们需要先确保我们已经安装了 npm
或者 yarn
包管理工具。
使用下面的命令安装即可:
|
|
配置完成以后,在根目录下面执行下面的命令:
|
|
这个时候我们在 dashboard 中打开 Indices,可以看到已经有几十条数据了。
如果某篇文章不想被索引的话,我们只需要在文件的最前面设置 index 参数为 false 即可。
页面展示
新建search.html
在themes\LoveIt\layouts\partials
新建search.html
并添加如下代码
|
|
添加search.js
在themes\LoveIt\assets\js
下添加search.js
|
|
添加search.css文件
在themes\LoveIt\assets\css
路径下添加search.css
样式文件
|
|
在baseof.html中添加代码
在themes\LoveIt\layouts\_default\baseof.html
中添加代码
|
|
引用css文件和js文件
在head.html中添加如下代码
|
|
在scripts.html中添加如下代码
|
|
添加锚点
在header.html中添加如下代码(手机端和桌面端两个地方都要添加代码)
|
|