跳到正文

搜索

搜索是纯本地的:索引在构建期生成、随站点一起发布、由 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 + / 聚焦输入框
  • 空查询时展示历史,而不是一块空白面板