Docusaurus 实现搜索功能

  1. docusaurus-lunr-search 使用方法
    1. 安装方法
    2. 使用方法
  2. 最后

Docusaurus 官方给出了一个添加搜索的方式 Algolia DocSearch,但是这个搜索插件需要得到Algolia官方的认证,如果你的网站还处于建设阶段,那么就不会被允许使用。

在网上搜索后发现了search-local的插件,这个插件为本地离线搜索。

  • 这里是关于离线搜索的讨论

docusaurus-lunr-search 使用方法

安装方法

yarn add @cmfcmf/docusaurus-search-local

注意,在官方文档中是不支持中文搜索的。在查看源码后发现,这个插件使用的是lunr-language来进行分词的,
在最新版本中已经包含了中文分词,并且依赖nodejieba

所以要再安装nodejieba

yarn nodejieba

nodejieba的安装依赖python,并且python的安装目录不能有中文
如果python已经安装到了中文目录,那么npm install nodejieba是可以安装的,然后yarn install
千万别直接yarn。这将会导致代码框中的copy无法使用。

使用方法

module.exports = {
  plugins: [
    [
      require.resolve('@cmfcmf/docusaurus-search-local'),
      {
        indexDocs: true,
        indexBlog: true,
        docsRouteBasePath: '/doc',
        blogRouteBasePath: '/blog',
        language: ['en', 'zh'],
      }
    ],
  ],
}

最后编译 npm run build 即可。

最后

这个插件只能在静态页面中生效,也就是部署了之后才能看到

yarn build

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 365433079@qq.com