V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
huntzhan
V2EX  ›  分享创造

「zhlint」帮助你自动检测与修复 Markdown 文档风格

  •  
  •   huntzhan ·
    huntzhan · 2016-09-16 17:20:58 +08:00 · 3401 次点击
    这是一个创建于 2771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TL; DR:

    • 项目地址: https://github.com/huntzhan/zhlint
    • flake8cpplint 等 Lint 的功能类似,只不过是用来处理中文 Markdown 文档的。
    • 支持文档风格的「检测」与「修复」。
    • 检测功能基本靠谱,修复功能有一些 Cases 还没有处理好。
    • 这是本项目的第一个可用版本,欢迎报 Bug !

    zhlint

    Note: This project is highly related to Chinese, so the document is writtern in Chinese.

    简介

    一个处理文档风格的工具:

    • 支持文档风格的检查(使用 check 命令)。
    • 支持文档风格的自动修复(使用 fix 命令)。

    注意:

    • 目前仅支持 Markdown 格式文档的检测与修复。

    支持的检查项目

    详情见 写作规范和格式规范, DaoCloud 文档

    安装

    pip install zhlint
    

    安装成功后,可执行 zhlint 命令行程序处理文档。

    命令行程序 zhlint 的使用方法

    zhlint check SRC,检查文档风格

    check 命令会检查路径为 SRC 的文件,打印检测到的文档风格错误。示例如下:

    $ ccat doc.md 
    只有中文或中英文混排中,一律使用中文全角标点. 英文 **english**与非标点的中文之间需要有一个空格。
    
    支持简单的错误名词检测,如 APP 、 ios 这类的。
    $ zhlint check doc.md 
    ==========================================
    E101: 英文与非标点的中文之间需要有一个空格
    ==========================================
    LINE: 1
    角标点. 英文 english 与非标点的中文之间需
                  --
    ........................................
    
    ==================================================
    E201: 只有中文或中英文混排中,一律使用中文全角标点
    ==================================================
    LINE: 1
    中文或中英文混排中,一律使用中文全角标
             -
    .....................................
    LINE: 1
    律使用中文全角标点.
             -
    ...................
    
    ==================
    E301: 常用名词错误
    ==================
    LINE: 3
    的错误名词检测,如 APP 、 ios 这类的。
              ---
    ....................................
    LINE: 3
    名词检测,如 APP 、 ios 这类的。
               ---
    ..............................
    
    

    zhlint fix SRC [DST],修复文档风格

    fix 命令会尝试修复路径为 SRC 的文件中出现的风格错误:

    • 如果省略 DST,修复后的文本将打印到标准输出。
    • 如果传入 DST,修复后的文本将写入到 DST

    示例如下:

    $ zhlint fix doc.md 
    只有中文或中英文混排中,一律使用中文全角标点。 英文 **english** 与非标点的中文之间需要有一个空格。
    
    支持简单的错误名词检测,如 App 、 iOS 这类的。
    $ zhlint fix doc.md fixed-doc.md
    $ colordiff doc.md fixed-doc.md 
    1c1
    < 只有中文或中英文混排中,一律使用中文全角标点. 英文 **english**与非标点的中文之间需要有一个空格。
    ---
    > 只有中文或中英文混排中,一律使用中文全角标点。 英文 **english** 与非标点的中文之间需要有一个空格。
    3c3
    < 支持简单的错误名词检测,如 APP 、 ios 这类的。
    ---
    > 支持简单的错误名词检测,如 App 、 iOS 这类的。
    
    第 1 条附言  ·  2016-09-18 10:19:44 +08:00
    10 条回复    2016-09-19 16:24:02 +08:00
    gouchaoer
        1
    gouchaoer  
       2016-09-16 18:54:00 +08:00 via Android
    弄个在线的方便懒人?
    huntzhan
        2
    huntzhan  
    OP
       2016-09-16 18:58:56 +08:00 via iPhone
    @gouchaoer 可以有
    metrue
        3
    metrue  
       2016-09-16 19:02:58 +08:00
    直接作成 vim 插件就更好了。
    huntzhan
        4
    huntzhan  
    OP
       2016-09-16 19:06:45 +08:00
    @metrue Vim 插件好像很难写的样子,不过好像现在流行直接跑个 daemon 然后把 Vim 作为前端这种做法,估计做起来也不算太难。
    xwartz
        5
    xwartz  
       2016-09-16 20:29:13 +08:00
    这个不错,感觉可以集成到 sublime 插件里面去了
    metrue
        6
    metrue  
       2016-09-16 22:10:01 +08:00
    @xwartz 挺简单的,看一下文档,很容易就搞定其实。
    xwartz
        7
    xwartz  
       2016-09-17 11:07:01 +08:00
    @metrue 是的,我直接写过一个自动加空格的 https://github.com/xwartz/auto-spacing ,考虑把你这个功能集成进去
    metrue
        8
    metrue  
       2016-09-17 11:20:25 +08:00
    @xwartz 赞,做好告知一声。
    huntzhan
        9
    huntzhan  
    OP
       2016-09-18 10:19:18 +08:00
    moell
        10
    moell  
       2016-09-19 16:24:02 +08:00
    非常不错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3449 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:25 · PVG 19:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.