Skip to main content

搜索功能

Algolia

v3

  1. 默认情况下已经安装了改搜索插件,如果没有则执行下方手动安装
pnpm add @docusaurus/theme-search-algolia
  1. 配置文件docusaurus.config
themeConfig: {
algolia: {
// Algolia 提供的应用 ID
appId: "YOUR_APP_ID",

// 公共 API 密钥:可以安全地提交
apiKey: "YOUR_SEARCH_API_KEY",

// 索引名称
indexName: "YOUR_INDEX_NAME",

// 可选:启用上下文搜索,参见下面的文档部分
contextualSearch: true,

// 可选:指定在哪些域名上进行导航时应使用 window.location 而不是 history.push。当我们的 Algolia 配置爬取多个文档网站时,并希望使用 window.location.href 导航到它们时很有用
externalUrlRegex: "external\\.com|domain\\.com",

// 可选:替换 Algolia 项目 URL 的部分内容。当使用相同的搜索索引进行多个部署时,并且使用不同的 baseUrl 时很有用。可以在 `from` 参数中使用正则表达式或字符串。例如:localhost:3000 与 myCompany.com/docs
replaceSearchResultPathname: {
from: "/docs/", // 或使用正则表达式:/\/docs\//
to: "/",
},

// 可选:Algolia 搜索参数
searchParameters: {},

// 可选:搜索页面路径,默认启用(设置为 `false` 可禁用)
searchPagePath: "search",

// 可选:是否启用 Docsearch 的 insights 功能(默认 `false`)
insights: false,

// ... 其他 Algolia 参数
},
}

手动添加

Algolia上注册一个账号,然后在这里需要创建一个应用

# .env文件
APPLICATION_ID=YOUR_APP_ID
API_KEY=YOUR_API_KEY
// flydean.conf文件
{
"index_name": "example",
"start_urls": ["https://www.example.com/docs"],
"selectors": {
"lvl0": "#content header h1",
"lvl1": "#content article h1",
"lvl2": "#content section h3",
"lvl3": "#content section h4",
"lvl4": "#content section h5",
"lvl5": "#content section h6",
"text": "#content header p,#content section p,#content section ol"
}
}

// 多个网站
{
"start_urls": [
{
"url": "http://www.example.com/docs/faq/",
"selectors_key": "faq"
},
{
"url": "http://www.example.com/docs/"
}
],
[],
"selectors": {
"default": {
"lvl0": ".docs h1",
"lvl1": ".docs h2",
"lvl2": ".docs h3",
"lvl3": ".docs h4",
"lvl4": ".docs h5",
"text": ".docs p, .docs li"
},
"faq": {
"lvl0": ".faq h1",
"lvl1": ".faq h2",
"lvl2": ".faq h3",
"lvl3": ".faq h4",
"lvl4": ".faq h5",
"text": ".faq p, .faq li"
}
}
}
run -it --env-file=.env -e "CONFIG=$(cat flydean.conf | jq -r tostring)" algolia/docsearch-scraper