はじめに
VSCode拡張機能のmarkdownlintをしばらく使っていましたが、特に設定をしていませんでした。
普段Hugoで記事を書く中で、HTMLタグの使用制限や文書頭H1のlintを停止したいと思い公式ドキュメントを参照したところ、他にも便利そうな機能があったため、ピックアップしました。
対象読者
- VSCodeユーザ
- すぐに答えが知りたい人
- ノンプログラマ
そうでない人は公式ドキュメントへどうぞ。
markdownのコーディングルールはこちら。
選択的にlintを停止する方法
ユーザ・ワークスペース・フォルダに対して適用
settings.json
に下記を追記する。
"markdownlint.config": {
// インラインHTMLの制限を解除
"MD033": false,
// H1がなくてもOK
"MD041": false,
}
もしくはルートディレクトリ下の.markdownlint.json
に下記のように記述します。
ただしこの場合、settings.json
は無効となり、後述の方法で継承することもできないと思われます。(確認不足かも)
{
"MD033": false,
"MD041": false,
}
.markdownlint.json
適用の優先順位は以下で、構成が見つかるとそれより下位の構成は無視されます。
つまり自動的に継承はされないため、継承したい場合は明示します。
- 同一ディレクトリ内
- 親ディレクトリ内
- プロジェクトルート
- settings.json
- デフォルトの構成
一部に適用
一部のみに例外を適用したい場合は以下のように設定します。
例: 画像の代替テキストを省略する
<!-- markdownlint-disable MD045 -->
![](path_img)
<!-- markdownlint-enable MD045 -->
継承
"extends": "相対パス"
で.markdownlint.json
を継承します。
以下、例が続きます。
root\
├ .markdownlint.json
├ dir1\
│ └ file1.md
└ dir2\
├ .markdownlint.json
└ file2.md
{
// インラインHTMLの制限を解除
"MD033": false,
// H1がなくてもOK
"MD041": false,
}
{
// 親ディレクトリの.markdownlint.jsonを継承
"extends": "../.markdownlint.json",
// 代替テキストの制限
"MD045": false
}
## h2
<code>inline HTML</code>
![](img)
<!-- ↑ file1.mdのみlint -->
正直使いどころがわかりませんが、手段として知っておく分にはよかったかなという印象です。
まとめ
基本的にはsettings.json
で"MD001": false
などと指定しておけばいいですね。
指定すべきMarkdownのコーディングルールはこちら。(再掲)