Mkdocs的中文搜索(material主题)

  • A+
所属分类:技术 系统文档

简介

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

DIY开始

  • 依赖 jieba

    # 如已安装可忽略
    pip install jieba -i https://mirrors.aliyun.com/pypi/simple/
  • 修改配置文件

    • mkdocs.yml
      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'[ \t\n\r\f\v]+', ' ', text.strip()) ,并在其下增加两行(注意缩进是用 空格)

        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})

参考资料:

官方技巧

  • 依赖 pip install jieba -i https://mirrors.aliyun.com/pypi/simple/
  • 在配置文件 mkdocs.yml 添加如下代码

    plugins:
    - search:
        separator: '[\s\u200b\-]'

    参考资料:Chinese search support

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: