Skip to content

A MkDocs plugin for displaying accurate document creation and last modification dates.

License

Notifications You must be signed in to change notification settings

jaywhj/mkdocs-document-dates

Repository files navigation

mkdocs-document-dates

English | 简体中文

A MkDocs plugin for displaying accurate document creation and last modification dates.

Features

  • 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)

Installation

pip install mkdocs-document-dates

Configuration

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

Manual Date Specification

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

Configuration Options

  • type : Date type (default: date )
    • date : Display date only
    • datetime : Display date and time
    • timeago : Display relative time (e.g., 2 minutes ago)
  • locale : Localization (default: en )
    • Supports: zh zh_tw en es fr de ar ja ko ru
  • 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 heading
    • bottom : Display at the end of the document
  • exclude : File exclusion list (default: [] )
    • Supports glob patterns, e.g., ["private/*", "temp.md", "drafts/*.md"]

Notes

  • It still works when using CI/CD build systems (e.g. Github Actions), used a cache file .dates_cache.json to solve this problem:
    1. 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
    
    1. Then update your Markdown document in MkDocs as normal
    2. 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
    3. 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

About

A MkDocs plugin for displaying accurate document creation and last modification dates.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages