Daring Fireball: Markdown
CommonMark
MacDown Open Source Markdown Editor
Marked
GitHub Flavored Markdown
zhiqiang
V2EX  ›  Markdown

mkdocs 搜索如何支持中文?

  •  
  •   zhiqiang · Nov 22, 2018 · 9906 views
    This topic created in 2753 days ago, the information mentioned may be changed or developed.

    不知道这里用 mkdocs 的人多不。

    目前 mkdocs 官方还不支持中文。

    在网上找了一些方法,都无法正常搜索中文。有操作过的人来说一说?

    10 replies    2021-01-09 00:16:50 +08:00
    chungzhao
        1
    chungzhao  
       Nov 22, 2018
    没见过 mkdocs 的项目有搜索的(或者是我看过的 mkdocs 项目很少?),用 vuepress 吧
    RYAN0UP
        2
    RYAN0UP  
       Nov 22, 2018 via Android
    zhiqiang
        3
    zhiqiang  
    OP
       Nov 22, 2018
    @RYAN0UP 对。这个怎么弄的?
    RYAN0UP
        4
    RYAN0UP  
       Nov 22, 2018 via Android
    @zhiqiang 不知道耶😂,好像是这个主题带的
    shinytea2017
        5
    shinytea2017  
       Nov 22, 2018
    不想自己折腾的话, 直接使用 mkdocs-material: A Material Design theme for MkDocs

    可搜索中文, 单词肯定支持, 句子不知道.
    saulshao
        6
    saulshao  
       Nov 22, 2018
    我大概研究过一下,但是我对于中文搜索的需求没那么急迫,因此并没有真正实践。
    原因很简单:
    mkdocs 使用的主题,是一个 js 插件包,这个包建立的搜索索引,不支持任何东方语言(双字节字符集)。
    为此,你可以替换那个关于搜索的插件文件,但是可能要做一些额外的配置(抱歉我没有继续研究)。
    #5 提到的这个信息我头一次听说。我建议你直接根据他说的尝试一下,应该这个主题是替换过我说的插件包的。
    kingsonl
        7
    kingsonl  
       Nov 22, 2018
    支持的,可参考楼上思路谷哥一下有相关教程。
    zhaojames077
        8
    zhaojames077  
       Nov 22, 2018 via iPhone
    我记得是需要把 mkdocs 源码里的 lunar.js 替换为国人修改的版本
    zhiqiang
        9
    zhiqiang  
    OP
       Nov 27, 2018
    汇报一下最后的方案。

    主题是没办法替换的,因为原主题已经集成了一些东西。

    替换 js 文件之前就试过,没成功,而且替换之后每次升级就需要重新操作,太麻烦。

    后来是自己写了一个简单的 js 文件,不用索引,直接强搜所有文档。几十个文档,也瞬间就能搜完。
    ccreading
        10
    ccreading  
       Jan 9, 2021 via Android
    @zhiqiang 兄弟可以分享下写的 js 吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   933 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 19:38 · PVG 03:38 · LAX 12:38 · JFK 15:38
    ♥ Do have faith in what you're doing.