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

Docusaurus 本地搜索插件使用教程

2024-09-16 04:06:16作者:蔡丛锟

项目介绍

@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 文档站点提供强大的本地搜索功能。

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

热门内容推荐

最新内容推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
154
1.98 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
507
43
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
194
279
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
992
395
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
940
554
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
336
11
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
146
191
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
75
70