コンテンツにスキップ

Mdformat tips

Mdformat は、Markdown ファイルに一貫したスタイルを適用するために使用できる、独自の Markdown フォーマッタです。
コードはpythonで作成されています。

公式ドキュメント

https://mdformat.readthedocs.io/en/stable/index.html

インストール

公式ドキュメント: Installingを確認してください。pip,poetry,pre-commitでインストールすることはできました。

使い方

公式ドキュメント: Command line usageを確認してください。

Info

  • 後述するプラグインを使用する場合、コマンド単体では実行方法がわかりませんでした。
  • プラグインを使用する場合はpre-commit hookであれば実行できました。
  • Contributingからプラグインはpre-commit前提で作成する必要があるようです。

pre-commit hookでの指定

引数に--checkをつけるとフォーマットまで実行されずにチェックまで実行されます。 フォーマットする場合は--checkの指定を無効にします。

1
2
3
4
5
6
7
8
9
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.17
    hooks:
      - id: mdformat
        args: ["--check"]
        additional_dependencies:
          - mdformat-admon
          - mdformat-footnote
          - mdformat-frontmatter

プラグイン

公式ドキュメント: Pluginsを参照してください。

使用したプラグイン

mdformat-admon

MkDocsのadmonitionsのためのmdformatプラグインです。

経緯として、mdformatを使用していたところ、以下のように変換されることがわかりました。

変換前
1
2
3
!!! info
    - test1
    - test2
変換後
1
2
3
!!! info
\- test1
\- test2

mkdocs serveを実行すると、admonitionsの表示は下記のようになります。

admonitions_ng

これは意図した表示ではありませんでした。この現状を解消するためにmdformat-admonを使用しました。

公式ドキュメントに従いフックを設定します。

1
2
3
4
5
6
  - repo: https://github.com/executablebooks/mdformat
    rev: 0.7.17
    hooks:
      - id: mdformat
        additional_dependencies:
          - mdformat-admon

結果、mdformatによる変換は行われずに意図した表示を確認できました。

admonitions_ok

Info

2023/08/12時点では以下の通りサポート対象はmkdocsのみとのことです。
将来的にはGitHubのadmonitionsにも対応予定とのことです。

This plugin currently only supports admonitions that start with !!! ... and won't modify admonitions for Github, which should cover most use cases. Future work is planned for other types.

コメント