3 Star 2 Fork 2

Gitee 极速下载 / lint-md

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/hustcc/lint-md
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Lint Markdown 2.0

⚠️ 提示:你现在看到的是 2.0 版本,如果要查看 1.x 版本请切换到 1.x 分支。

Lint Markdown 是检查中文 Markdown 编写格式的工具,让你的文档更加优雅规范。

npm npm

新版特点

重构文本修复算法,fix 能力性能提升上百倍。

底层 Markdown 解析库 remark 迁移至最新版。

支持多线程 lint & fix。

体验更好的命令行输出提示。

项目架构完全重构,代码质量大幅提升,更方便 contribute 😄。

快速开始

我们提供了两种使用的方式,命令行和 Node.js API,前者适合大部分用户使用(推荐),后者适合更加定制化的 Lint 需求。

使用命令行(CLI)

安装依赖

npm install -g @lint-md/cli

命令示例

# 校验当前目录下的 test.md 文件
lint-md test.md

# 校验当前目录下的 test.md 文件,并修复之
lint-md test.md --fix

# 校验 examples 目录下所有的 Markdown 文件,并修复之
lint-md examples/**/* --fix

# 校验 examples 目录下所有的 Markdown 文件,指定 config.json 为配置文件(配置文件语法见下文)
lint-md examples/**/* --config=config.json

# 校验 examples 目录下所有的 Markdown 文件,仅存在 warning 时程序正常退出(warning 不会阻断 CI)
lint-md examples/**/* --suppress-warnings

# 校验 examples 目录下所有的 Markdown 文件,并开启多线程模式(线程数 === CPU 核心数)
lint-md examples/**/* --threads

# 校验 examples 目录下所有的 Markdown 文件,并开启多线程模式(线程数 === 8)
lint-md examples/**/* --threads=8

配置文件

默认情况下重新会读取根目录下的 .lintmdrc JSON 文件(如果有的话),下面是一个案例,表示将 no-empty-code 这条规则的等级设置为 warning,同时为 no-long-code 这条规则配置了自定义的选项:

{
  "rules":{
    "no-empty-code": 1,
    "no-long-code": [2, {
      "length": 100,
      "exclude": ["dot"]
    }]
  }
}

其中 key 为对应规则的名称,value 是一个数字或者对象。

如果是一个数字,那么表示规则的等级:

  • 0:忽略(off),不检查该规则
  • 1:警告(warning),仅出现警告,程序正常退出,不会阻断 CI
  • 2:错误(error),出现错误,程序异常退出,会阻断 CI

如果是一个数组,那么数组的第一项为数字,表示该规则的等级;第二个为规则的配置参数。

API 一览

Options:
  -v, --version                  output the version number(查看当前版本)
  -c, --config [configure-file]  use the configure file, default .lintmdrc(使用配置文件,默认为 .lintmdrc)
  -f, --fix                      fix the errors automatically(开启修复模式)
  -d, --dev                      open dev mode(开启开发者模式)
  -t, --threads [thread-count]   The number of threads. The default is based on the number of available CPUs.(执行 Lint / Fix 的线程数,默认为 CPU 核心数)
  -s, --suppress-warnings        suppress all warnings, that means warnings will not block CI(抑制所有警告,这意味着警告不会阻止 CI)
  -h, --help                     display help for command(查看帮助)

使用 Node.js API

TODO

规则概述

检查规则来源于 chinese-document-style-guide.

规则 详细描述 解决办法 可自动修复
space-around-alphabet 中文与英文之间需要增加空格 对应提示的位置增加空格
space-around-number 中文与数字之间需要增加空格 对应提示的位置增加空格
no-empty-code-lang 代码语言不能为空 在代码块语法上增加语言
no-empty-url 链接和图片地址不能为空 填写完整的 url,或者不使用链接和图片语法
no-empty-list list 内容不能为空 删除空的 list 或者补充内容
no-empty-code 代码块内容不能为空 删除空的代码块,或者填充代码内容
no-empty-inline-code 行内代码块内容不能为空 删除空的行内代码块,或者填充代码内容
no-empty-blockquote 引用块内容不能为空 删除空的引用块,或者填充内容
no-special-characters 文本中不能有特殊字符 可能是复制出来的特殊字符,删除特殊字符即可
use-standard-ellipsis 使用标准规范的省略号 使用标准规范的省略号‘……’ / ‘...’
no-fullwidth-number 不能用全角数字 注意输入法切换为半角输入
no-space-in-link 链接前后不能有空格 删除链接内容的前后空格
no-multiple-space-blockquote 引用块头部和内容间只能有一个空格 删除多余的空格
correct-title-trailing-punctuation 标题末尾只能使用合适的标点符号(允许问号、叹号、省略号) 删除标题最后不合法的标点符号
no-space-in-inline-code 行内代码内容前后不能有空格 删除行内代码中的前后空格
no-long-code 代码块不能有过长的代码(代码长度可配置,见下文) 对展示代码做格式上的修改 x

可配置的规则

no-long-code 接受两个可配置参数:

  • length: 每行代码接受的最大长度,数字,默认值为 100
  • exclude: 可以配置部分代码类型不做长度检查,字符串数组,默认值为 []

贡献代码

目前仅仅检查了比较通用的类型,欢迎 Pull Request,在 rules 中增加自己的规则,注意:

  • 规则主要针对于中文 Markdown 的编写规范
  • 规则名称对应和插件文件名保持一致
  • 先提 issue 进行讨论
  • 开发 rule 时可以使用 AST 工具 来辅助开发

License

MIT@hustcc.

MIT License Copyright (c) 2019 hustcc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

lint-md 用于检查中文 markdown 编写格式规范的命令行工具,基于 AST 开发,且方便集成 ci 展开 收起
JavaScript 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/mirrors/lint-md.git
git@gitee.com:mirrors/lint-md.git
mirrors
lint-md
lint-md
master

搜索帮助