Markdown代码风格检查与修复Skill markdown

Markdown 代码风格检查与自动修复技能,使用 markdownlint-cli2 工具对 Markdown 文档进行格式验证、问题检测和自动修正。该技能能够确保文档遵循最佳实践,保持一致的格式风格,提高文档质量和可读性。关键词:Markdown 代码风格检查,markdownlint,文档格式化,自动修复,代码规范,文档质量,格式验证,技术文档,开发工具,文档维护。

DevOps 0 次安装 0 次浏览 更新于 2/28/2026

name: markdown description: > 使用 markdownlint-cli2 进行 Markdown 代码风格检查和自动修复。当 Claude 需要:(1) 检查 Markdown 文件的风格问题,(2) 修复 Markdown 格式问题,(3) 确保 Markdown 遵循最佳实践,(4) 验证 Markdown 文档,或 (5) 应用一致的 Markdown 样式时使用。

Markdown 代码风格检查

使用 markdownlint-cli2 进行自动化的 Markdown 验证和修复。

工作流程概览

1. 运行自动修复     → markdownlint-cli2 --fix <文件>
2. 检查剩余问题    → markdownlint-cli2 <文件>
3. 手动修复        → str_replace 处理结构性问题
4. 验证            → markdownlint-cli2 <文件> (应显示 0 个错误)

预期结果:自动修复解决 70-90% 的问题。剩余的 3-5 个问题需要手动修正。

基本命令

# 自动修复单个文件
markdownlint-cli2 --fix document.md

# 检查文件
markdownlint-cli2 document.md

# 多个文件
markdownlint-cli2 --fix file1.md file2.md

# 目录中所有 Markdown 文件
markdownlint-cli2 --fix "**/*.md"

# 使用自定义配置
markdownlint-cli2 --config .markdownlint.json document.md

文件路径

# 已上传的文件
markdownlint-cli2 --fix /mnt/user-data/uploads/document.md

# 工作目录
markdownlint-cli2 --fix /home/claude/document.md

# 输出给用户
cp /path/to/fixed.md /mnt/user-data/outputs/

需要手动修复的问题

自动修复无法解决以下问题 - 它们需要 Claude 的判断:

MD025 - 多个 H1 标题

原因:需要理解文档层次结构
修复:将额外的 H1 转换为适当的级别

# 主标题

# 第二个标题 → 改为:## 第二个标题

MD036 - 强调作为标题

原因:需要确定作者意图
修复:将粗体/斜体替换为正确的标题

**章节标题** → 改为:## 章节标题

MD013 - 行过长

原因:需要决定在何处断行
修复:在自然点(空格、标点符号)处换行

这是一行超过 80 个字符需要换行的非常长的文本。
↓
这是一行超过 80 个字符需要换行的
非常长的文本。

例外:URL 通常豁免

MD041 - 缺少首行标题

原因:需要结构决策
修复:在开头添加 H1 或重新结构化

执行模式

对于已上传的文件

# 1. 自动修复
markdownlint-cli2 --fix /mnt/user-data/uploads/document.md

# 2. 检查剩余问题
markdownlint-cli2 /mnt/user-data/uploads/document.md
# 输出:"Summary: 3 error(s)"
# 列出具体错误,如 "MD025/single-title Multiple top-level headings"

# 3. 手动修复(示例)
str_replace "# 额外标题" → "## 额外标题"

# 4. 验证
markdownlint-cli2 /mnt/user-data/uploads/document.md
# 输出:"Summary: 0 error(s)"

# 5. 输出
cp /mnt/user-data/uploads/document.md /mnt/user-data/outputs/

对于新内容

create_file /home/claude/doc.md "内容..."
markdownlint-cli2 --fix /home/claude/doc.md
markdownlint-cli2 /home/claude/doc.md
# 如有剩余问题则修复
cp /home/claude/doc.md /mnt/user-data/outputs/

配置

创建 .markdownlint.json 来自定义规则:

{
  "default": true,
  "MD013": { "line_length": 120 },
  "MD033": false
}

常见调整

  • "MD013": false - 禁用行长检查
  • "MD013": { "line_length": 120 } - 将限制增加到 120
  • "MD013": { "code_blocks": false } - 排除代码块
  • "MD033": false - 允许 HTML
  • "MD041": false - 不要求首行标题

配置文件搜索顺序

  1. .markdownlint-cli2.jsonc
  2. .markdownlint-cli2.yaml
  3. .markdownlint.jsonc / .markdownlint.json
  4. .markdownlint.yaml / .markdownlint.yml

向用户报告

提供清晰的修复摘要:

✅ Markdown 代码风格检查完成!

初始:18 个错误
自动修复后:4 个错误
手动修复:
  • MD025:将 2 个 H1 标题转换为 H2
  • MD036:将粗体替换为正确标题
  • MD013:换行长行

最终:0 个错误

错误计数解释

自动修复前

  • 0-5:小问题
  • 6-15:中等问题
  • 16+:严重问题

自动修复后

  • 0-2:优秀
  • 3-5:典型
  • 6+:检查是否需要配置

常见修复模式

# 多个 H1 - 首先分析结构
# 如果是章节:转换为 H2
str_replace "# 介绍" → "## 介绍"

# 如果是子章节:转换为 H3
str_replace "# 详情" → "### 详情"

# 强调作为标题 - 确定适当级别
str_replace "**重要**" → "## 重要"
str_replace "_注意_" → "### 注意"

# 长行 - 在自然点处断行
# 连词后:和、但、或
# 标点符号后:, 。 ;
# 保持 URL 在单行

故障排除

自动修复不工作

# 检查文件是否存在
view /path/to/file.md

# 验证权限
ls -l /path/to/file.md

# 使用绝对路径
markdownlint-cli2 --fix /full/path/to/file.md

自动修复后错误太多

# 创建宽松配置
echo '{"MD013": false, "MD041": false}' > .markdownlint.json
markdownlint-cli2 --config .markdownlint.json --fix file.md

特定规则导致问题

  • 在配置中禁用:"MD013": false
  • 或调整参数:"MD013": { "line_length": 120 }

何时不进行代码风格检查

在以下情况下跳过代码风格检查:

  • 代码示例故意违反规则
  • 需要嵌入 HTML/JSX(禁用 MD033)
  • 具有不同约定的生成文档
  • 更改会破坏引用的遗留文档

使用自定义配置禁用有问题的规则。

快速规则参考

Claude 将遇到的最常见规则:

  • MD001 - 标题逐级递增
  • MD004 - 一致的列表标记
  • MD009 - 无尾随空格
  • MD010 - 无硬制表符
  • MD012 - 无多个空行
  • MD013 - 行长(默认:80)
  • MD018 - 标题中 # 后有空格
  • MD022 - 标题周围空行
  • MD025 - 仅单个 H1
  • MD031 - 代码块周围空行
  • MD032 - 列表周围空行
  • MD034 - 尖括号中的裸 URL
  • MD036 - 无强调作为标题
  • MD040 - 代码块的语言

完整规则文档:https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md