Skip to content

sysCat64/markdown-lint-toolkit

Repository files navigation

Markdown Lint Toolkit

Markdown Lint CI

このプロジェクトはMarkdownファイルをチェックするためのLintツールです。PowerShell版とNode.js版の2つの実装が用意されています。

🛠️ セットアップ

必須: VSCode拡張機能

markdownlint 拡張機能のインストールが必須です。

方法1: VSCodeの推奨から(推奨)

プロジェクトを開くと、VSCodeが「推奨される拡張機能があります」と通知します。 「すべてをインストール」 をクリックしてください。

方法2: 手動インストール

VSCode の拡張機能ビューから DavidAnson.vscode-markdownlint を検索してインストール。

Ctrl + Shift + X → "markdownlint" を検索 → インストール

Node.js版を使う場合のみ

npm install

📚 ドキュメント

ドキュメント 対象 内容
CHANGELOG.md ユーザー向け 変更履歴・バージョン情報
DEVELOPMENT.md 開発者向け 設計思想・技術的背景

📋 機能

  • タブ文字の検出 - Tabs(TAB)
  • 末尾空白の検出 - Trailing whitespace(WS)
  • 見出しのフォーマットチェック - 見出しの後に空白が必須(MD018)
  • フェンスコードブロックの閉じ方チェック - バッククォート(```)またはチルダ(~~~)の整合性確認(FENCE)
  • 最初の行のチェック - 最初の内容行は階級1の見出し(# )である必要がある(MD041)

🚀 使い方

PowerShell版

# 実行権限を許可してスクリプト実行
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/markdown-lint.ps1 -Root .

または、VSCode統合タスクから実行:

Ctrl + Shift + B → "lint:markdown (PowerShell)" を選択

Node.js版

※実装のみで動作確認は行っていません🙇。

# 初回のみ依存関係をインストール
npm install

# チェック実行
npm run lint:md

または、VSCode統合タスクから実行:

Ctrl + Shift + B → "lint:markdown (Node.js)" を選択

⚙️ 設定

.markdownlint.json

Markdown Lint の細かいルール設定:

{
  "default": true,
  "MD013": false,        // 行の長さチェック(無効)
  "MD040": false,        // ブロッククォートのフォーマット(無効)
  "MD046": { "style": "fenced" },  // コードブロックはフェンス形式
  "MD004": { "style": "dash" }     // リスト記号はダッシュ(-)
}

.markdownlintignore

除外対象フォルダ(例):

bin/               # ビルド出力
obj/               # ビルドメタデータ
wwwroot/           # 静的ファイル
Design/            # デザイン資産
log/               # ログファイル
node_modules/      # npm依存関係
.vs/               # Visual Studioメタデータ
_site/             # ドキュメント生成出力
dist/              # フロントエンドビルド出力
build/             # ビルド出力
coverage/          # テストカバレッジ

🔄 環境の選択

環境 コマンド 対応OS
PowerShell scripts/markdown-lint.ps1 Windows(必須)
Node.js npm run lint:md Windows / macOS / Linux

推奨: クロスプラットフォーム対応が必要な場合は Node.js版を使用してください。

📝 チェック結果の見方

README.md:10:MD018: Heading must have a space after #
README.md:15:WS: Trailing whitespace

形式: ファイル名:行番号:ルール: メッセージ

🔧 カスタマイズ

PowerShell版で除外フォルダを追加

scripts/markdown-lint.ps1 の先頭の $IgnoreDirs 配列にフォルダを追加:

$IgnoreDirs = @("bin","obj","wwwroot","Design","log","node_modules",".vs","_site","dist","build","coverage","your-folder")

Node.js版で除外フォルダを追加

.markdownlintignore に1行ずつ追加:

your-folder/

🧪 テスト

このプロジェクトには、各ルールの動作を検証するテストファイルが含まれています。

テストの実行(tests/ フォルダのみをチェック)

# PowerShell版でテストを実行(testsを含める)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/markdown-lint.ps1 -Root . -IncludeTests

# Node.js版でテストを実行(tests配下のみ)
npm run lint:md:tests

注: 通常の Lint チェック(プロジェクト全体)では、tests/ フォルダは自動的に除外されます。テスト目的の時のみ上記のコマンドを使用してください。

テストファイル一覧

ファイル 検証内容 期待される検出
tests/valid.md エラーなしの正しいMarkdown 0件
tests/invalid-tabs.md Tab文字の検出 TAB (2件)
tests/invalid-trailing-ws.md 末尾空白の検出 WS (4件)
tests/invalid-heading.md 見出しのスペースエラー MD018 (2件)
tests/invalid-fence.md フェンスブロック未閉じ FENCE (1件)
tests/invalid-first-line.md 最初の行が見出しでない MD041 (1件)

合計で 10件のエラー が検出されることで、ツールが正常に動作していることを確認できます。

📦 ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください。

About

Markdown Lint Toolkit

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors