搜索
搜索是纯本地的:索引在构建期生成、随站点一起发布、由 web worker 查询。不涉及任何第三 方服务。
开启
搜索默认开启。可以整体关闭,也可以逐项配置:
theme: githubTheme({
search: {
indexContent: true,
suggestion: true,
searchDelay: 150,
hotKeys: [{ key: 'k', ctrl: true }],
},
})search: false 会移除索引与搜索框。
工作原理
@vuepress/plugin-slimsearch 遍历每个页面、分词,并在站点目录写出一个 slimsearch.worker.js。导航栏里的搜索框打开一个弹层,弹层与这个 worker 通信 —— 所以 输入不会阻塞渲染。
样式由主题提供
插件自带的样式表被有意不导入:主题提供了一份等价、但按 GitHub token 重写的样式, 所以弹层在两种配色下都与站点其它部分一致。
结果行为
- 结果按页面分组,并跳到精确的标题
- 最近查询与最近结果保存在本地存储
Ctrl+K或Ctrl+/聚焦输入框- 空查询时展示历史,而不是一块空白面板
