Skip to content

设置站点搜索

Material for MkDocs 提供了出色的客户端搜索实现,省去了集成第三方服务的需要,这些服务可能不符合隐私法规。此外,搜索甚至可以在 offline 状态下工作,允许用户下载您的文档。

配置

内置搜索插件

0.1.0

内置搜索插件与 Material for MkDocs 无缝集成,添加了多语言客户端搜索功能,使用 lunrlunr-languages。默认情况下启用,但在使用其他插件时必须重新添加到 mkdocs.yml 中:

plugins:
  - search

有关所有设置的列表,请查阅 plugin documentation

搜索建议

7.2.0

当启用搜索建议时,搜索将显示最后一个单词的最可能完成项,可以通过 Right 键接受。将以下行添加到 mkdocs.yml

theme:
  features:
    - search.suggest

搜索 search su 将会得到 search suggestions 作为建议。

搜索高亮

7.2.0

当启用搜索高亮并且用户点击搜索结果时,Material for MkDocs 将在跟随链接后高亮显示所有出现的内容。将以下行添加到 mkdocs.yml

theme:
  features:
    - search.highlight

搜索 code blocks 将高亮显示两个术语的所有出现。

搜索分享

7.2.0

当启用搜索分享时, 分享按钮将显示在重置按钮旁边,允许深度链接到当前搜索查询和结果。将以下行添加到 mkdocs.yml

theme:
  features:
    - search.share

当用户点击分享按钮时,URL 会自动复制到剪贴板。

使用

搜索提升

8.3.0

页面可以通过前置信息 search.boost 属性在搜索中提升,从而使其排名更高。在 Markdown 文件的顶部添加以下行:

---
search:
  boost: 2 # (1)!
---

# 页面标题
...
  1. 🧘‍♀️ 提升页面时,请温和对待,先从 低值 开始。
---
search:
  boost: 0.5
---

# 页面标题
...

搜索排除

9.0.0

页面可以通过前置信息 search.exclude 属性从搜索中排除,从索引中移除它们。在 Markdown 文件的顶部添加以下行:

---
search:
  exclude: true
---

# 页面标题
...

排除部分

Attribute Lists 启用时,可以通过在 Markdown 标题后添加 data-search-exclude 语句来排除页面的特定部分:

# 页面标题

## 部分 1

此部分的内容被包含

## 部分 2 { data-search-exclude }

此部分的内容被排除
{
  ...
  "docs": [
    {
      "location":"page/",
      "text":"",
      "title":"文档标题"
    },
    {
      "location":"page/#section-1",
      "text":"<p>此部分的内容被包含</p>",
      "title":"部分 1"
    }
  ]
}

排除块

Attribute Lists 启用时,可以通过在 Markdown 行内或块级元素后添加 data-search-exclude 语句来排除页面的特定块:

# 页面标题

此块的内容被包含

此块的内容被排除
{ data-search-exclude }
{
  ...
  "docs": [
    {
      "location":"page/",
      "text":"<p>此块的内容被包含</p>",
      "title":"文档标题"
    }
  ]
}