一次在github上询问作者的经历¶
约 676 个字 • 17 行代码
2023-09-11
stage 1¶
作者让创建一个最小复制件然后上传,
Creating a reproduction - Material for MkDocs (squidfunk.github.io)
我大致的操作过程是,创建一个新的mkdocs项目,然后按文档说的 在 mkdocs.yml
文件中添加必要的配置,
-
基本上必须的
-
报错的地方
然后 mkdocs build
一下,出现了报错,(如果没有应该就是继续按原来的配置添加可能导致报错的配置,不断尝试直到出现报错)
再按文档说的,添加生成错误报告的插件
最后再 mkdocs build
一次,但是这次需要能连接上 github (要挂梯子),然后会在项目根目录生成一个 zip 文件
stage 2¶
作者回复,将 search
中的 lang
选项全部去除即可
但在我去除后,仍产生了一行报错
...
WARNING - Language 'zh' is not supported by Lunr.js, not setting it in the 'plugins.search.lang' option
...
怀疑是由于使用了语言切换的插件 i18n
中设置的 zh
导致的,
将插件的配置代码注释掉之后,再次配置,发现报错信息消失(所以确定报错信息是由于在i18n插件中设置了 zh
相关的配置产生的)
在查看了 mkdocs-static-i18n
的官方文档(Installation - MkDocs static i18n plugin documentation (en) (ultrabug.github.io))之后,发现插件有个选项可以不更改mkdocs-material原有的内置search插件的配置
Setting up search - MkDocs static i18n plugin documentation (en) (ultrabug.github.io)
然后发现这是新版本才有的选项,所以将原有版本 v0.5.6
更新为 v1.0.3
,但新版本的语言配置也改变,Setting up languages - MkDocs static i18n plugin documentation (en) (ultrabug.github.io),
(其余的一些关于新版变化的发现可见于手册18)
经过调整和选项的设置,最后报错信息消失了。
但是搜索功能的中文分割仍然不能用,向作者再次询问
stage 3¶
作者回复他尝试了,可以正常使用
经过尝试,发现需要将 theme
设置中的 language
设置成 zh
才能使搜索的中文支持正常(不加就不行),并向作者反映
作者回复,因为设置了 language: zh
会自动配置搜索分割(search separator),如果没有设置 language: zh
,则需要手动添加相应的搜索分割(search separator),参考Chinese search support - Material for MkDocs (squidfunk.github.io)
但是我看到他给出的github里的文件里,设置的的分割要更多( "search.config.separator": "[\\s\\u200b\\u3000\\-、。,.?!;]+",
),所以我选取了那个文件里的配置添加到我的 mkdocs.yml
文件里
- search:
separator: '[\\s\\u200b\\u3000\\-、。,.?!;\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'
原本为:
经过测试,搜索中文支持能够正常使用,并且 i18n
插件也能正常使用
创建日期: 2023-09-13