English | 简体中文
A MkDocs plugin for displaying accurate document creation and last modification dates.
- Automatically displays document creation and last modification times
- No Git dependency, uses filesystem timestamps directly
- Supports manual date specification in
Front Matter
- Cross-platform support (Windows, macOS, Linux)
- Support for multiple time formats (date, datetime, timeago)
- Flexible display position (top or bottom)
- Support for document exclusion
- Material Design icons, Elegant styling
- Lightweight with no extra dependencies
- Multi-language support
- Support for CI/CD build systems (e.g. Github Actions)
pip install mkdocs-document-dates
Just add the plugin to your mkdocs.yml:
plugins:
- document-dates
Or, customize the configuration:
plugins:
- document-dates:
type: date # Date type: date | datetime | timeago, default: date
locale: en # Localization: zh zh_tw en es fr de ar ja ko ru, default: en
date_format: '%Y-%m-%d' # Date format
time_format: '%H:%M:%S' # Time format (valid only if type=datetime)
position: bottom # Display position: top (after title) | bottom (end of document), default: bottom
exclude: # List of file patterns to exclude
- temp.md # Exclude specific file
- private/* # Exclude all files in private directory, including subdirectories
- drafts/*.md # Exclude all markdown files in the current directory drafts, but not subdirectories
You can also manually specify the date of a Markdown document in its Front Matter
:
---
created: 2023-01-01
modified: 2025-02-23
---
# Document Title
- type : Date type (default:
date
)date
: Display date onlydatetime
: Display date and timetimeago
: Display relative time (e.g., 2 minutes ago)
- locale : Localization (default:
en
)- Supports:
zh zh_tw en es fr de ar ja ko ru
- Supports:
- date_format : Date format (default:
%Y-%m-%d
)- Supports all Python datetime format strings, e.g., %Y-%m-%d, %b %d, %Y, etc.
- time_format : Time format (default:
%H:%M:%S
) - position : Display position (default:
bottom
)top
: Display after the first headingbottom
: Display at the end of the document
- exclude : File exclusion list (default: [] )
- Supports glob patterns, e.g., ["private/*", "temp.md", "drafts/*.md"]
- It still works when using CI/CD build systems (e.g. Github Actions), used a cache file
.dates_cache.json
to solve this problem:- First, you can configure the workflow like this (penultimate line) in your .github/workflows/ci.yml:
... - run: pip install mkdocs-document-dates - run: mkdocs gh-deploy --force
- Then update your Markdown document in MkDocs as normal
- After running git add and git commit, you will see the auto-generated cache file .dates_cache.json (hidden by default) in the
docs
folder under MkDocs- Make sure you have installed python3 ahead of time and set environment variables
- Finally, run git push, and you can see that there are also .dates_cache.json files in the docs directory in the GitHub repository, which means success
- Priority of time reads:
Front Matter
>Cache file
>Filesystem timestamp
- If you are using MkDocs on a Linux system, the modification time is used as the creation time because of system limitations. If you need the exact creation time, you can specify it manually in Front Matter