Markdown Lint
VMark には、スタイルの好みではなく 正しさの問題 をキャッチする組み込みの Lint エンジンが搭載されています。Lint はオンデマンド(Alt + Mod + V または 表示 → Markdown をチェック)で実行され、結果はインラインに表示されます — WYSIWYG モードでは該当する各ブロックの横に色付きのバーが、ソースモードでは該当するテキストそのものの下に波線が引かれます。ステータスバーのバッジと 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 の実行
| トリガー | アクション |
|---|---|
Alt + Mod + V | アクティブなドキュメントで Lint を実行 |
| 表示 → Markdown をチェック | ショートカットと同じ |
F2 | 次の診断にジャンプ |
Shift + F2 | 前の診断にジャンプ |
ファイルパスを含む Markdown ファイルでは、同期ルールと並行してリンクの存在チェックも自動的に実行されます — Link Check を参照してください。
YAML ファイルでは、入力中にパースエラーがガターにライブ表示され、同じ Alt + Mod + V ショートカットでバッジと F2 ナビゲーションが反映されます。
設定
Lint エンジンには 1 つのユーザー向けトグルがあります:
- 設定 → Markdown → Markdown Lint を有効化 — エンジン全体のオン/オフ
無効化されている場合、ショートカットは何もせず、エディタに診断は表示されません。
関連項目
- Link Check — ローカルリンク/画像の壊れの検出
- 設定 → Markdown → Lint