前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mkdocs的中文搜索(material主题)

Mkdocs的中文搜索(material主题)

作者头像
爱技术的小黄鸭
发布2023-07-18 12:15:56
5080
发布2023-07-18 12:15:56
举报
文章被收录于专栏:IT小圈IT小圈

简介

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'[ \t\n\r\f\v]+', ' ', 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})

参考资料:

官方技巧

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

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

代码语言:javascript
复制
plugins:
- search:
    separator: '[\s\u200b\-]'

参考资料:Chinese search support

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • DIY开始
  • 官方技巧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档