MkDocs plugin that enables displaying the date of the last git modification of a page. The plugin uses babel and timeago.js to provide different localized date formats. Initial fork from mkdocs-git-revision-date-plugin.
(Example when used together with the mkdocs-material theme)
Install the plugin using pip3
with the following command:
pip3 install mkdocs-git-revision-date-localized-plugin
Next, add the following lines to your mkdocs.yml
:
plugins:
- search
- git-revision-date-localized
If you have no
plugins
entry in your config file yet, you'll likely also want to add thesearch
plugin. MkDocs enables it by default if there is noplugins
entry set.
This plugin needs access to the last commit that touched a specific file to be able to retrieve the date. By default many build environments only retrieve the last commit, which means you might need to:
Change your CI settings
- mkdocs-material offers native support for this plugin, see setup instructions
In your markdown files you can use the {{ git_revision_date_localized }}
tag anywhere you'd like:
Last update: {{ git_revision_date_localized }}
You can customize an existing theme by overriding blocks or partials and using the page.meta.git_revision_date_localized
tag.
To add a revision date to the default mkdocs
theme by adding a overrides/partials
folder to your docs
folder and updating your mkdocs.yml
file:
theme:
name: mkdocs
custom_dir: docs/overrides
And then adding a new file docs/overrides/content.html
with the following content:
content.html
<!-- Overwrites content.html base mkdocs theme, taken from
https://github.com/mkdocs/mkdocs/blob/master/mkdocs/themes/mkdocs/content.html -->
{% if page.meta.source %}
<div class="source-links">
{% for filename in page.meta.source %}
<span class="label label-primary">{{ filename }}</span>
{% endfor %}
</div>
{% endif %}
{{ page.content }}
{% if page.meta.git_revision_date_localized %}
<small>Last update: {{ page.meta.git_revision_date_localized }}</small>
{% endif %}
When writing your own custom themes you can use the page.meta.git_revision_date_localized
jinja tag:
{% if page.meta.git_revision_date_localized %}
Last update: {{ page.meta.git_revision_date_localized }}
{% endif %}
You can style the output using CSS: the date outputs are always wrapped in <span class='git-revision-date-localized-plugin git-revision-date-localized-plugin-{type}></span>
(where {type}
is replaced with the type
option set in the plugin).
You can customize the plugin by setting options in mkdocs.yml
. For example:
plugins:
- git-revision-date-localized:
type: timeago
timezone: Europe/Amsterdam
locale: en
fallback_to_build_date: false
enable_creation_date: true
exclude:
- index.md
Default is date
. To change the date format, set the type
parameter to one of date
, datetime
, iso_date
, iso_datetime
or timeago
. Example outputs:
28 November, 2019 # type: date (default)
28 November, 2019 13:57:28 # type: datetime
2019-11-28 # type: iso_date
2019-11-28 13:57:26 # type: iso_datetime
20 hours ago # type: timeago
Default is UTC
. Specify a time zone database name (reference). This option is especially relevant when using type: datetime
and type: iso_datetime
. Note that when using timeago (with type: timeago
) any difference in time zones between server and client will be handled automatically.
Default is None
. Specify a two letter ISO639 language code to display dates in your preferred language.
- When not set, this plugin will look for
locale
orlanguage
options set in your theme. If also not set, the fallback is English (en
) - When used in combination with
type: date
ortype: datetime
, translation is done using babel which supports these locales - When used in combination with
type: timeago
then timeago.js is added to your website, which supports these locales. If you specify a locale not supported by timeago.js, the fallback is English (en
)
Default is false
. If set to true
the plugin will use the time at mkdocs build
instead of the file's last git revision date when git is not available. This means the revision date can be incorrect, but this can be acceptable if you want your project to also successfully build in environments with no access to GIT.
Default is false
. If set to true
, you will be able to use {{git_creation_date_localized}}
in markdown files and page.meta.git_creation_date_localized
in page templates.
Default is empty. Specify a list of page source paths (one per line) that should not have a revision date included (excluded from processing by this plugin). This can be useful for example to remove the revision date from the front page. The source path of a page is relative to your docs/
folder. You can also use globs instead of full source paths. To exclude docs/subfolder/page.md
specify in your mkdocs.yml
a line under exclude:
with - subfolder/page.md
. Some examples:
# mkdocs.yml
plugins:
- git-revision-date-localized:
exclude:
- index.md
- subfolder/page.md
- another_page.md
- folder/*
Contributions are very welcome! Please read CONTRIBUTING.md before putting in any work.