ブログ向け markdownlint 設定例
このブログでは markdownlint を使ったチェックを回してから記事を更新するようにしています。今日はその設定例を紹介したいと思います。
markdownlintについて
DavidAnson/markdownlint: A Node.js style checker and lint tool for Markdown/CommonMark files.
markdownlint
is a static analysis tool for Node.js with a library of rules to enforce standards and consistency for Markdown files. It was inspired by - and heavily influenced by - Mark Harrison’s markdownlint for Ruby. The initial rules, rule documentation, and test cases came directly from that project.
名前のとおり Markdown のリンターです。Visual Studio Code の拡張機能でちょっと有名なやつです。
読み方:リント
lint 【linter】
lintとは、コンピュータプログラムなどのソースコードを読み込んで内容を分析し、問題点を指摘してくれる静的解析ツール。また、そのようなツールで解析を行うこと。ツールを指す場合は “linter” (リンター)と呼ぶこともある。
大前提として、このブログを生成している Hexo では記事は全て Markdown で書いています。なので、記事のファイルに対して Linter によるチェックを行おうというものです。
ウチのブログでは markdownlint のCLIツールである markdownlint-cli をCIに組み込んで、更新のたびにすべての記事をひととおりチェックするようにしています。
markdownlint によるチェックは思ったよりかなり厳密で、全部ガチガチにチェックするとけっこうウザいです。
技術書のようなお堅い文章を書いているわけではなくただの適当な日記なのでそこまでせんでも、というところなのですが軽めに Markdown の記法チェックはしておきたいなーという温度感なので、今日はそんな人向けのゆるめな設定例を紹介してみたいと思います。
インストール
公式みてくれ、で済む話ですが、npm でインストールするだけです。
npm install -g markdownlint-cli |
設定例
VSCode の拡張機能である markdownlint でも、CLIツールの markdownlint-cli でも設定内容に関しては共通なので多少の参考にはなると思います。
markdownlint-cli では .markdownlint.yml に無効する設定項目を記載します。ウチでは以下の設定を無効にしています。日本語でコメントつけているので無効にしている設定の内容はコメントを見てください。逆にチェックを行いたい項目については .markdownlint.yml に記載しなければチェックされます。
.markdownlint.yml
# Docs |
ちなみに全ての設定項目についてはこちらを参考にしてください。
markdownlint/Rules - DavidAnson/markdownlint
CIへの導入
ここで markdownlint の実行を行なっています。
サイトのビルドをGitHub Actionsで行うように変えました | Jpsern.com
抜粋内容
jobs:
# デプロイの前にテストを実行
# これがコケた場合デプロイは行われない
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# 前述で作成したアクションをここで呼んでいます
- name: Setup Node.js and Yarn
uses: ./.github/actions/setup
- name: Markdownlint
run: yarn run mdlint
感想
たかだか個人のブログでそこまでやらなくてもいいような気はします
好奇心でやってみたい人は参考にしてみてください。
ちなみに
この記事を追加した際に 記法エラーでmarkdownlintに怒られました。 (実話)