-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
MkDocs Plugins
The list of MkDocs plugins has moved:
→ Best of MkDocs ←
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
Git repos & info
💻 API documentation building
📜 Authoring
📄 PDF & site conversion
📖 Blogging
🌐 Web services
📚 Citations & bibliography
🖼️ Images, Tables, Charts & Graphs
➕ Other
✔️ Example & custom plugins
- Read about using plugins
- If you find a plugin that is not listed here, contribute to this page
- Check Additional resources for more plugins
- This list is also available as a best-of list for MkDocs
- author: Joseph Doiron jdoiro3
- links: PyPI | Github
- installation:
pip install mkdocs-multirepo-plugin
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 singledocs/
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 multipledocs/
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.
- author: Spotify spotify
- links: PyPI | Github | Docs | Demo | Blog Post
- installation:
pip install mkdocs-monorepo-plugin
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.
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.
- author: Steven Terrana steven-terrana
- links: PyPI | Github
- installation:
pip install mkdocs-yamp
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
Allows to merge mkdocs documentations dynamically
- author: experimaestro
- links: GitHub | Docs
- installation:
pip install mkdocs-multiple
simple (mkdocs-simple-plugin)
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.
- author: Allison Thackston athackst
- links: PyPI | Github | Docs | Docker
- installation:
pip install mkdocs-simple-plugin
semiliterate (mkdocs-semiliterate)
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.
- author: Glen Whitney
- links: PyPI | Source | Docs
- installation:
pip install mkdocs-semiliterate
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.
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).
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
Outputs real-time updates from the build to the console.
- author: Reece Dunham
- links: GitHub | Docs
- installation:
pip install mkdocs-plugin-progress
Serving locale-dependent pages. No documentation at this point.
- author: Avente LLC
- links: PyPI
- installation:
pip install mkdocs-multilang
Serving locale-dependent images. No documentation at this point.
- author: Avente LLC
- links: PyPI
- installation:
pip install mkdocs-image-localization
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.
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!
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!
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.
- author: Dariusz Porowski DariuszPorowski
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-file-filter-plugin
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.
Filters out files (pages) using a parametrized regular expression.
- author: Jacques Supcik supcik
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-select-files
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
orpages
entry in yourmkdocs.yml
. Having anav
entry is supported, but you might not get the results you expect, especially if yournav
structure doesn’t match the file structure.
- author: Lukas Geiter lukasgeiter
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-awesome-pages-plugin
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.
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
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 |
- author: Oleh Prypin oprypin
- links: PyPI | GitHub | Docs | Demo
- installation:
pip install mkdocs-section-index
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.
- author: Oleh Prypin oprypin
- links: PyPI | GitHub | Docs
- installation:
pip install mkdocs-literate-nav
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.
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
Allows users to add additional content to the ToC sidebar using the Material theme.
- author: Zach Hannum midnightprioriem
- links: PyPI | GitHub | Docs
- installation:
pip install mkdocs-toc-sidebar-plugin
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
Converts JSON Schema files into readable documentation.
- author: Tom Robinson magicaljellybeans
- links: PyPI | Github
- installation:
pip install mkdocs-schema-reader
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
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
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.
Lets you exclude selected files or sections from the search index, results will not show up in the 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
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.
Search (for mkdocs-material)
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.
- author: squidfunk
- links: GitHub
- installation: see documentation
Tags (for mkdocs-material)
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.
- author: squidfunk
- links: GitHub
- installation: see documentation
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
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]]`)
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.
Transform handles such as #1234
, %56
, !789
, &12
or $34
into links to a gitlab repository,
given by the gitlab_url
configuration option.
- author: Mathieu Giraud
- links: PyPI | Gitlab
- installation:
pip install mkdocs-gitlab-plugin
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
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.
- author: Zach Hannum midnightprioriem
- links: Github | Docs
- installation:
pip install mkdocs-autolinks-plugin
Inherit from autolinks, support [[mdfile]]
-> [mdfile](path-to-file)
, also implicit heading [[#A Title]]
-> [#A Title](#a-title)
- author: jackiexiao jackiexiao
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-roamlinks-plugin
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.
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
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.
Validates URLs in rendered HTML files.
- author: Manu Zhang manuzhang
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-htmlproofer-plugin
Not functional with current release of Mkdocs
Adds tooltips to preview the content of page links using tooltipster.
- author: Zach Hannum midnightprioriem
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-tooltipster-links-plugin
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.
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.
- author: Tim Jonas Meinerzhagen timmeinerzhagen
- links: PyPI | Github
- installation:
pip install mkdocs-link-marker
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
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).
Filter HTML tags from Markdown sources. Only allows raw HTML tags specified in the plugin’s whitelist.
- author: raimon raimon49
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-safe-text-plugin
Minifies the HTML of the page just prior to being written to disk.
- author: Byrne Reese byrnereese
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-minify-plugin
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
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
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
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
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
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
Generate documentation pages virtually during the build, using a Python scripting API. No more hacky Bash scripts that you forget to re-run!
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/
Includes Jupyter notebooks in your project documentation.
Add Jupyter Notebooks directly to the mkdocs navigation.
- author: Daniel Rodriguez danielfrg
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-jupyter
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
Adds a markdown filter to the Jinja templating engine in mkdocs.
- author: Byrne Reese byrnereese
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-markdown-filter
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.
- author Justin DuJardin justindujardin
- links: Plugin on Github | Mathy on Github | Site
Allows pages to have user-defined input values.
- author: Rahul Trikha rahult
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-user-defined-values
Insert protobuf messages directly into documetnation
Enhance code fences with an "Edit in JSFiddle" button.
- author: Stadia Maps stadiamaps
- links: PyPI | Github
- installation:
pip install mkjsfiddle
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.
- author: Tim Jonas Meinerzhagen timmeinerzhagen
- links: PyPI | Github
- installation:
pip install mkdocs-meta-manager
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
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
Injects snippets from a file in a git repository.
- author: Michael Privat mprivat
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-snippet-plugin
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
Include Markdown content from files
- author: Joe Rickerby joerick
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-include-markdown-plugin
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.
- author: Paulo Ribeiro
- links: PyPI | GitHub | Docs | Demo
- installation:
pip install mkdocs-meta-descriptions-plugin
A few simple macros to make it quicker and easier to add self-consistent annotations to your documentation about differences between project versions.
- author: Glenn Matthews glennmatthews
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-version-annotations
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
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
Uses git to fetch the last revision date per markdown file.
- author: Terry Zhao zhaoterryy
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-git-revision-date-plugin
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)
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)
Displays a list of committers associated with a file, as well as the last time the file was edited.
- author: Byrne Reese byrnereese
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-git-committers-plugin
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.
- author: Andrew Garner agarthetiger
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-latest-release-plugin
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
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 ahandler
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
andreadthedocs
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!
-
Language agnostic:
- author: Timothée Mazzucotelli pawamoy
- links: Pypi | Github | Docs
- installation:
pip install mkdocstrings
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 yourmkdocs.yml
and config path to your projectsrc
folder. -
Code snippets:
mkdoxy
supports code snippets in your documentation. Just add::: <project_name>.<command_name>
to your markdown file andmkdoxy
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!
-
Easy to use: just add
- author: Jakub Andrýsek JakubAndrysek
- links: Pypi | Github | Docs | Demo
- installation:
pip install mkdoxy
A Markdown extension which adds autodoc style support, for use with MkDocs.
- author: Tom Christie tomchristie
- links: PyPI \ GitHub
- installation:
pip install mkautodoc
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
Write docstrings in Markdown.
Generate markdown API documentation from Numpydoc docstrings.
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
, andYields
. -
Type annotation: If you write your function such as
def func(x: int) -> str:
, you don't need write type(s) inArgs
,Parameters
,Returns
, orYields
section again. You can overwrite the type annotation in the corresponding docstring. -
Object type inspection: MkApi plugin creates
CLASS
,DATACLASS
,FUNCTION
,GENERATOR
, orMETHOD
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.
-
Section syntax: Supported sections are
-
author: Daizu daizutabi
-
installation:
pip install mkapi
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).
Creates a vim tag file of all markdown files for autocompleting and navigating through markdown pages in vim
.
- author: Zach Hannum midnightprioriem
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-vim-md-tags-plugin
This plugin will generate a single PDF file from your MkDocs repository.
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.
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.
- author: Terry Zhao zhaoterryy
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-pdf-export-plugin
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
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.
- author: Liu, Hao HaoLiuHust
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-mk2pdf-plugin
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.
- author: Stefan Brandstaetter smaXtecStefan
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-pdf-with-js-plugin
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
Turns docs website into Helm repository
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
Generates RSS 2.0 feeds (latest created and updated pages) using Git log.
- author: Guts
- links: Pypi | Github | Documentation
- installation:
pip install mkdocs-rss-plugin
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.
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 (for mkdocs-material)
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
.
- author: squidfunk
- links: GitHub
- installation: see documentation
Support for add Swagger UI in page.
- author: Blueswen Liu blueswen
- links: PyPI | Github | Demo
- installation:
pip install mkdocs-swagger-ui-tag
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
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
Citation management using bibtex.
- author: Materials Project materialsproject
- links: Github | Docs
- installation:
pip install mkdocs-bibtex
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
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
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
Mkdocs plugin to add charts to your pages.
Exports your Draw.io diagrams at build time for easier embedding into your documentation. Just embed them like any other image.
- author: Luke Carrier LukeCarrier
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-drawio-exporter
This is a mkdocs plugin that could enable the mermaid graph in the markdown file.
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
Renders waveform charts in the wavedrom style.
- author: Shimoda dragon kuri65536
- links: Pypi | Github | Docs
- installation:
pip install mkdocs-wavedrom-plugin
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
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!
- author: Benjamin Bittner b-bittner
- links: Kroko | Pypi | Github | Docs
- installation
pip install mkdocs-kroki-plugin
Support image lightbox with GLightbox.
GLightbox is pure Javascript lightbox library with mobile support.
- author: Blueswen Liu blueswen
- links: PyPI | Github | Demo
- installation:
pip install mkdocs-glightbox
Mkdocs plugin to embed plotly charts to your pages using the plotly JSON export.
- author: Haoda Li haoda-li
- links: PyPi | Github | Docs
- installation:
pip install mkdocs-plotly-plugin
Add and customize tooltips in MkDocs.
- author: Nathanaël Jourdane @roipoussiere
- links: Documentation | GitLab
- installation:
pip install mkdocs-tooltips
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
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
No description at this point.
- author: Avente LLC
- links: PyPI
- installation:
pip install mkdocs-file-selector
Allows placing mkdocs.yml into the same directory as documentation sources (docs/).
- author: Oleh Prypin oprypin
- links: PyPI | GitHub | Docs | Example
- installation:
pip install mkdocs-same-dir
Provides a mechanism to indicate, in Markdown, the desire for PDF files and YouTube links to have a thumbnail image, automatically generated/downloaded.
- author: Norman Lorrain normanlorrain
- links: PyPI | Github | Docs
- installation:
pip install mkdocs-thumbnails
Add badges to your pages.
Add placeholders to your pages, that can dynamically be replaced with values supplied by the site's visitors.
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.
- author: Byrne Reese byrnereese
- links: GitHub
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.
(If you discover an interesting plugin there that isn’t listed here, please add it to this page.)
This section contains only simple links to some plugin locations. Feel free to turn these links into proper entries on 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
.