5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

mkdocs-git-revision-date-plugin で MkDocs のページに更新日を表示する

Last updated at Posted at 2021-07-21

MkDocs は Python のプラグインを利用することで様々な拡張ができます。
この記事では、mkdocs-git-revision-date-plugin を使って、Git のコミット日をドキュメントに挿入する方法について説明します。

mkdocs-git-revision-date-plugin とは

Git のコミット日を表示する MkDocs プラグインです。
as_datetime オプションを有効にすることで、Python の datetime 型で受けることができ、strftime によるフォーマットも可能です。

使い方

Python, MkDocs はインストール済のものとして説明します。
MkDocs の利用法は以下の記事が参考になります。

mkdocs-git-revision-date-plugin のインストール

pip install mkdocs-git-revision-date-plugin を実行します。

mkdocs.yml でプラグインを有効にする

mkdocs.yml ファイルの plugins に以下のように記載します。

mkdocs.yml
plugins:
- git-revision-date

ページに更新日を挿入する

MkDocs の template override を利用して、全てのページで更新日が表示されるようにします。
この例では、フッタ部を override します。

まず、以下の構成で custom/ フォルダを作成します。
すでに Template override を利用している場合は、既存のファイルに追記する形になります。

  docs/
  img/
+ custom/
  mkdocs.yml

次に、このフォルダ内に main.html を作成し、以下のように記載します。
Template override の詳細は公式ドキュメントを参照してください。

revision-date-plugin にて取得された各ページの更新日は、page.meta.revision_date で参照できます。
ここでは、デフォルトテーマのフッタブロックに対して、page.meta.revision_date を表示する節を追記しています。

{% extends "base.html" %}

{% block footer %}
<hr>
{%- if config.copyright %}
<p>{{ config.copyright }}</p>
{%- endif %}
<p>{% trans mkdocs_link='<a href="https://www.mkdocs.org/">MkDocs</a>' %}Documentation built with {{ mkdocs_link }}.{% endtrans %}</p>
{% if page.meta.revision_date %}
<small><br><i>Updated {{ page.meta.revision_date }}</i></small>
{% endif %}
{% endblock %}

最後に、override を有効にするため、mkdocs.yml に以下のように記載します。

mkdocs.yml
 theme:
   name: mkdocs
+  custom_dir: custom/

あとは mkdocs buildmkdocs serve でアウトプットを確認します。
フッタ部に更新日が表示されていることが確認できます。

Screen Shot 2021-07-21 at 4.00.22 PM.png

フォーマットする

as_datetime オプションを有効にすることで、Python の datetime 型で受けることができ、strftime によるフォーマットも可能です。

冒頭で説明したように、表記のフォーマットも可能です。

現時点(2022年2月10日)では当該プラグインの最新バージョン(0.3.1)には不具合があり1as_datetime が利用できないため、このオプションを利用する場合は 0.3.0 を利用するようにしてください。

as_datetime を有効にする

mkdocs.ymlplugins の記述を以下の通り変更します。

mkdocs.yml
plugins:
- git-revision-date:
    as_datetime: true

日付をフォーマットする

as_datetime を設定することで、page.meta.revision_datedatetime 型で返ってきます。
ですので、以下のように strftime を呼び出してお好きな形にフォーマットしましょう。

<small><br><i>Updated {{ page.meta.revision_date.strftime("%Y年%m月%d日") }}</i></small>

Screen Shot 2021-07-21 at 4.10.59 PM.png

ほか有用なプラグイン

単に日付をローカライズしたい場合は、mkdocs-git-revision-date-plugin をフォークした mkdocs-git-revision-date-localized-plugin が便利です。
利用方法は mkdocs-git-revision-date-plugin とほぼ同様です。

オプションでタイムゾーンや表示形式を指定できます。
詳細は以下公式ドキュメントが参考になります。

  1. https://github.com/zhaoterryy/mkdocs-git-revision-date-plugin/issues/18

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?