Skip to main content

mkdocs-extrafiles

PyPI License Tests Code Style Coverage Status

mkdocs-extrafiles is a lightweight MkDocs plugin that allows you to add files and directories from outside MkDocs document directory (docs_dir) to your MkDocs site build.

Features

  • Pull individual files or glob patterns from anywhere outside your docs_dir.
  • Resolve relative paths against the MkDocs configuration directory.
  • Create real source File objects at build time.
  • Automatically watch added sources during live reload (mkdocs serve).

Installation

From PyPI

pip install mkdocs-extrafiles

or, with astral-uv:

uv add mkdocs-extrafiles

From source

git clone https://github.com/your-username/mkdocs-extrafiles.git
cd mkdocs-extrafiles
pip install .

Quickstart

  • src accepts absolute paths or paths relative to the MkDocs config file.
  • dest accepts relative paths to the docs_dir; during a build they are created in site_dir.

Glob patterns (*, ?, []) require dest to end with / to indicate a directory target.

Configuration

Enable the plugin and list the external sources inside mkdocs.yml:

plugins:
  - search
  - extrafiles:
      files:
        - src: README.md # file
          dest: external/README.md
        - src: LICENSE # file -> rename/relocate
          dest: external/LICENSE.txt
        - src: assets/** # glob (copies all matches)
          dest: external/assets/ # must end with '/' to indicate a directory

Behavior

  • mkdocs serve: Sources are streamed directly; nothing is copied into docs_dir, but live reload will watch the resolved absolute paths.
  • mkdocs build: Virtual files are materialized into site_dir, so deployments that publish only the build output still include the added sources.
  • Missing sources will result in a FileNotFoundError exception.

Troubleshooting

If you are using mkdocs-gen-files then you must place extrafiles after mkdocs-gen-files in your plugin settings.

plugins:
  - search
  - gen-files:
      scripts:
        - gen_ref_pages.py
  - extrafiles:
      files:
        - src: ../README.md
          dest: extras/README.md

Developer Guide

Set up a development environment with uv:

uv sync --all-extras --all-groups
uv run pytest tests
uv run ruff check
uv run ruff format

Key Development Principles

  • Maintain 100% passing tests, at least 80% test coverage, formatting, and linting before opening a pull request.
  • Update docstrings alongside code changes to keep the generated reference accurate.

Document Generation

Documentation is generated using MkDocs. The technical reference surfaces the reStructuredText style docstrings from the package's source code.

uv sync --group docs

# Run the development server
uv run mkdocs serve -f mkdocs/mkdocs.yaml
# Build the static site
uv run mkdocs build -f mkdocs/mkdocs.yaml

Contributing

Contributions are welcome! To get started:

  1. Fork the repository and create a new branch.
  2. Install development dependencies (see the developer guide).
  3. Add or update tests together with your change.
  4. Run the full test, linting, and formatting suite locally.
  5. Submit a pull request describing your changes and referencing any relevant issues.

For major changes, open an issue first to discuss your proposal.

License

Distributed under the GNU General Public License v3.0. See LICENSE for details.

Contact

Questions or issues? Please open an issue on the repository's issue tracker.

Metadata

Release files for mkdocs-extrafiles 1.0.1

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-extrafiles 1.0.1
File Size Uploaded Provenance
mkdocs_extrafiles-1.0.1.tar.gz 86.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mkdocs-extrafiles 1.0.1
File Interpreter ABI Platform
mkdocs_extrafiles-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 117.8 kB

Release files / mkdocs_extrafiles-1.0.1.tar.gz

Download URL mkdocs_extrafiles-1.0.1.tar.gz
Size 86.2 kB
Tags Source
SHA-256 checksum
How to use checksums
79c2a07ca64d25765c5606e85c1bdcf78c243c84c719694a3fc420a3ed558801
BLAKE2b-256 checksum
How to use checksums
188432abff96515cd382ab2400d832ad8beeb6e5f729dc5d3ece9dce03acf3a9
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 Nov 5, 2025.

Transparency log

Release files / mkdocs_extrafiles-1.0.1-py3-none-any.whl

Download URL mkdocs_extrafiles-1.0.1-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eef6bfdfb9165eb44bab47bdb63438dff70433029b55b844378575d7182b5c37
BLAKE2b-256 checksum
How to use checksums
c38dfb0e8b4624c88a82c750713cfbe7c9d7a2309144b1b20e16abc127ce1058
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 Nov 5, 2025.

Transparency log

Security for mkdocs-extrafiles 1.0.1

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_extrafiles-1.0.1.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 Nov 5, 2025.

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