japanese/docs/history/MARKDOWN_LINTING_COMPLETE.md
panli ef3df73166 refactor: 三层架构重构 + 配置文件 + 项目目录整理
清洗管线重构为严格三层架构:
- tango_analyser.py(底层:单词分析)
- task_processor.py(中层:文件 I/O、桶管理)
- workflow.py(顶层:状态机、任务推进)
- 移除旧的 batch_processor.py

新增配置文件系统:
- config.py:TOML 配置,相对路径相对配置文件目录解析
- 查找优先级 --config > cwd > 项目根 > ~ > 默认值
- count=None 语义为处理到文件末尾

项目目录整理:
- 根脚本归档到 scripts/analysis 与 scripts/legacy
- 文档归档到 docs/{design,history,analysis}
- 临时报告移到 reports/(已 gitignore)

文档质量:
- 新增 .markdownlint.json 与 scripts/mdlint.cmd
- 修复全部 14 个 md 文件的 markdownlint 警告

测试:74 passed(8 cleaner + 31 workflow + 6 tango + 15 validator + 14 config)
2026-08-19 19:40:02 +08:00

198 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Markdown Linting 完成总结
## ✅ 所有警告已修复
**验证结果**0 个 markdownlint 错误
---
## 🔧 建立的自动化机制
### 1. 配置文件 `.markdownlint.json`
项目根目录的配置文件VSCode markdownlint 扩展和 CLI 工具共享:
```json
{
"$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/main/schema/markdownlint-config-schema.json",
"default": true,
"MD013": false,
"MD033": false,
"MD041": false,
"MD060": { "style": "compact" }
}
```
**规则说明**
- `MD013: false` — 关闭行长度限制(中文排版需要更大灵活性)
- `MD033: false` — 允许 HTML 标签(某些文档需要)
- `MD041: false` — 不强制首行为 h1README 可能有徽章等)
- `MD060: { "style": "compact" }` — 表格管道符只需左右各一个空格(解决 CJK 字符宽度对齐问题)
### 2. 检查脚本 `scripts/mdlint.cmd`
一键检查所有 markdown 文件:
```batch
@echo off
REM 使用方法:
REM scripts\mdlint.cmd 检查所有 md 文件
REM scripts\mdlint.cmd --fix 自动修复机械问题
W:
cd \python\japanese
npx -y markdownlint-cli %* "**/*.md"
```
**使用示例**
```bash
# 检查所有 markdown 文件
scripts\mdlint.cmd
# 自动修复(空行、表格间距等)
scripts\mdlint.cmd --fix
# 输出 JSON 格式(便于集成)
scripts\mdlint.cmd --json -o report.json
```
---
## 📊 修复统计
### 自动修复的问题markdownlint-cli --fix
- **MD022**25+ 处)— 标题前后缺少空行
- **MD031**15+ 处)— 代码块前后缺少空行
- **MD032**30+ 处)— 列表前后缺少空行
- **MD058**2 处)— 表格前后缺少空行
- **MD060**50+ 处)— 表格列对齐(改为 compact 样式)
### 手动修复的问题
- **MD040**19 处)— 代码块缺少语言标识
- 目录树/格式说明 → `text`
- 状态机图 → `text`
- 编号列表 → `text`
- **MD036**5 处)— 加粗文本作为标题
- WORKFLOW.md 中的 `**3.1 ...**``#### 3.1 ...`
---
## 📝 修复的文件清单
### 根目录2 个)
-`README.md`
-`README_cleaner.md`
### docs/9 个)
-`docs/README.md`
-`docs/design/CONFIG_FILE_DESIGN.md`
-`docs/design/WORKFLOW.md`
-`docs/history/CLEANUP_SUMMARY.md`
-`docs/history/CONFIG_INTEGRATION_COMPLETE.md`
-`docs/history/CONFIG_SIMPLIFICATION.md`
-`docs/history/FINAL_CLEANUP_SUMMARY.md`
-`docs/history/MARKDOWN_LINTING_FIX.md`
-`docs/history/REFACTOR_SUMMARY.md`
-`docs/analysis/REVIEW_ANALYSIS.md`
### scripts/2 个)
-`scripts/analysis/README.md`
-`scripts/legacy/README.md`
### tests/1 个)
-`tests/data/rules.md`
**总计**14 个文件全部修复 ✅
---
## 🎯 核心修复原则
### 1. 表格处理MD060
**问题**CJK 字符在等宽字体中占 2 个字符宽度,但 markdownlint 按 1 个字符计算,导致 `aligned` 样式永远无法满足。
**解决方案**
- 配置文件设置 `"MD060": { "style": "compact" }`
- `compact` 样式只要求管道符左右各一个空格:`| 列 | 列 |`
- 自动修复工具能正确处理 CJK 表格
### 2. 代码块语言MD040
**原则**:根据内容选择合适的语言标识
- `bash` — Shell 命令
- `python` — Python 代码
- `toml` — TOML 配置
- `text` — 纯文本/目录树/格式说明/编号列表
### 3. 空行规范MD022/MD031/MD032/MD058
**原则**:所有块级元素(标题、列表、代码块、表格)前后都要空行
- 提高可读性
- 避免解析歧义
- 自动修复工具能正确处理
### 4. 标题语法MD036
**原则**:独立成行的加粗文本应该使用标题语法
- `**文本**``#### 文本`(根据层级选择)
- 保持文档大纲结构清晰
---
## 🔄 持续集成建议
### CI/CD 集成
在 CI 流程中添加 markdown 检查:
```yaml
# .github/workflows/lint.yml
name: Lint
on: [push, pull_request]
jobs:
markdown:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- run: npx markdownlint-cli "**/*.md"
```
### Pre-commit Hook
`.git/hooks/pre-commit` 中添加:
```bash
#!/bin/sh
npx markdownlint-cli "**/*.md" || {
echo "Markdown lint failed. Run 'scripts/mdlint.cmd --fix' to auto-fix."
exit 1
}
```
### VSCode 设置
团队成员安装扩展后,项目的 `.markdownlint.json` 会自动生效,无需额外配置。
---
## 📖 参考资源
- [markdownlint 规则文档](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md)
- [markdownlint-cli 文档](https://github.com/igorshubovych/markdownlint-cli)
- [配置文件 Schema](https://github.com/DavidAnson/markdownlint/blob/main/schema/markdownlint-config-schema.json)
---
## ✨ 完成状态
**所有 markdown 文件14 个)无警告**
**配置文件已建立**`.markdownlint.json`
**检查脚本已建立**`scripts/mdlint.cmd`
**规则文档已记录**(本文件)
项目现在有了可重复、可维护的 markdown 质量保证机制。