Contents
まとめ
- markdownlint を pre-commit を使って自動適用する方法を紹介
- markdown のコーディングスタイルは乱れがちなので自動リンターを導入すべし
- pre-commit は開発環境を快適にするめちゃ便利ツール
はじめに
突然ですが質問です、 Markdown のコーディングスタイルって乱れてませんか?
Python や Ruby、JavaScript のコーディングスタイルは整っているのに、 Markdown で書かれている README とか docs ディレクトリの中身だけやたらと乱れている、 なんてことはないでしょうか?
Markdown のコーディングスタイルが気になる人と特に気にならない人が混在していて、 コーディングスタイルが気になる人だけ、無駄に気疲れしてるかもしれません。
多くの人の開発環境をなるべく快適にするために、この記事で紹介する、
「pre-commit
を利用した Markdown コーディングスタイルの自動修正」
を試してみてください。
それでは、どうぞ!
pre-commit のインストール
まず最初に pre-commit
をインストールします。
brew
か pip
コマンドでインストールできるので、ターミナルで以下のコマンドを実行してください。
# brew の場合
$ brew update
$ brew install pre-commit
# pip の場合
$ pip install pre-commit
他のコマンドでもインストールできるので、上記の2つのコマンドでインストールしたくない/できない人は、 pre-commit > Install を参照してください。
正常に pre-commit
がインストールされたか判断するために、
pre-commit
のバージョンを確認しておくと良いでしょう。
$ pre-commit --version
pre-commit 2.9.3
Markdown コーディングスタイルの指定
pre-commit
のインストールが完了したら、適用するコーディングスタイルを指定しましょう。
今回は、Markdown のコーディングスタイルなので、 Markdown リンターの決定版である markdownlint を指定します。
コーディングスタイルを指定するには .pre-commit-config.yaml
ファイルを新規作成し
(既にこのファイルがある人は上書きし)、以下のコードを追加してください。
repos:
- repo: https://github.com/jumanjihouse/pre-commit-hooks
rev: master
hooks:
- id: markdownlint
これで pre-commit
のコーディングスタイルの設定は完了です。
もしも他の pre-commit
のフックがいいなと思ったり、
他の Markdown のリンターがいいなと思った人は、
pre-commit > hooks を参照してください。
pre-commit の有効化
pre-commit
のインストールと、
コーディングスタイルの指定が完了したところで、
最後に pre-commit
を有効化します。
pre-commit
を有効化するにはコマンドを一発だけ打てば ok です。
Git で管理されているプロジェクトのトップディレクトリに移動してから、以下のコマンドを実行してください。
$ pre-commit install
pre-commit installed at .git/hooks/pre-commit
これで pre-commit
の有効化が完了しました。
これ以降 .pre-commit-config.yaml
で指定したコーディングスタイルのチェックが自動的に行われます。
コーディングスタイルに違反している場合は、エラーログが出力されてコミットに失敗します。
エラーログに従って、コーディングスタイルに合うように修正すれば、コミットが成功します。
ここで注意して欲しいのは、コーディングスタイルに違反している場合は、
何度コミットしようとしてもエラーになってしまうということです。
Markdown は割と自由度の高い言語なので、markdownlint
のコーディングスタイルに従いたくない、
むしろ従えない、という要求が出てくるかと思います。
(自分は、「文書の始めに h1 がないとダメ」というルールに従えませんでした)
そういうときは、markdownlint
のコーディングスタイルのルールを変更しましょう。
ルールを変更すれば、いくつかのコーディングルールを除外できて、
自分たちの望み通りのコーディングスタイルを適用できるようになります。
この markdownlint
のコーディングルールの変更方法は、
markdownlint のコーディングルールを上書き変更する方法
を参照してください。
おわりに
pre-commit
を使って、Markdown リンターの決定版 markdownlint
を自動適用する方法の紹介でした。
いかがだったでしょうか?
少しでも「参考になった」「役に立った」と思っていただけたら、 Twitter のフォローをお願いします!
この記事を読んだ方の開発環境が少しでも快適になることを祈っています。
最後までお読みいただきありがとうございました。
今日も良い一日をお過ごしください:)
参考文献
執筆機材
- Xiser Pro Trainer (ステッパー)
- HHKB Professional 墨 (キーボード)
- HHKB キートップセット 白 (キートップ)
- Apple Magic Mouse 2 (マウス)
- Apple MacMini (PC)
- iiyama Display 27inch FullHD (ディスプレイ)
- KINTO UNITEA 550ml (コップ)