Mkdocs的中文搜索(material主题)

2023-07-18 12:15:56 浏览数 (3)

简介

Mkdocs 是我比较喜欢的文档系统,用于部署知识库是非常合适的,特别是Mkdocs material组合更是我最为喜欢的。 目前唯一的缺点就是中文搜索方面不足,所有需要手动修改一下,当然如果您和我一样基于Docker部署,那么也可以修改一次到处运行。

DIY开始

依赖 jieba

代码语言:javascript复制
# 如已安装可忽略
pip install jieba -i https://mirrors.aliyun.com/pypi/simple/

修改配置文件

  • mkdocs.yml
代码语言:javascript复制
  plugins:
  - search:
      lang:
          - en
          - ja
      separator: '[s-.] '

mkdocs/contrib/search/search_index.py (需要自行查找该文件位置)

在文件开头,添加 import jieba

找到text = text.replace('u00a0', ' '),并在其上增加一行 text = text.replace('u3000', ' ')

找到 text = re.sub(r'[ tnrfv] ', ' ', text.strip()) ,并在其下增加两行(注意缩进是用 空格)

代码语言:javascript复制
text_seg_list = jieba.cut_for_search(text)
text = " ".join(text_seg_list)
title_seg_list = jieba.cut(title, cut_all=False)
title = " ".join(title_seg_list)
self._entries.append({'title': title,'text': str(text.encode('utf-8'), encoding='utf-8'),'location': loc})

参考资料:

  • 4行代码为Mkdocs实现简单中文搜索
  • MkDocs中文搜索

官方技巧

依赖 pip install jieba -i https://mirrors.aliyun.com/pypi/simple/

在配置文件 mkdocs.yml 添加如下代码

代码语言:javascript复制
plugins:
- search:
    separator: '[su200b-]'

参考资料:Chinese search support

0 人点赞