こんにちは。Kaneyasuです。
最近は、開発においてAIエージェントを活用する機会が増えてきました。
便利ではありますが、AIが生成したマークダウンは、独特の癖があり、markdownlintのルールに引っかかることが多いです。
そこで、今回は私がAIが生成したマークダウンに対して使用しているmarkdownlintの除外設定例を共有します。
markdownlintとは
markdownlintは、Markdownファイルのスタイルと構文をチェックするためのツールで、VSCodeの拡張機能としても利用できます。
VS Codeの拡張機能としてmarkdownlintを使用した場合、エディタ上でリアルタイムにMarkdownの問題を検出してくれます。
検出してくれるのはいいのですが、AIが生成したマークダウンに対しては、結構な数の警告が出てしまいます。
これを放っておくと警告に対する感度が鈍ってしまい、本当に重要な警告を見逃してしまう可能性があります。
markdownlintの除外設定
あまりにも多数出る警告に対しては除外設定が有効です。
そもそも警告が出るようなマークダウンを生成しないようにAIに指示するのが理想ですが、コンテキストやプロンプトを調整してもなかなかうまくいかないことも多いです。
したがって、ある程度は除外設定を行うのが現実的と考えています。
除外設定は、プロジェクトルートに.markdownlint.jsonというファイルを作成し、そこに設定を記述します。
私の場合は以下のような設定にしています。
{
"MD022": false,
"MD024": false,
"MD029": false,
"MD031": false,
"MD032": false,
"MD036": false
}
MD022などは、markdownlintのルール番号です。
各ルールの詳細については、markdownlintのGitHubリポジトリに書かれています。
上記の設定で除外しているルールの内容は以下の通りです。
これらのルールは、コンテキストやプロンプトを工夫しても、あまり改善されないことが多いため、除外した方が効率的と考えています。
| ルール番号 | 内容 |
|---|---|
| MD022 | Headings should be surrounded by blank lines 見出しの前後に空行が必要 |
| MD024 | Multiple headings with the same content 重複した見出しを禁止 |
| MD029 | Ordered list item prefix 順序付きリストの番号形式を統一 |
| MD031 | Fenced code blocks should be surrounded by blank lines コードブロックの前後に空行が必要 |
| MD032 | Lists should be surrounded by blank lines リストの前後に空行が必要 |
| MD036 | Emphasis used instead of a heading 見出しの代わりに強調表示を使用している |
どなたかの参考になれば幸いです。
