🧹 lint-md/core

June 4, 2026 · View on GitHub

让中文 Markdown 写作更规范、更一致。

Lint your Chinese Markdown for cleaner, more consistent writing.

lint-md/core 是 lint-md 体系中的规则引擎核心,专注解决中文 Markdown 在团队协作中的一致性问题。它基于 AST 执行规则检查与自动修复,适用于文档、博客、知识库等长期维护场景。

stars npm version npm downloads license

✨ 特性

  • 专注中文 Markdown 规范:围绕中文写作场景设计规则与自动修复能力。
  • 规则可配置、可扩展:支持按规则粒度配置等级与参数,也支持扩展规则。
  • 高性能处理能力:4 vCPU 环境下,处理 1000 篇文档耗时 4s 内。
  • 生态封装完善:可接入 CLI、Prettier、ESLint、VSCode,也欢迎按业务场景继续封装。

🚀 快速使用

从 API 到结果处理,核心只需要一个方法即可完成 lint/fix。当前对外仅提供 1 个核心 APIlintMarkdown

lintMarkdown(markdown: string, rules?: LintMdRulesConfig, isFixMode?: boolean)

参数说明:

参数说明
markdown要检查的 Markdown 字符串
rules规则配置,默认 {}
isFixMode是否开启自动修复,默认 true

返回结果:

  • lintResult:命中规则后的诊断结果列表(含规则名、位置信息、消息、级别)
  • fixedResult:开启修复模式时返回修复后的文本,否则为 null

下面是一个最小示例,可直接作为接入起点:

import { lintMarkdown } from '@lint-md/core';

const markdown = '中文English 123';

const result = lintMarkdown(markdown, {
  'space-around-alphabet': 2,
  'space-around-number': 2,
  'no-long-code': [1, { length: 100, exclude: [] }]
}, true);

console.log(result.lintResult);
console.log(result.fixedResult);

no-long-codeexclude 用于排除指定代码语言(如 ['dot', 'mermaid'])的长度检查。

📏 书写规则列表

目前内置 16 个规则,覆盖大部分的中文规则。

规则名说明可配置可修复
space-around-alphabet中文与英文之间需要空格
space-around-number中文与数字之间需要空格
no-empty-code-lang代码块语言不能为空
no-empty-url链接/图片地址不能为空
no-empty-list列表项内容不能为空
no-empty-code代码块内容不能为空
no-empty-inline-code行内代码内容不能为空
no-empty-blockquote引用块内容不能为空
no-special-characters文本中不能有特殊字符
use-standard-ellipsis使用标准省略号
no-full-width-number不能使用全角数字
no-space-in-link链接内容前后不能有空格
no-multiple-space-blockquote引用头部和内容间只能有一个空格
correct-title-trailing-punctuation标题末尾标点需合法
no-space-in-inline-code行内代码内容前后不能有空格
no-long-code代码块行长度不能超过限制

欢迎大家提交需求,或者提交 PR 新增规则。

🔌 生态封装

lint-md 提供了多个常用场景的官方封装,可按你的工程工具链直接接入:

也欢迎大家提交新的生态封装(Issue / PR),我们会持续收录。

📄 License

MIT © hustcc