Markdown Lint
VMark には、スタイルの好みではなく 正しさの問題 をキャッチする組み込みの Lint エンジンが搭載されています。Lint はオンデマンド(Cmd-Shift-L または ツール → Markdown をチェック)で実行され、結果はガター(行番号エリア)の波線としてインラインに表示されます。ステータスバーのバッジと F2 キーで検出箇所を移動できます。
Lint が対象とするもの・しないもの
VMark の Lint は 正しさ のチェッカーです:
- 壊れたクロスリファレンス
- 未定義のリンク/フットノート参照
- 閉じられていないコードフェンス
- 列数が一致しないテーブル
- レベルが飛んでいる見出し(h1 → h3)
- alt テキストのない画像
- 空のリンクテキストまたは空の
href
VMark の Lint は スタイル強制ツールではありません。以下の項目はフラグ付けされません:
- 行の長さ
- リストマーカーのスタイル(
-vs*) - 強調マーカーのスタイル(
_vs*) - 見出しスタイル(
#vs アンダーライン) - 行末の空白
スタイル強制には、VMark の外で prettier --check のような別のツールを使用してください。
ルールリファレンス
| ルール ID | 重要度 | 説明 |
|---|---|---|
| E01 | エラー | 未定義の参照: [link][missing] が存在しない定義を指している |
| E02 | エラー | テーブルの行の列数が誤っている(ヘッダー行と不一致) |
| E03 | エラー | リンクが逆向き — (text)[url] が [text](url) ではなく書かれている |
| E04 | エラー | ATX 見出しの # の後にスペースがない(例: ##Heading は ## Heading であるべき) |
| E05 | エラー | 強調マーカーの内側にスペースがある — * word * はイタリックとしてレンダリングされない |
| E06 | エラー | 閉じられていないコードフェンスブロック — ファイルが開かれた ``` フェンスで終了している |
| E07 | エラー | リンク参照定義の重複(同じ [label]: が 2 回現れる) |
| E08 | エラー | 空のリンク href — [text]() |
| W01 | 警告 | 見出しレベルが飛んでいる(h2 が予期されたが h3 が見つかった) |
| W02 | 警告 | 画像に alt テキストがない — アクセシビリティ |
| W03 | 警告 | 未使用のリンク参照定義(定義されているがリンクされていない) |
| W04 | 警告 | アンカーフラグメントがどの見出しにもマッチしない — 存在しないセクションへの #section |
| W05 | 警告 | 空のリンクテキスト — [](url) |
| M001 | エラー | 画像ファイルがローカルパスに見つからない |
| M002 | エラー | リンク先のファイルがローカルパスに見つからない |
| Y001 | エラー | YAML パースエラー(YAML ファイル用) |
| Y002 | 警告 | YAML パース警告(YAML ファイル用) |
Lint の実行
| トリガー | アクション |
|---|---|
Cmd + Shift + L(macOS)/ Ctrl + Shift + L(Win/Linux) | アクティブなドキュメントで Lint を実行 |
| ツール → Markdown をチェック | ショートカットと同じ |
F2 | 次の診断にジャンプ |
Shift + F2 | 前の診断にジャンプ |
ファイルパスを含む Markdown ファイルでは、同期ルールと並行してリンクの存在チェックも自動的に実行されます — Link Check を参照してください。
YAML ファイルでは、入力中にパースエラーがガターにライブ表示され、同じ Cmd-Shift-L ショートカットでバッジと F2 ナビゲーションが反映されます。
設定
Lint エンジンには 1 つのユーザー向けトグルがあります:
- 設定 → Markdown → Markdown Lint を有効化 — エンジン全体のオン/オフ
無効化されている場合、ショートカットは何もせず、ガターに診断は表示されません。
関連項目
- Link Check — ローカルリンク/画像の壊れの検出
- 設定 → Markdown → Lint