[go: up one dir, main page]

Skip to content
Oleh Prypin edited this page May 2, 2023 · 202 revisions

The list of MkDocs plugins has moved:


This page contains a list of some 3rd-party MkDocs plugins, organized in the following categories:

⚙️ Site management
💬 Internationalization & localization
🧭 Navigation & page building
🔍 Search & tables of content
🔗 Links & references
🖌️ HTML processing & CSS styling
📝 Code execution, variables & templating
📁 Reusing content, snippets & includes
:octocat: Git repos & info
💻 API documentation building
📜 Authoring
📄 PDF & site conversion
📖 Blogging
🌐 Web services
📚 Citations & bibliography
🖼️ Images, Tables, Charts & Graphs
➕ Other
✔️ Example & custom plugins

Site management

Readme Card

PyPI - Downloads
  • author: Joseph Doiron jdoiro3
  • links: PyPI | Github
  • installation: pip install mkdocs-multirepo-plugin
PyPI - Downloads

Build multiple documentation in a single Mkdocs. Designed for large codebases.

This plugin enables you to build multiple sets of documentation in a single Mkdocs. It is designed to address writing documentation in Spotify’s largest and most business-critical codebases (typically monoliths or monorepos).

  • Support for multiple docs/ folders in Mkdocs. Having a single docs/ folder in a large codebase is hard to maintain. Who owns which documentation? What code is it associated with? Bringing docs closer to the associated code enables you to update them better, as well as leverage folder-based features such as [GitHub Codeowners].

  • Support for multiple navigations. In Spotify, large repositories typically are split up by multiple owners. These are split by folders. By introducing multiple mkdocs.yml files along with multiple docs/ folder, each team can take ownership of their own navigation. This plugin then intelligently merges of the documentation together into a single repository.

  • Support across multiple repositories. Using Git Submodules it is possible to merge documentation across multiple repositories into a single codebase dynamically.

  • The same great Mkdocs developer experience. It is possible to run mkdocs serve in the root to merge all of your documentation together, or in a subfolder to build specific documentation. Autoreload still works as usual. No more using symlinks!

Note: This plugin is in beta. Whilst it is not expected to significantly change in functionality, it may not yet be fully compatible with other Mkdocs configuration and thus may break with some advanced configurations. Once these have been resolved and all bugs have been ironed out, we will move this to a stable release.

PyPI - Downloads

A bit like monorepo, but keeps MkDocs projects separate.

This CLI tool allows you to build multiple MkDocs documentation projects and generate a landing page for them.

Unlike monorepo, multirepo doesn't merge projects into one.

Instead, multirepo adds the MkDocs projects as Git submodules, builds them individually, and generates an HTML landing page based on a template file.

PyPI - Downloads

Yet Another Multirepo Plugin is another take on how to aggregate content from multiple source code repositories.

Through mkdocs-yamp, users can define a list of repositories that are cloned into a local directory within the docs directory, allowing them to reference markdown files in arbitrary locations within the navigational page tree.

Lets you integrate standalone MkDocs git submodules into a main repo.

  • author: Jakub Zárybnický inuits
  • links: GitHub | Docs
  • installation: pip install git+https://github.com/inuits/mkdocs-subsite
PyPI - Downloads

Allows to merge mkdocs documentations dynamically

simple (mkdocs-simple-plugin)

PyPI - Downloads

Lets you build a doc site from markdown files and comments interspersed within your code. With this plugin, documentation files no longer need to be relegated to a dedicated docs folder. They can live alongside -- or within -- your source code.

Support for navigation You can specify the navigation paths and titles for the documentation within your code, the same way you normally would with mkdocs. Simply consider the location of the mkdocs.yml file as the root of your site.

Autoreload Auto-reload works on any file that was previously generated by this plugin.

Auto-generate configuration Includes helper program mkdocs_simple_gen to automatically generate configuration file.

Docker integration Create a local mkdocs site in any directory.

semiliterate (mkdocs-semiliterate)

PyPI - Downloads

Extends Allison Thackston's simple with easy content inclusion from one file into another. With this addition and a couple of other tweaks, aims to provide a comfortable and reasonably complete environment for a "semiliterate" programming and documentation style.

PyPI - Downloads

Lets you build different versions of documentation. For example, a newer versions of some software may work differently from an older version and it is important that users of an older version of the software reads the appropriate version of the documentation in order to ensure that the user has the correct information and uses the software appropriately.

PyPI - Downloads

Although not technically a mkdocs plugin, it should be listed here. mike is a Python utility to easily deploy multiple versions of your MkDocs-powered docs to a Git branch, suitable for deploying to Github via gh-pages. Supported by mkdocs-material (see versioning).

PyPI - Downloads

Lets you notify users of new features in your product. It does this by identifying new documentation files, and having these listed under a blinking navigation entry.

  • author: Kevin Obuya Obuya
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs-new-features-notifier
PyPI - Downloads

Outputs real-time updates from the build to the console.

Internationalization & localization

PyPI - Downloads

Serving locale-dependent pages. No documentation at this point.

  • author: Avente LLC
  • links: PyPI
  • installation: pip install mkdocs-multilang
PyPI - Downloads

Serving locale-dependent images. No documentation at this point.

  • author: Avente LLC
  • links: PyPI
  • installation: pip install mkdocs-image-localization
PyPI - Downloads

It adds links to translated pages for each page. It also hides other languages page links of navigation menu if there is a translation for current page language.

PyPI - Downloads

An MkDocs plugin that helps you support multiple language versions of your site / documentation.

This plugin is made to be as simple as possible and will generate a default version of your website + one per configured language on the <language>/ path.

  • the default version will use any .md documentation file first and fallback to any .<default_language>.md file found
  • the /<language> language versions will use any .<language>.md documentation file first and fallback to any .<default_language>.md file before fallbacking to any default .md file found

Since demonstrations are better than words, check the demo link below!

PyPI - Downloads

An MkDocs plugin for translate your site to multiple language versions using PO files.

This plugin is build in top of mdpo, allowing to parse a lot range of extensions texts updating PO files directly. Has compatibility with mkdocs-material and supports a lot of options to configure the process. You can even translate codeblocks, check the demo link below!

Navigation & page building

PyPI - Downloads

mkdocs-file-filter-plugin allows you to exclude/include files using Unix-style wildcards (globs), regular expressions (regexes), .mkdocsignore (gitignore-style file), or Markdown/FrontMatter tags (or custom property) metadata. In addition, it supports navigation filtering (nav:) based on excludes and external config files with patterns/rules that can be injected based on environmental variables to serve outputs based on different environments, audiences, etc.

PyPI - Downloads

Lets you exclude arbitrary file paths and patterns from the input. Normally, mkdocs will include every file in the docs directory in the output, which is not always what you want.

PyPI - Downloads

Filters out files (pages) using a parametrized regular expression.

  • author: Jacques Supcik supcik
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs-select-files
PyPI - Downloads

Simplifies configuring page titles and their order. Allows you to customize how your pages show up the navigation of your MkDocs without having to configure the full structure in your mkdocs.yml. It gives you detailed control using a small configuration file directly placed in the relevant directory of your documentation.

Note: This plugin works best without a nav or pages entry in your mkdocs.yml. Having a nav entry is supported, but you might not get the results you expect, especially if your nav structure doesn’t match the file structure.

PyPI - Downloads

Enhances the nav. Supports more types of Markdown titles, including level 1–6 atx-style headers and Setext-style headers. Collapses folders with only one file in, to help keep the nav clean.

  • author: Ryan Conway rylon
  • links: PyPI
  • installation: pip install mkdocs-nav-enhancements

Ensures that all entries in the site navigation are shown with their best title. By default, if titles are not specified in the configuration yaml, the file name is used in their place which may not always be aesthetically pleasing. The plugin will add some build overhead as it effectively loads all pages twice.

  • author: Andy Oakley andyoakley
  • links: GitHub | Docs
  • installation: pip install git+https://github.com/andyoakley/mkdocs-navtitles
PyPI - Downloads

Makes nav section headings clickable, leading to a section index page.

nav: (mkdocs.yml) Nav before Nav after
- Borgs:
  - borgs/index.md
  - Foo: borgs/foo.md
  - Bar: borgs/bar.md
PyPI - Downloads

Replaces the nav: section of the mkdocs.yml configuration with a simple Markdown file, or can infer (portions of) it from the documentation's directory structure.
An alternative to awesome-pages. Assists with migration from GitBook.

PyPI - Downloads

Allows you to have password protected articles and pages in MkDocs. The content is encrypted with AES-256 in Python using PyCrypto, and decrypted in the browser with Crypto-JS. It has been tested in Python 2.7 and Python 3.5.

  • author: CoinK0in
  • links: GitHub | Docs
  • installation: pip install mkdocs-encryptcontent-plugin

Injects social media cards for each entry in an awesome-list.

  • author: Carlos Pereira Atencio carlosperate
  • links: Github | Docs
  • installation: pip install git+https://github.com/carlosperate/mkdocs-awesome-list-plugin
PyPI - Downloads

Allows users to add additional content to the ToC sidebar using the Material theme.

PyPI - Downloads

Define your own hooks for mkdocs, without having to create a new package.

  • author: Andrzej Klajnert aklajnert
  • links: PyPI | GitHub
  • installation: pip install mkdocs-simple-hooks
PyPI - Downloads

Converts JSON Schema files into readable documentation.

Plugin to quickly create a ToC like list of all pages within a directory, based on the directory's .pages file.
This requires awesome-pages to work properly.

Just add a {nav} where you want the list to show up.

  • author: Lukas Geiter lukasgeiter (Distributed by Andre_601 Andre601
  • links: GitHub
  • installation: pip install git+https://github.com/Andre601/mkdocs-pagenav-generator

This plugin allows you to categorize the pages in your wiki. It allows for multiple categories per page and will generate a category index page with links to each page within the category. The title of your page will be used as the link text. It's easy to configure via the meta section of your pages:

---
categories:
    - Novels
    - Fiction
---
  • author: Eddy Luten EddyLuten
  • links: PyPI | Github
  • installation: pip install mkdocs-categories-plugin

Search & tables of content

Built-in MkDocs search plugin.

Fork of the built-in search plugin that excludes code blocks and tables, which becomes necessary when hosting notebooks and other large content.

  • author: Andy Oakley andyoakley
  • links: GitHub | Docs
  • installation: pip install git+https://github.com/andyoakley/mkdocs-fastsearch
PyPI - Downloads

A MkDocs plugin to replace the native “search” plugin with a search plugin that also works locally (file:// protocol). This plugin currently only works with the Material for MkDocs theme.

PyPI - Downloads

Lets you exclude selected files or sections from the search index, results will not show up in the search.

  • author: chrieke
  • links: GitHub | PyPI
  • installation: pip install mkdocs-exclude-search

Support for tags in the yaml-metadata in the header of markdown files. Extracts this metadata and creates a “Tags” page which lists all tags and all pages for each tag. The metadata has to be enclosed in --- lines, and must include a title: property (otherwise the page will appear as “untitled” in the tags page).

---
title: Welcome
tags:
  - testing
  - unimportant
---

# Welcome to MkDocs
  • author: jldiaz
  • links: Github | Docs
  • installation: pip install git+https://github.com/jldiaz/mkdocs-plugin-tags

This plugin just make a json file that contains meta data “tags”. To display aggregation of tag, you need to make pages referencing the json file.

  • author: srymh
  • links: Github | Docs | Demo
  • installation: pip install git+https://github.com/srymh/MkdocsTagPlugin
PyPI - Downloads

Automatically add tags to certain pages based on their path or filename. You will still need to use another tag plugin (such as mkdocs-material) for actually managing/displaying the tags.

Material for MkDocs provides its own search plugin, which provides rich search previews (rendering text and code blocks in search), advanced separator support with lookahead and allows for the exclusion of whole pages, sections, and blocks.

Material for MkDocs adds first-class support for categorizing pages with tags, which adds the possibility to group related pages and make them discoverable via search and a dedicated tags index. If your documentation is large, tags can help to discover relevant information faster.

Links & references

Looks for the presence of a reference to tickets from issues trackers like Jira, Linear, etc and automatically convert them to links that point to respective platforms.

  • author: Saurabh Kumar theskumar
  • links: Github | PyPI
  • installation: pip install autolink-references-mkdocs-plugin
plugins:
   - autolink_references:
        autolinks:
            - reference_prefix: AF-
              target_url: https://linear.com/AF-<num>
            - reference_prefix: PROJ-
              target_url: https://jiracloud.com/PROJ-<num>

Automatically link across pages in MkDocs.

Why another "automatic cross linking" plugin? Because none of the other implementations were meeting our requirements for mkdocstrings. mkdocs-autorefs is actually performant (no HTML re-parsing), compatible with other plugins, and provides an easy-to-use syntax.

  • authors: @oprypin and @pawamoy
  • links: PyPI | GitHub | Docs
  • installation: pip install mkdocs-autorefs

PyPI - Downloads

Plugin for mkdocs which enables easier linking between pages.

This plugin was written in order to provide an up-to-date and feature complete plugin for easily referencing documents with a variety of features:

- File name linking (e.g. `[Text](file)`)
- Absolute paths (e.g. `[Text](/link/to/file.md)`)
- WikiLinks support (e.g. `[[Link]]`)
  • author: Mick Orbik orbikm
  • links: Github
  • installation: pip install mkdocs-ezlinks-plugin
PyPI - Downloads

Find unused (orphaned) files in your project.

This is useful, e.g., if your project contains a lot of image files and you lost track which images are still in use.

A file is considered "used" when it is referenced in at least one Markdown file of your project, either as an image or as a hyperlink reference.

PyPI - Downloads

Transform handles such as #1234, %56, !789, &12 or $34 into links to a gitlab repository, given by the gitlab_url configuration option.

Automatically links heading references in the form [My heading], similar to Pandoc’s implicit_header_references extension.

  • author: Paul Ouellette pauloue
  • links: Github
  • installation: pip install git+https://github.com/pauloue/mkdocs-autoreflinks-plugin
PyPI - Downloads

Simplifies relative linking between documents. Allows you to link to pages and images within your MkDocs site without providing the entire relative path to the file in your document structure.

PyPI - Downloads

Inherit from autolinks, support [[mdfile]] -> [mdfile](path-to-file), also implicit heading [[#A Title]] -> [#A Title](#a-title)

PyPI - Downloads

Mkdocs absolute to relative link converter. Mkdocs officially only supports relative links. While this makes sense there are situation where it is useful to make use of absolute links. For example when creating a document with absolute links to an image folder. If that file is to be moved later on, links are kept intact.

  • author: Sander sander76
  • links: Github | Docs
  • installation: pip install mkdocs-abs-rel-plugin
PyPI - Downloads

Converting absolute image/link paths to webcontext aware paths. Use when you are not going to upload your MkDocs to the site root but rather a sub folder on an existing site. You will then be able to use the same absolute path (staring with "/") for development and after deploy. Examples of site urls before and after using the webcontext plugin:

Site Url Context Image before Image after
http://example.com/foo /foo /images/img1.jpg /foo/images/img1.jpg
  • author: Darrel Kleynhans Darrelk
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs_webcontext_plugin

Obscures email addresses from address-harvesting spam bots.

  • author: Roland Freikamp rkoe
  • links Github | Docs
  • installation: pip install git+https://github.com/rkoe/mkdocs-emailprotect

Extends the Markdown syntax by providing an alternative : header prefix, and provides special autolinking functionality for such headers.

  • author: sekikawattt
  • links: Github | Docs
  • installation: pip install git+https://github.com/sekikawattt/mkdocs-linkpatcher-plugin
PyPI - Downloads

Makes it easy to create dynamic page redirects, so you can move docs around and prevent broken links. Instead of using the meta “redirect:” support (which requires you to have extraneous Markdown files cluttering up your docs folder), this plugin dynamically generates the meta redirect HTML pages in the site_dir based on configuration in mkdocs.yml mapping old paths to new page locations.

PyPI - Downloads

Validates URLs in rendered HTML files.

Not functional with current release of Mkdocs

PyPI - Downloads

Adds tooltips to preview the content of page links using tooltipster.

Simplifies internal links. Very simple mkdocs plugin using John Gruber's relative path link as an alternate syntax for internal links, removing the need to add the .md suffix for the target page.

  • author: Cristi Mitrana cmitu
  • links: Github | Docs
  • installation: pip install git+https://github.com/cmitu/mkdocs-altlink-plugin/

Allows linking to your pages using a custom alias, such as [[my-alias]]. The syntax of the alias is reminiscent of MediaWiki links, while aliases themselves are defined in the meta section of the Markdown document. This allows for a decoupling of the wiki page from the file system in case you make frequent changes to filenames or your directory structure without having to fix broken links.

  • author: Eddy Luten EddyLuten
  • links: PyPI | Github
  • installation: pip install mkdocs-alias-plugin

Add an icon behind links that refer to external pages or include a mailto reference. This gives an indicator for what type of link you are currently looking at.

HTML processing & CSS styling

Adds persistent, preferred and/or alternate stylesheet links to custom MkDocs themes.

  • author: Heini Fagerlund hfagerlund
  • links: Github | Docs
  • installation: pip install git+https://github.com/hfagerlund/mkdocs-docstyler-plugin
PyPI - Downloads

Customizes the first paragraph of your pages and uses it as the page's meta description. This is useful if the first paragraph of your pages a) contains information that should stand out from the rest of the text, e.g., should be printed in bold ("teaser" text), b) should appear as the page description in search engines (for SEO).

  • author: Lars Wilhelmer wilhelmer
  • links: Github
  • installation: pip install mkdocs-add-teaser
PyPI - Downloads

Filter HTML tags from Markdown sources. Only allows raw HTML tags specified in the plugin’s whitelist.

PyPI - Downloads

Minifies the HTML of the page just prior to being written to disk.

PyPI - Downloads

Adds Bootstrap classes to plain/naked tables generated by Markdown. This improves styling of tables if you are using the Bootstrap CSS framework. It should have no effect for all other tables.

  • author: Byrne Reese byrnereese
  • links: Github | Docs
  • installation: pip install mkdocs-bootstrap-tables-plugin
PyPI - Downloads

Automatically numbers the title (h1~h6) of each page you have. This only affects your HTML rendering results and does not affect the Markdown files.

  • author: ignorantshr
  • links: Github | Docs
  • installation: pip install git+https://github.com/ignorantshr/mkdocs-add-number-plugin
PyPI - Downloads

MkDocs Plugin to enumerate the headings (h1-h6) across site pages

  • author: Tim Vink timvink
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-enumerate-headings-plugin

Code execution, variables & templating

PyPI - Downloads

Auto Python code execution and insertion to the original Markdown source. Any Python codes in a fenced code block of original Markdown source are executed. This process is performed by a Jupyter client. In addition to this code execution, Pheasant can automatically number headers, figures, tables, etc. See the Pheasant official site at Pheasant Home

PyPI - Downloads

A mini-framework ("Swiss Army knife" of plugins): brings the power of jinja2 to the markdown pages of a MkDocs website.

  • author: Laurent Franceschetti fralau
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-macros-plugin
PyPI - Downloads

Injects mkdocs.yml->extra: * variables into your markdown documents. Very powerful for things like {{ client.name }} or <a href="{{ client.website }}"><img alt="{{ client.logo.alt }}" src="{{ client.logo.src }}" /></a> in your markdown and not in the theme template.html files.

  • author: Ross Crawford-d’Heureuse rosscdh
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-markdownextradata-plugin

Enables the Jinja2-sandbox in the MkDocs-templates.

  • author: Roland Koebler rkoe
  • links Github | Docs
  • installation: pip install git+https://github.com/rkoe/mkdocs-jinja2sandbox

Allows the use of Jinja2 templates inside Markdown content. It can be useful, for example, to enumerate pages or use the configuration or site navigation data structures from within content. Templates should render to HTML.

Example:

{% for year in ['2018', '2017'] %}
  <h3>{{ year }}</h3>
  {% for page in pages|sort(attribute='url', reverse=True) %}
    {{ page.title }}
    <br />
  {% endfor %}
{% endfor %}
  • author: Andy Oakley andyoakley
  • links: Github | Docs
  • installation: pip install git+https://github.com/andyoakley/mkdocs-jinja2
PyPI - Downloads

Generate documentation pages virtually during the build, using a Python scripting API. No more hacky Bash scripts that you forget to re-run!

PyPI - Downloads

Introduce mindmaps to your documents by either inline markdown conversion or separate file inclusion.

nbconvert (tanbro)

Source parser for *.ipynb Jupyter Notebook files

  • author: liu xue yan tanbro
  • links: Pypi | Github | Docs
  • installation: pip install https://pypi.org/project/mkdocs-nbconvert/

nbconvert (andyoakley)

This mkdocs plugin uses nbconvert to convert Jupyter notebooks into Markdown as they are loaded.

  • author: Andy Oakley andyoakley
  • links: Github | Docs
  • installation: pip install git+https://github.com/andyoakley/mkdocs-nbconvert/
PyPI - Downloads

Includes Jupyter notebooks in your project documentation.

PyPI - Downloads

Add Jupyter Notebooks directly to the mkdocs navigation.

PyPI - Downloads

Injects the mkdocs.yml extra variables PLUS extra YML files into the markdown template.

  • author: textile.io textileio
  • links: Github | Docs
  • installation: pip install git+https://github.com/textileio/mkdocs-codeyaml-plugin
PyPI - Downloads

Adds a markdown filter to the Jinja templating engine in mkdocs.

Lets you use Jinja2 filters.

  • author: Benedikt Reiser burnedikt
  • links: Github | Docs
  • installation: pip install git+https://github.com/burnedikt/mkdocs-jinja2-filters-plugin

Renders mathy-specific elements in a mkdocs page by template substitution. Mathy is a A modern computer algebra system and reinforcement learning environments platform for interpretable symbolic mathematics.

PyPI - Downloads

Allows pages to have user-defined input values.

  • author: Rahul Trikha rahult
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-user-defined-values
PyPI - Downloads

Insert protobuf messages directly into documetnation

PyPI - Downloads

Enhance code fences with an "Edit in JSFiddle" button.

Add page meta tags to an entire folder using an meta.yml file. Meta tags are applied recuresively to all subfolders. Meta tags can be used with page templates to dynamically customize page content e.g. adding a header to all files in a specific folder.

Reusing content, snippets & includes

PyPI - Downloads

Allow to inject section or all full markdown content from a given url. The goal is to show different markdown from different sources inside your MkDocs project.

  • author: Stas Yakobov fire1ce
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs-embed-external-markdown
PyPI - Downloads

Allows some advanced 'includes’ functionality to be used for embedded code blocks. This is effectively an extended Markdown format, but is intended to degrade gracefully when rendered with a different renderer.

  • author: Richard North rnorth
  • links: Github | Docs
  • installation: pip install git+https://github.com/rnorth/mkdocs-codeinclude-plugin

The markdown-include plugin provides a way to “embed” the contents of one file in another markdown file. The replace plugin allows in reusing the repeating portions of the documentation, instead of rewriting them everywhere.

  • author: Sivagiri Visakan SivagiriVisakan
  • links: Github | Docs
  • installation: pip install git+https://github.com/SivagiriVisakan/mkdocs-replace-plugin
PyPI - Downloads

Injects snippets from a file in a git repository.

  • author: Michael Privat mprivat
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-snippet-plugin
PyPI - Downloads

Inject snippet or all markdown content from a given remote git repository

  • author: Samuel Comino SamazoOo
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-gitsnippet-plugin
PyPI - Downloads

Include Markdown content from files

  • author: Joe Rickerby joerick
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-include-markdown-plugin
PyPI - Downloads

Generate meta descriptions for your pages using the first paragraph of each page. This is useful if you start each page with a short introduction or summary that can be reused as the meta description.

A few simple macros to make it quicker and easier to add self-consistent annotations to your documentation about differences between project versions.

Git repos & info

Update or override configuration entries based on the current Git branch. Compatible with ReadTheDocs.

  • author: Chris Markiewicz effigies
  • links: Github | Docs
  • installation: pip install git+https://github.com/effigies/mkdocs-branchcustomization-plugin
PyPI - Downloads

Uses git to fetch the last revision date per markdown file and display it in a localized way (f.e. “9 December 2019” or '5 days ago’)

  • author: Tim Vink timvink
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-git-revision-date-localized-plugin
PyPI - Downloads

Uses git to fetch the last revision date per markdown file.

PyPI - Downloads

Displays the git authors of a file, for example: 'written by: Jane Doe, John Doe'

  • author: Tim Vink timvink
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-git-authors-plugin

git-committers (ojacques)

PyPI - Downloads

Displays a list of committers associated with a file, as well as the last time the file was edited. This is a plugin which is a fork from the original mkdocs-git-committers-plugin by @byrnereese.

  • author: Olivier Jacques ojacques
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-git-committers-plugin-2

git-committers (byrnereese)

PyPI - Downloads

Displays a list of committers associated with a file, as well as the last time the file was edited.

PyPI - Downloads

Displays the latest version based on git tags. Replaces {{ git_latest_version }} and {{ git_revision_date }} with Git-based latest version and revision date info.

PyPI - Downloads

A "Swiss Army knife" of plugins, which brings the power of jinja2 to the markdown pages of a MkDocs website.

If the site is under a git repository, this plugin also provides a wealth of git data in pages, through the git object.

  • author: Laurent Franceschetti fralau
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-macros-plugin

API documentation building

Automatically generates API docs from your Python 3 project.

  • author: Alexandre Kempf AlexandreKempf
  • links: Github | Docs
  • installation: pip install git+https://github.com/AlexandreKempf/automacdoc/

Automatic documentation from sources, for MkDocs.

  • Features
    • Language agnostic: mkdocstrings is written in Python but is language-agnostic. It means you can use it for any language, as long as you implement a handler for it. Currently, we have a Python handler and a Crystal handler.
    • Multiple themes support: each handler can offer multiple themes. Currently, we support the Material theme and offer basic support for the mkdocs and readthedocs themes.
    • Cross-references to other objects: mkdocstrings makes it possible to reference other headings from your Markdown files with the classic Markdown syntax: [identifier][] or [title][identifier]. See autorefs.
    • Inline injection in Markdown: instead of generating Markdown files, mkdocstrings allows you to inject documentation anywhere in your Markdown contents. The syntax is simple: ::: identifier followed by a 4-spaces indented YAML configuration block.
    • ...and more!
  • author: Timothée Mazzucotelli pawamoy
  • links: Pypi | Github | Docs
  • installation: pip install mkdocstrings
PyPI - Downloads

MkDocs + Doxygen = easy documentation generator with code snippets. Generate documentation based od Doxygen comments and code snippets in your markdown files.

  • Features
    • Easy to use: just add mkdoxy to your mkdocs.yml and config path to your project src folder.
    • Code snippets: mkdoxy supports code snippets in your documentation. Just add ::: <project_name>.<command_name> to your markdown file and mkdoxy will generate code just in the place where you want it. Inspired from mkdocstrings.
    • Multiple projects: mkdoxy supports multiple projects. You can add multiple source folders and generate documentation for all of them. For example, you can generate documentation for your C++ project and your Python project like in this example.
    • Custom API documentation structure is allowed using Jinja2 templates. You can add your own templates and generate documentation in any structure you want. In the testing phase!
  • author: Jakub Andrýsek JakubAndrysek
  • links: Pypi | Github | Docs | Demo
  • installation: pip install mkdoxy
PyPI - Downloads

A Markdown extension which adds autodoc style support, for use with MkDocs.

PyPI - Downloads

Allows to generate Doxygen documentation as part of the build process. Doxygen is run (post-build) for each entry in the packages configuration entry (a list of mappings) and the html output moved to a subdirectory of site_dir, with the same name as the entry’s key.

  • author: Pieter David pieterdavid
  • links: Github | Docs
  • installation: pip install git+https://github.com/pieterdavid/mkdocs-doxygen-plugin

An low-effort attempt to create autodocumentation of class and function definitions/docstrings.

  • author: Mark Connelly plasmatech8
  • links: Github | Docs
  • installation: pip install git+https://github.com/plasmatech8/Python-Mkdocs-Autodoc-Plugin
PyPI - Downloads

Write docstrings in Markdown.

PyPI - Downloads

Generate markdown API documentation from Numpydoc docstrings.

PyPI - Downloads

Generate API documentation from Markdown docstrings. MkApi supports two styles of docstrings: Google and NumPy.

  • Features of MkApi are:

    • Section syntax: Supported sections are Args, Arguments, Attributes, Example[s], Note[s], Parameters, Raises, Returns, References, Todo, Warning[s], Warns, and Yields.
    • Type annotation: If you write your function such as def func(x: int) -> str:, you don't need write type(s) in Args, Parameters, Returns, or Yields section again. You can overwrite the type annotation in the corresponding docstring.
    • Object type inspection: MkApi plugin creates CLASS, DATACLASS, FUNCTION, GENERATOR, or METHOD prefix for each object.
    • Attribute inspection: If you write attributes with description as comment in __init__(), Attributes section is automatically created.
    • Docstring inheritance: Docstring of a subclass can inherit parameters and attributes description from its superclasses.
    • Page mode: Comprehensive API documentation for your project, in which objects are linked to each other by type annotation.
  • author: Daizu daizutabi

  • links: PyPI | Github | Docs

  • installation: pip install mkapi

Authoring

edit_url (paulrbr)

Adds the ability to use a edit_url: meta field in your markdown pages. Meaning you can override the default edit_url value built by MkDocs (from the edit_uri configuration option). This is particularly useful if some of your documentation pages are taken from another source (another repository, a external wiki such as github/gitlab…).

  • author: paulrbr
  • links: Gitlab | Docs
  • installation: pip install git+https://gitlab.com/paulrbr/mkdocs-edit-url/

edit_url (dhis2)

Read a page’s metadata to search for a field called edit_url and forces to use that value when generating the docs as the edit_url (behind the edit button).

PyPI - Downloads

Creates a vim tag file of all markdown files for autocompleting and navigating through markdown pages in vim.

PDF & site conversion

PyPI - Downloads

This plugin will generate a single PDF file from your MkDocs repository.

  • author: orzih
  • links: Pypi | Github
  • installation: pip install mkdocs-with-pdf
PyPI - Downloads

Generate nice documentation PDFs. What makes this plugin different to other MkDocs pdf generator plugins, is that it’s not dependent to a given plugin and may work with absolutely any MkDocs theme. depends on WeasyPrint which depends on cairo, Pango and GDK-PixBuf. They need to be installed separately.

  • author: Gerry Ntabuhashe comwes
  • links: Pypi | Github | Docs
  • installation: pip install mkpdfs-mkdocs
PyPI - Downloads

Exports content pages as PDF files. The pdf-export plugin will export all markdown pages in your MkDocs repository as PDF files using WeasyPrint. The exported documents support many advanced features missing in most other PDF exports, such as a PDF Index and support for CSS paged media module.

PyPI - Downloads

Adds an additional page that combines all pages, allowing easy exports to PDF and standalone HTML.

  • author: Tim Vink timvink
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-print-site-plugin
PyPI - Downloads

The plugin will export all markdown pages in your MkDocs repository as PDF files using pandoc. The exported documents support many advanced features missing in most other PDF exports, such as PDF navigation, PDF pagenum.

PyPI - Downloads

Lets you export your documentation as PDF with rendered JavaScript content. This is very useful if you want to have your mermaid diagrams in your pdf documents as well. A download link will be added to the top of your documentation.

PyPI - Downloads

Deploys documentation to any mobile device via Apache Cordova.

Apache Cordova (formerly PhoneGap) is a mobile application development framework that enables software programmers to build applications for mobile devices using CSS3, HTML5, and JavaScript instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone.

This plugin is under development, but it is tested and it should probably work for you.

  • author: Lucas Ramage lramage
  • links: Gitlab | Docs
  • installation: pip install git+https://gitlab.com/lramage/mkdocs-cordova-plugin
PyPI - Downloads

Turns docs website into Helm repository

Blogging

Allows mkdocs to be used as a simple blog. Assumes blog content is laid out in a standardized format with numeric years and months as follows: docs/<year>/<month>/page.md. Within a month, file modification time is used to provide chronological ordering. Enables jinja2 templating. Generates a simple RSS feed for recent content.

  • author: Andy Oakley andyoakley
  • links: Github | Docs
  • installation: pip install git+https://github.com/andyoakley/mkdocs-blog

This plugin for MkDocs allows you to keep a really simple blog section inside your documentation site.

  • author: Francesco Maida fmaida
  • links: Github | Docs
  • installation: pip install git+https://github.com/fmaida/mkdocs-blog-plugin
PyPI - Downloads

Generates RSS 2.0 feeds (latest created and updated pages) using Git log.

PyPI - Downloads

Creates daily, weekly, monthly and yearly rich newsletter articles with the changes of each period. Those pages, stored under the Newsletters section, are filled with the changes extracted from the commit messages of the git history. The changes are grouped by categories, subcategories and then by file using the order of the site's navigation structure. RSS feeds are also created for each newsletter type, so it's easy for people to keep updated with the evolution of the site.

  • author: Lyz
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs-newsletter
PyPI - Downloads

Generates a blog page listing selected pages by time, with customization support.

  • author: Liang Yesheng liang2kl
  • links: PyPI | Github
  • installation: pip install mkdocs-blogging-plugin

Social cards, also known as social previews, are images that are displayed when a link to your project documentation is shared on social media. Material for MkDocs can generate beautiful social cards automatically, using the colors, fonts, and logo defined in mkdocs.yml.


Web services

PyPI - Downloads

Support for add Swagger UI in page.

PyPI - Downloads

Lets you create a form to invoke APIs from swagger definition easily.

  • author: Tommaso Allevi allevo
  • links: Github | Docs
  • installation: pip install git+https://github.com/allevo/mkdocs-swagger-plugin

Generates overviews from YAML descriptions, intended for micro-services and their deployments.

  • author: Jakub Zárybnický inuits
  • links: Github | Docs
  • installation: pip install git+https://github.com/inuits/mkdocs-factsheet
PyPI - Downloads

Lets you add a Ko-fi button with configurable text and color.

  • author: Tony Bergh berghton
  • links: PyPI | GitLab | Docs
  • installation: pip install mkdocs-ko-fi-button-plugin

Citations & bibliography

PyPI - Downloads

Citation management using bibtex.

Images, Tables, Charts & Graphs

PyPI - Downloads

Converts markdown encoded images like

![An image caption](\assets\images\my-image.png)

into

<figure class="figure-image">
  <img src="\assets\images\my-image.png" alt="An image caption" />
  <figcaption>An image caption</figcaption>
</figure>
  • author: Stüber Systems stuebersystems
  • links: Github | Docs
  • installation: pip install git+https://github.com/stuebersystems/mkdocs-img2fig-plugin
PyPI - Downloads

Support @import "file" statement to directly insert a jpg/gif/png file as image, and a csv file as a table.

  • author: Rj40x40 Rj40x40
  • links: PyPI | Github | Docs
  • installation: pip install mkdocs-import-statement-plugin
PyPI - Downloads

Adds a {{ read_csv('table.csv') }} markdown tag to directly insert CSV files in a page.

  • author: Tim Vink timvink
  • links: PyPi | Github | Docs
  • installation: pip install mkdocs-table-reader-plugin
PyPI - Downloads

Mkdocs plugin to add charts to your pages.

PyPI - Downloads

Exports your Draw.io diagrams at build time for easier embedding into your documentation. Just embed them like any other image.

PyPI - Downloads

This is a mkdocs plugin that could enable the mermaid graph in the markdown file.

PyPI - Downloads

An expanded mkdocs plugin (based on the excellent markdownmermaid) for rendering mermaid graphs. It features improved documentation and it is now possible to define arguments that will be passed to the mermaid.initialize(...) sequence.

  • author: Laurent Franceschetti fralau
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-mermaid2-plugin
PyPI - Downloads

Renders waveform charts in the wavedrom style.

PyPI - Downloads

Helps building plantuml images.

  • author: Christoph Galler christo-ph
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-build-plantuml-plugin

Renders js-sequence-diagrams blocks.

  • author: Francesco Saverio Cannizzaro fcannizzaro
  • links: Github | Docs
  • installation pip install git+https://github.com/fcannizzaro/mkdocs-sequence-js-plugin
PyPI - Downloads

Renders Kroki-diagram blocks.
Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom... and more to come!

PyPI - Downloads

Support image lightbox with GLightbox.

GLightbox is pure Javascript lightbox library with mobile support.

PyPI - Downloads

Mkdocs plugin to embed plotly charts to your pages using the plotly JSON export.

Other

Add and customize tooltips in MkDocs.

Integrate your coverage HTML report into your MkDocs site.

  • author: Timothée Mazzucotelli @pawamoy
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-coverage

Spell check your pages.

  • author: Timothée Mazzucotelli pawamoy
  • links: Pypi | Github | Docs
  • installation: pip install mkdocs-spellcheck

Replaces custom tags with web players that launch the WebMSX game emulator.

  • author: Francesco Maida fmaida
  • links: Github
  • installation: pip install git+https://github.com/fmaida/webmsx-mkdocs-plugin
PyPI - Downloads

Looks in each MkDocs article for the presence of a tag like this {{ pico-8: 12345 }}. Then, it will replace it with a web player that will allow the reader of a page to enjoy pico-8 games through the page.

  • author: Francesco Maida fmaida
  • links: PyPI | Github | Docs
  • installation: pip install pico8-mkdocs-plugin
PyPI - Downloads

No description at this point.

  • author: Avente LLC
  • links: PyPI
  • installation: pip install mkdocs-file-selector
PyPI - Downloads

Allows placing mkdocs.yml into the same directory as documentation sources (docs/).

PyPI - Downloads

Provides a mechanism to indicate, in Markdown, the desire for PDF files and YouTube links to have a thumbnail image, automatically generated/downloaded.

PyPI - Downloads

Add badges to your pages.

PyPI - Downloads

Add placeholders to your pages, that can dynamically be replaced with values supplied by the site's visitors.

Example & custom plugins

These plugins don’t offer obvious out-of-the-box functionality but may contain useful code that can be adapted for your purposes.

This is a template for a MkDocs plugin.

A very basic MkDocs plugin which substitutes every occurrence of {{dolly}} in your documents with random lyrics from the song “Hello Dolly!”.

  • author: Francesco Maida fmaida
  • links: GitHub | Docs
  • installation: pip install git+https://github.com/fmaida/hello-dolly-mkdocs-plugin

Example renaming plugin.

Example renaming plugin.

Additional resources

(If you discover an interesting plugin there that isn’t listed here, please add it to this page.)

More plugins (links only)

This section contains only simple links to some plugin locations. Feel free to turn these links into proper entries on this page.

Contributing to this page

If you add info about a new plugin, you may use the following template. The plugins are categorized in some broad categories. Place the info about the plugin into the most appropriate category. If you’re unsure, place it into the “Other” category, or — if it makes sense — add a new category (then also add it in the top list of categories, with a link).

### [name-of-plugin](source-to-obtain-plugin) (optional-variant)

<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/<NAME OF YOUR PACKAGE>">

Does this or that. Concise description of what the plugin does,
one paragraph or a few. No need to write “An MkDocs plugin that...”,
just start the sentence with the verb, such as “Adds more headings”
or “Lets you merge” etc.

- author: name-of-author [handle-of-author](url-to-author)
- links: [PyPI](https://pypi.org/project/link-to-plugin-on-pypi/) | [Github](https://github.com/plugin-url) | [Docs](link-to-docs-page-or-readme)
- installation: `pip install plugin-location`

As name-of-plugin on this page, please use the mkdocs.plugins entry point name in setup.py (see below), linked to the “best” location where more info about the plugin can be found. If multiple plugins with the same name exist, add an optional-variant in parantheses after the linked name-of-plugin, for example (handle-of-author).

entry_points={
        'mkdocs.plugins': [
            'name-of-plugin = name_of_module...',
        ]
    },

If the plugin is on Pypi, add a [Pypi](https://pypi.org/project/link-to-plugin-on-pypi/) link in the links line. Follow with additional links, separating them with |. Use a short link descriptor such as Github, Gitlab, Site, Docs, Demo etc.

If the plugin is on PyPI, the plugin-location in the installation line should be the Pypi package name. If it’s only available as a publicly hosted git repo, the plugin-location should be git+https://url-to-the-public-repo.

Clone this wiki locally