Package: zhlint
# zhlintNote: This project is highly related to Chinese, so the document is writtern in Chinese.## 简介一个处理文档风格的工具：* 支持文档风格的检查（使用 `check` 命令）。* 支持文档风格的自动修复（使用 `fix` 命令）。注意：* 目前仅支持 Markdown 格式文档的检测与修复。## 安装与使用### 使用 pip 安装```pip install zhlint```安装成功后，可执行 `zhlint` 命令行程序处理文档。### 检查文档风格`zhlint check SRC` 命令会检查输入 `SRC`，并将检测到的文档风格错误输出到 stdout。参数 `SRC` 可为：* 文件路径。* `-`，表示 stdin。示例如下：```shell$ 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]` 命令会尝试修复 `SRC` 中出现的风格错误，参数 `SRC` 可以为文件路径或者 `-`：* 如果省略 `DST`，修复后的文本将打印到标准输出。* 如果传入 `DST`，修复后的文本将写入到 `DST`。示例如下：```shell$ zhlint fix doc.md只有中文或中英文混排中，一律使用中文全角标点。 英文 **english** 与非标点的中文之间需要有一个空格。支持简单的错误名词检测，如 App、iOS 这类的。$ zhlint fix doc.md fixed-doc.md$ colordiff doc.md fixed-doc.md1c1< 只有中文或中英文混排中,一律使用中文全角标点. 英文 **english**与非标点的中文之间需要有一个空格。---> 只有中文或中英文混排中，一律使用中文全角标点。 英文 **english** 与非标点的中文之间需要有一个空格。3c3< 支持简单的错误名词检测，如 APP、ios 这类的。---> 支持简单的错误名词检测，如 App、iOS 这类的。```## 支持的检查项目| 错误码 | 检查范围 | 描述                                                                           || ------ | -------- | ------------------------------------------------------------------------------ || E101   | 段落     | 英文与非标点的中文之间需要有一个空格                                           || E102   | 段落     | 数字与非标点的中文之间需要有一个空格                                           || E103   | 段落     | 除了`％`、`℃`、以及倍数单位（如 `2x`、`3n`）之外，其余数字与单位之间需要加空格 || E104   | 段落     | 书写时括号中全为数字，则括号用半角括号且首括号前要空一格                       || E201   | 句子     | 只有中文或中英文混排中，一律使用中文全角标点                                   || E202   | 句子     | 如果出现整句英文，则在这句英文中使用英文、半角标点                             || E203   | 段落     | 中文标点与其他字符间一律不加空格                                               || E204   | 句子     | 中文文案中使用中文引号`「」`和`『』`，其中`「」`为外层引号                     || E205   | 段落     | 省略号请使用`……`标准用法                                                       || E206   | 段落     | 感叹号请使用`！`标准用法                                                       || E207   | 段落     | 请勿在文章内使用`~`                                                            || E301   | 段落     | 常用名词错误                                                                   |详情见 [写作规范和格式规范，DaoCloud 文档](http://docs-static.daocloud.io/write-docs/format)。以下是各项错误的简单示例。其中，*触发样例* 是违反规则的实例，*非触发样例* 是符合文档风格的实例。### E101描述：英文与非标点的中文之间需要有一个空格。触发样例：```中文english中文  english中文\tenglish```非触发样例：```中文 english```### E102描述：数字与非标点的中文之间需要有一个空格。触发样例：```中文42中文  42```非触发样例：```中文 42```### E103描述：除了`％`、`℃`、以及倍数单位（如 `2x`、`3n`）之外，其余数字与单位之间需要加空格。触发样例：```42μ42  μ```非触发样例：```42 μ42x42n42％42%42℃Q3136-4321-1234word2vec```### E104描述：书写时括号中全为数字，则括号用半角括号且首括号前要空一格。触发样例：```中文(42）中文（42)中文（42）中文(42)中文  (42)(42)```非触发样例：```中文 (42)(42)```### E201描述：只有中文或中英文混排中，一律使用中文全角标点。触发样例：```有中文, 错误.中文'测试'中文"测试"LaTeX 公式 $$.LaTeX 公式,$$LaTeX 公式 \(\).LaTeX 公式,\(\)```非触发样例：```有中文，正确。有中文，正确......P.S. 这是一行中文。LaTeX 公式 $$LaTeX 公式 \(\)邮箱：programmer.zhx@gmail.com有中文，1.0有中文，www.google.com链接地址 http://google.com```### E202描述：如果出现整句英文，则在这句英文中使用英文、半角标点。触发样例：```pure english，nothing wrong。```非触发样例：```pure english, nothing wrong.```### E203描述：中文标点与其他字符间一律不加空格。触发样例：```中文， 测试中文 。测试「 中文」```非触发样例：```中文，测试中文；测试「中文」```### E204描述：中文文案中使用中文引号`「」`和`『』`，其中`「」`为外层引号。触发样例：```中文‘测试’中文“测试”```非触发样例：```中文「测试」```### E205描述：省略号请使用`……`标准用法。触发样例：```中文...中文.......中文。。。```非触发样例：```中文......```### E206描述：感叹号请使用`！`标准用法。触发样例：```中文!!中文！！中文!！中文??中文？？中文？?```非触发样例：```中文!中文！中文?中文？```### E207描述：请勿在文章内使用`~`。触发样例：```中文~```非触发样例：```中文```### E301描述：常用名词错误。触发样例：```APPappandroidiosIOSIPHONEiphoneAppStoreapp storewifiWifiWi-fiE-mailEmailPSpsPs.```非触发样例：```AppAndroid```