Icarus用户指南 - 站内搜索插件
本文介绍Icarus支持的站内搜索插件的安装配置。
访客点击导航栏上的搜索按钮即可打开搜索框。 除百度搜索外,搜索框也可以用键盘打开,并用Esc关闭,详见快捷键。
Algolia
在Hexo站点的根目录安装hexo-algolia插件。
注册并登录Algolia。 首次登录控制面板(Dashboard)时点击页面上的“创建索引”(Create Index)按钮。 然后,输入“索引名称”(Index name)并点击“创建”(Create)完成索引创建。
下一步,点击左侧导航栏上的“API密钥”(API Keys),复制页面上的“应用ID”(Application ID)和“仅限搜索的API Key” (Search-Only API Key)。 打开Hexo站点根目录下的站点配置文件
_config.yml,填入上面复制的信息到hexo-algolia插件的配置中。
例如,下面的Algolia索引信息:
Algolia索引信息 1
2
3Algolia索引名称: My-Hexo-Site
Application ID: ABCDEFGHIJKL
Search-Only API Key: 7b08fca7d42412cee901a25643124221对应的站点配置为:
_config.yml 1
2
3
4algolia:
applicationID: ABCDEFGHIJKL
indexName: My-Hexo-Site
apiKey: 7b08fca7d42412cee901a25643124221回到Algolia控制面板的“API密钥”(API Keys)页面并切换到“所有API Keys”(All API Keys)标签页。 点击“新建API Key”(New API Key)按钮。 在弹出的“创建API Key”(Create API Key)对话框中,在“索引”(Indices)处选择你在第2步中创建的索引。 然后,“ACL”项中添加
addObject,deleteObject,listIndexes,deleteIndex。 点击“创建”(Create)完成密钥的创建。 复制刚刚创建的API Key,例如727fbd8c998fe419318fa350db6793ca。
打开一个Windows命令行(CMD)或Linux/macOS终端并切换当前目录到你的Hexo站点的根目录。 设置环境变量
HEXO_ALGOLIA_INDEXING_KEY为上一步中创建的API Key。 hexo-algolia插件上传网站索引时会用到这个变量。Windows下:
Windows命令行(CMD) 1
2C:\Users\you> cd path/to/your/hexo/site
C:\Users\you> set HEXO_ALGOLIA_INDEXING_KEY=727fbd8c998fe419318fa350db6793caLinux/macOS下:
Linux/macOS终端 1
2cd path/to/your/hexo/site
export HEXO_ALGOLIA_INDEXING_KEY="727fbd8c998fe419318fa350db6793ca"然后,运行下面的命令来清理站点并上传网站索引到Algolia:
Windows命令行(CMD)或Linux/macOS终端 1
2hexo clean
hexo algolia最后,在主题配置中设置搜索引擎为Algolia:
_config.icarus.yml 1
2
3search:
type: algolia
excerpt: excerpt # 可选填,默认为`excerpt`excerpt是Algolia记录中的一个属性名,这个属性的内容会作为每条搜索结果的预览文字。 如果你的记录把文章正文存在其他属性中,请设置这一项。 搜索结果中的标题和预览文字都以纯文本显示,并高亮匹配到的词: 自hexo-component-inferno 4.2.0起,预览文字中的HTML标签会被去掉,记录中的其他HTML会被转义,而不会被渲染。
百度搜索
安装指南
打开主题配置文件并设置搜索为百度搜索:
_config.icarus.yml 1
2search:
type: baidu百度搜索会把访客带到百度网站上搜索你的站点,搜索范围限定为站点配置文件
_config.yml中url设置的域名。 请确认url是你的站点地址。 百度搜索的搜索框不支持快捷键。
谷歌自定义搜索
登录你的谷歌账户并访问Google CSE来创建自定义搜索。 在“需要搜索的站点”(Sites to Search)中填入你的Hexo站点域名。 在“语言”(Language)选择框中选择正确的语言。 然后填写自定义“搜索引擎名称”(Name of the search engine)。 点击“创建”(Create)按钮完成引擎的创建。
然后,点击页面上的“添加到你的站点”(Add it to your site)右侧的“获取代码”(Get code)按钮。 从HTML代码中复制
cx的值,填入对应的主题配置项中。
例如,下面的HTML代码:
Google CSE HTML代码 1
2<script async src="https://cse.google.com/cse.js?cx=012345601234560123456:abcdefghijklmn"></script>
<div class="gcse-search"></div>对应下面的主题配置:
_config.icarus.yml 1
2
3search:
type: google_cse
cx: 012345601234560123456:abcdefghijklmn
Insight
安装指南
Insight为本站默认的站内搜索引擎。 你可以通过下面的主题配置来启用它:
_config.icarus.yml 1
2
3search:
type: insight
index_pages: true # 可选项,默认为`true`。设置为`false`时从搜索结果中排除所有页面(page)Insight不需要任何外部服务。 生成网站时,它会把文章、页面、分类和标签的文字保存到
content.json文件中,搜索框会下载这个文件并在浏览器中搜索。 自hexo-component-inferno 4.2.0起,搜索关键词按纯文本匹配,不再被当作正则表达式;搜索结果也会被转义,以纯文本显示。 你还可以用↑和↓选择搜索结果,按Enter打开它。
快捷键
除百度搜索外,上面所有的搜索插件都支持下面的快捷键:
- /:打开搜索框。正在输入框、文本框或其他可编辑内容中输入时除外。
- Ctrl + K(macOS上为⌘ Command + K):打开搜索框,正在输入时也可以使用。
- Esc:关闭搜索框,焦点会回到打开搜索框之前的位置。
用Tab等方式让导航栏上的搜索按钮获得焦点时,不会打开搜索框;请在按钮上按Enter或空格,或者点击它。 用Tab等方式把焦点移出已打开的搜索框时,搜索框会关闭。