check-markdownlisted
Install: claude install-skill CloudyWing/ai-dotfiles
# check-markdown
## 執行步驟
### 1. 辨識文件平台
依優先順序偵測:
| 偵測目標 | 判定平台 |
| --- | --- |
| `package.json` 含 `vitepress` 依賴 | VitePress |
| `.vitepress/` 目錄存在 | VitePress |
| `docusaurus.config.js` 存在 | Docusaurus |
| `mkdocs.yml` 存在 | MkDocs (Material) |
| 以上皆無 | GitHub Flavored Markdown(預設) |
若偵測到多個平台特徵,以 `package.json` 依賴為準。
### 2. Alert / Callout 語法對照
| 平台 | 語法格式 |
| --- | --- |
| **GitHub** | `> [!NOTE]`、`> [!TIP]`、`> [!IMPORTANT]`、`> [!WARNING]`、`> [!CAUTION]` |
| **VitePress** | `::: info`、`::: tip`、`::: warning`、`::: danger`、`::: details` |
| **Docusaurus** | `:::note`、`:::tip`、`:::warning`、`:::danger`、`:::info` |
| **MkDocs** | `!!! note`、`!!! tip`、`!!! warning`、`!!! danger`、`!!! info` |
### 3. 通用格式檢查
無論平台皆須檢查:
- **程式碼區塊內容絕對保留原樣**:` ``` ` 圍起的程式碼區塊、行內 `` ` `` 反引號包覆的內容、命令、路徑、版本號一律不修改,僅修正區塊外的格式問題。此為所有格式規則的最高原則。
- **標題層級**:文件應有且僅有一個 `# H1`,後續使用 `##` ~ `####`。
- **空行規則**:標題、清單區塊、程式碼區塊前後各保留一個空行。
- **連結格式**:無斷裂連結(`[text]()` 或 `[](url)` 為錯誤)。
- **圖片替代文字**:`` 中 `alt` 不應為空。
- **清單縮排**:巢狀清單使用一致的縮排(2 或 4 空格)。
- **程式碼區塊語言**:` ``` ` 後應指定語言標記。
### 4. 清單符號規則
- **原檔案已統一**:全 `-` 或全 `*` 則尊重原檔案,不更改。
- **混用情況**:`-` 與 `*` 混用,統一改為 `-`。
- **新產生的清單**:預設使用 `-`。
### 5. 清單結尾符號規則
**不加結尾符號(純列舉型):**
- 名詞、工具名、URL、版本號、路徑、程式碼���別字列舉
**需加結尾符號(說明型):**
- 含動詞或構成完整句子 → 中文用 `。`,英文用 `.`
- 步驟描述、補充說明等敘述型內容
### 6. 表格格式規則
- 分隔列格式:`| --- |` 而非 `|---|`(前後各一空格)。
- 掃描所有表格分隔列並補上缺少的空格。
### 6.5 中英文夾排與標點
#### 中英文間距
- 中文字與英文字母/數字之間,必須有一個半形空格。
- ❌ `C#的IDisposable介面是.NET 6引入的`
- ✅ `C# 的 IDisposabl