Skip to main content

mkdocs-metadata-enricher-plugin

PyPI - Version PyPI - Python Version License

A MkDocs plugin that enriches your sitemap.xml and search index with git revision dates. It automatically injects the last commit date for each page based on git history, making your sitemap SEO-friendly and search results more informative.

Features

  • 🔄 Sitemap enrichment: Automatically updates sitemap <lastmod> dates with git revision dates
  • 🔍 Search index enrichment: Adds formatted git dates to search results
  • 📅 Flexible date formatting: Choose from date, datetime, iso_date, iso_datetime, or custom formats
  • 🌍 Timezone & locale support: Display dates in any timezone and language
  • 🎯 Theme agnostic: Works with any MkDocs theme
  • ⚡ Independent formatting: Search index dates are formatted independently from page display dates
  • 🔗 Seamless integration: Works alongside mkdocs-git-revision-date-localized-plugin

Installation

Install the plugin using pip:

pip install mkdocs-metadata-enricher-plugin

Or with uv:

uv add mkdocs-metadata-enricher-plugin

Quick Start

1. Enable the plugin in mkdocs.yml

plugins:
  - search

  # Must run BEFORE metadata-enricher to provide git data
  - git-revision-date-localized:
      type: date
      enable_creation_date: false

  # Our plugin for enriching sitemap & search index
  - metadata-enricher:
      enrich_sitemap: true
      enrich_search: true
      search_date_type: datetime
      search_locale: en

2. Build your docs as usual

mkdocs build

That's it! Your sitemap.xml and search index will now include git revision dates.

Configuration

Basic Options

Option Type Default Description
enrich_sitemap bool True Add git dates to sitemap.xml <lastmod> tags
enrich_search bool True Add formatted dates to search index entries

Search Index Date Formatting

When enrich_search: true, you can customize how dates appear in search results:

Option Type Default Description
search_date_type str iso_date Date format: date, datetime, iso_date, iso_datetime, or custom
search_custom_format str %d. %B %Y Python strftime format when search_date_type: custom
search_timezone str UTC Timezone for date display (e.g., Europe/Amsterdam)
search_locale str en Locale code for date localization (e.g., en, de, fr)

Date Format Examples

search_date_type: iso_date (default)

2021-04-27

search_date_type: iso_datetime

2021-04-27 13:11:28

search_date_type: date with search_locale: en

April 27, 2021

search_date_type: datetime with search_locale: en

April 27, 2021 13:11:28

search_date_type: custom with search_custom_format: "%d/%m/%Y"

27/04/2021

Full Configuration Example

site_name: My Documentation
docs_dir: docs
site_dir: site

plugins:
  - search

  - git-revision-date-localized:
      type: date
      timezone: Europe/Amsterdam
      locale: en

  - metadata-enricher:
      enrich_sitemap: true
      enrich_search: true
      search_date_type: datetime
      search_timezone: Europe/Amsterdam
      search_locale: en
      search_custom_format: "%d. %B %Y"  # Only used if search_date_type: custom

Why Use This Plugin?

Problem

Out-of-the-box MkDocs generates sitemaps and search indexes with build dates, not actual revision dates. This is suboptimal for:

  • SEO: Search engines prefer pages with accurate <lastmod> timestamps
  • User experience: Users want to know when docs were actually updated
  • Search results: Search indexes don't show update information

Solution

This plugin:

  1. Extracts the actual last commit date for each page from git history
  2. Injects it into sitemap.xml for SEO benefits
  3. Formats and adds it to the search index so users see up-to-date info
  4. Works independently with flexible date formatting

Requirements

  • MkDocs >= 1.0
  • Python >= 3.9
  • Git (for reading commit history)
  • mkdocs-git-revision-date-localized-plugin >= 0.14.0

Supports

  • Python 3.9, 3.10, 3.11, 3.12
  • MkDocs themes: Material, ReadTheDocs, any theme

Contributing

Contributions are welcome! See DEVELOPMENT.md for how to set up your development environment.

License

MIT License - see LICENSE for details.

Metadata

Release files for mkdocs-metadata-enricher-plugin 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mkdocs-metadata-enricher-plugin 0.4.0
File Size Uploaded Provenance
mkdocs_metadata_enricher_plugin-0.4.0.tar.gz 97.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mkdocs-metadata-enricher-plugin 0.4.0
File Interpreter ABI Platform
mkdocs_metadata_enricher_plugin-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 105.5 kB

Release files / mkdocs_metadata_enricher_plugin-0.4.0.tar.gz

Download URL mkdocs_metadata_enricher_plugin-0.4.0.tar.gz
Size 97.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1e8e19fb1e757a5a91ecc9243bc80438c7494109549afaf9c28d723429cc627f
BLAKE2b-256 checksum
How to use checksums
ab870f20e357151f4efe5bf9177236c935ceca09627bebd87265f7cdb7536ed7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 16, 2026.

Transparency log

Release files / mkdocs_metadata_enricher_plugin-0.4.0-py3-none-any.whl

Download URL mkdocs_metadata_enricher_plugin-0.4.0-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fddb9e576e4ac5e376a0e1413b9975ebc1f85587a5787730a2821865289877f5
BLAKE2b-256 checksum
How to use checksums
02cdc42b1c0ae9d85bcfba17274541b43024af1039f04a8bd6fa9069dd4e9dc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 16, 2026.

Transparency log

Security for mkdocs-metadata-enricher-plugin 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for mkdocs_metadata_enricher_plugin-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page