eyecatch thumbnail

Markdown リンター決定版の markdownlint を pre-commit 化してコーディングスタイルを自動修正する方法

Profile picture
ルッチ / Lucci
2022.06.17

Contents

まとめ

  • markdownlint を pre-commit を使って自動適用する方法を紹介
  • markdown のコーディングスタイルは乱れがちなので自動リンターを導入すべし
  • pre-commit は開発環境を快適にするめちゃ便利ツール

はじめに

mark-konig-SP5odY8jGLA-unsplash.jpg

突然ですが質問です、 Markdown のコーディングスタイルって乱れてませんか?

Python や Ruby、JavaScript のコーディングスタイルは整っているのに、 Markdown で書かれている README とか docs ディレクトリの中身だけやたらと乱れている、 なんてことはないでしょうか?

Markdown のコーディングスタイルが気になる人と特に気にならない人が混在していて、 コーディングスタイルが気になる人だけ、無駄に気疲れしてるかもしれません。

多くの人の開発環境をなるべく快適にするために、この記事で紹介する、 「pre-commit を利用した Markdown コーディングスタイルの自動修正」 を試してみてください。

それでは、どうぞ!

pre-commit のインストール

kari-shea-1SAnrIxw5OY-unsplash.jpg

まず最初に pre-commit をインストールします。

brewpip コマンドでインストールできるので、ターミナルで以下のコマンドを実行してください。

# 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 コーディングスタイルの指定

marcus-ganahl-W5qgKZj-qnk-unsplash.jpg

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 の有効化

lance-asper--uEIBNhwrDo-unsplash.jpg

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 のコーディングルールを上書き変更する方法 を参照してください。

おわりに

markus-spiske-j2s9TffBQLk-unsplash.jpg

pre-commit を使って、Markdown リンターの決定版 markdownlint を自動適用する方法の紹介でした。

いかがだったでしょうか?

少しでも「参考になった」「役に立った」と思っていただけたら、 Twitter のフォローをお願いします!

この記事を読んだ方の開発環境が少しでも快適になることを祈っています。

最後までお読みいただきありがとうございました。

今日も良い一日をお過ごしください:)

参考文献


執筆機材


関連記事


大学生へのお知らせ

ここまで記事を読んでくれて本当に嬉しいです、ありがとうございます。

プログラミングを始めたばかりの頃って「やるぞ!」という気持ちは強めですが、 実際に取り組み始めると「何からどうやってどこまでやればいんだ?」 という感じで羅針盤を失うことが多いような気がします。(実体験)

そんな勉強熱心で向上心高めなんだけど目指す姿が曖昧な大学生の方に感謝の意も込めて、就職活動までサポートするプログラミングスクール「レバテックカレッジ」を紹介します。↓

Levtech-college

「自走力」のあるエンジニアを最短3ヶ月で目指せるカリキュラムが月額30,000円で用意されていて、 現段階の「目指す姿が曖昧で何から手をつければいいかわからない状態」から脱却できます。

自分は実際にIT企業で働いていますが、「自走力」のあるエンジニアの方にはいつも助けられています。

なので、目指す姿が曖昧な人はとりあえずレバテックカレッジが導いてくれる 「自走力のあるエンジニア」を目指してみるのはスタートダッシュとしてはアリです。

レベルアップしてからジョブチェンするのはRPGでも常套手段ですし、 レバテックカレッジで一通りのスキルを習得してから自分の目指す姿を再定義するといいかもです。

「自走力のあるエンジニア」って実際どんなエンジニアなの? 何から手をつければいいかわからないから教えて欲しい、 という人は上のテキストリンク/画像リンクから「無料相談会」への申し込みをお願いします。

よきエンジニアライフを!