profile.img
Hayashida.dev

markdownのlintを設定する

Markdown

tl;dr

  • 2022年2月時点でMarkdownのlint項目には50個のルールがあるらしい
  • 興味がてらMarkdownのlintを設定する方法を記載した
  • チームのドキュメント開発に導入しようと思うレベルではないのだが、 Markdownの記載方法がブレる事例を集約したものなので どのようなルールがあるのか眺めることは良いことだと思う

設定ファイルを配置する

.markdownlint.ymlをレポジトリのルートに配置する

touch .markdownlint.yml

ルール一覧はこちらにあるので、無効にしたいものをfalseにする

MD040: false

MD040はコードブロックに言語指定を必須とするというルールであるが、必ずしも必須にする必要もないと思いfalseにしている

Docker上で実行する

`markdownlint-cliをインストールして実行する方法があるが、
Lintツールの類いはDocker経由で実行したいので、avto-dev/markdown-lintを利用する

$dirを格納先のパスに変更して、ディレクトリ単位で一括で実行するコマンドは以下のようになる

docker run --rm -v "$(pwd):/data" \
  -e INPUT_CONFIG=/data/.markdownlint.yml \ 
  avtodev/markdown-lint:v1 /data/$dir

GitHub Actions上で実行する

引き続き docker://avtodev/markdown-lint:v1のイメージを使う

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Lint markdown file
        uses: docker://avtodev/markdown-lint:v1
        with:
          args: '**/*.md'
          config: '.markdownlint.yml'

まとめ

これで継続的なLintチェックが可能となる
当ブログでも設定しているので、参考にしてほしい