首页
/ Docusaurus 本地搜索插件使用教程

Docusaurus 本地搜索插件使用教程

2024-09-16 23:49:24作者:蔡丛锟

项目介绍

@easyops-cn/docusaurus-search-local 是一个为 Docusaurus v2/v3 设计的离线/本地搜索插件。它支持多语言,特别优化了对中文的支持。该插件最初基于 cmfcmf/docusaurus-search-local 开发,后来完全使用 TypeScript 重写,并进行了样式优化和测试覆盖。

项目快速启动

安装

首先,通过 npm 或 yarn 安装插件:

npm install --save @easyops-cn/docusaurus-search-local
# 或者
yarn add @easyops-cn/docusaurus-search-local

配置

docusaurus.config.js 文件中添加插件配置:

module.exports = {
  // 其他配置
  themes: [
    // 其他主题
    [
      require.resolve("@easyops-cn/docusaurus-search-local"),
      /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */
      ({
        // 配置选项
        hashed: true,
        language: ["en", "zh"],
      }),
    ],
  ],
};

运行

完成配置后,运行以下命令启动 Docusaurus 项目:

npm run start
# 或者
yarn start

应用案例和最佳实践

案例一:多语言文档站点

假设你正在开发一个支持中英文的文档站点,使用 @easyops-cn/docusaurus-search-local 插件可以轻松实现本地搜索功能。通过配置 language: ["en", "zh"],用户可以在搜索框中输入中英文关键词,插件会自动匹配并显示相关结果。

案例二:大型文档库

对于拥有大量文档的站点,可以通过设置 maxSearchResults 选项来限制搜索结果的数量,以提高搜索效率。例如:

{
  maxSearchResults: 10,
}

最佳实践

  1. 多语言支持:确保在配置中指定所有支持的语言,以提供全面的搜索体验。
  2. 性能优化:通过调整 maxSearchResultssearchResultContextMaxLength 等参数,优化搜索性能和用户体验。
  3. 自定义样式:使用 CSS 变量自定义搜索框和结果的样式,以匹配站点的整体设计。

典型生态项目

Docusaurus

@easyops-cn/docusaurus-search-local 是基于 Docusaurus 构建的,Docusaurus 是一个用于构建文档站点的开源框架,支持 React 组件和 Markdown 文件。

Algolia DocSearch

Algolia DocSearch 是一个流行的文档搜索解决方案,但它是基于云服务的。@easyops-cn/docusaurus-search-local 提供了本地化的替代方案,适用于需要离线搜索或对数据隐私有较高要求的项目。

Lunr.js

Lunr.js 是一个轻量级的 JavaScript 搜索引擎库,@easyops-cn/docusaurus-search-local 内部使用了 Lunr.js 来实现文档的索引和搜索功能。

通过以上步骤和案例,你可以快速上手并优化使用 @easyops-cn/docusaurus-search-local 插件,为你的 Docusaurus 文档站点提供强大的本地搜索功能。

登录后查看全文
热门项目推荐

项目优选

收起
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
52
461
kernelkernel
deepin linux kernel
C
22
5
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
349
381
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
131
185
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
873
517
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
336
1.09 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
264
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
607
59
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4