mkdocs-include-markdown-plugin
[![PyPI][pypi-version-badge-link]][pypi-link] [![License][license-image]][license-link] [![Tests][tests-image]][tests-link] [![Coverage status][coverage-image]][coverage-link] [![Downloads][downloads-image]][downloads-link]
Mkdocs Markdown includer plugin.
Read this document in other languages:
> - [Español][es-readme-link]
- [Français][fr-readme-link]
Installation
pip install mkdocs-include-markdown-plugin
Documentation
Setup
Enable the plugin in your mkdocs.yml:
plugins:
- include-markdown
Configuration
The global behaviour of the plugin can be customized in the configuration.
Most of the settings will define the default values passed to arguments of directives and are documented in the reference.
plugins:
- include-markdown:
encoding: ascii
preserve_includer_indent: false
dedent: false
trailing_newlines: true
comments: true
rewrite_relative_urls: true
heading_offset: 0
start: <!--start-->
end: <!--end-->
recursive: true
order: alpha-path
opening_tag and closing_tag
Default opening and closing tags. When not specified they are {% and %}.
plugins:
- include-markdown:
opening_tag: "{!"
closing_tag: "!}"
exclude
Global exclusion wildcard patterns. Relative paths defined here will be
relative to the [docs_dir] directory.
plugins:
- include-markdown:
exclude:
- LICENSE.md
- api/**
cache
Expiration time in seconds for cached HTTP requests when including from URLs.
plugins:
- include-markdown:
cache: 600
In order to use this feature, the dependency [platformdirs] must be installed
or the setting cache_dir must be defined. You can include
[platformdirs] in the installation of the plugin adding the cache extra:
# requirements.txt
mkdocs-include-markdown-plugin[cache]
cache_dir
Directory where cached HTTP requests will be stored. If set, [platformdirs] is not
needed to be installed to use cache.
plugins:
- include-markdown:
cache: 600
cache_dir: ./mkdocs-include-markdown-cache
A _.gitignore_ file will be added to the cache directory if not exists to avoid committing the cache files.
directives
Customize the names of the directives.
plugins:
- include-markdown:
directives:
include-markdown: include-md
include: replace
include_from_url
Allow including content from URLs.
plugins:
- include-markdown:
include_from_url: true
Reference
This plugin provides two directives, one to include Markdown files and another to include files of any type.
Common arguments
Paths of included files can be either:
- URLs to include remote content.
- Local files:
./ or ../).
- Relative to the [docs_dir] directory. For instance if your docs_dir is
_./docs/_, then includes/header.md will match the file
_./docs/includes/header.md_.
- [Bash wildcard globs] matching multiple local files.
" or
single ' quotes, which can be escaped prepending them a \ character as
\" and \'.
The arguments start and end may contain usual (Python-style) escape
sequences like \n to match against newlines.
{% %} template. Possible values are
true and false.
dedent (_false_): If enabled, the included content will be dedented.
exclude: Specify with a glob which files should be ignored. Only useful
when passing globs to include multiple files.
trailing-newlines (_true_): When this option is disabled, the trailing newlines
found in the content to include are stripped. Possible values are true and false.
recursive (_true_): When this option is disabled, included files are not
processed for recursive includes. Possible values are true and false.
order (_'alpha-path'_): Define the order in which multiple files are included
when using globs. Possible values are:
- A combination of an optional order type and an optional order by separated
by a hyphen (-), and optionally prefixed by a hyphen (-) to indicate
ascending order. If an order type or an order by is not specified, the defaults
are used. It follows the form:
[-]- where:
- Order type:
- 'alpha' (default): Alphabetical order.
- 'natural': Natural order, so that e.g. file2.md comes before file10.md.
- Order by:
- 'path' (default): Order by full file path.
- 'name': Order by file name only.
- 'extension': Order by file extension.
- A combination of an optional prefix hyphen to denote ascending order and one
of the following values in the form [-] where is one of:
- 'size': Order by file size.
- 'mtime': Order by file modification time.
- 'ctime': Order by file creation time (or the last metadata change time
on Unix systems).
- 'atime': Order by file last access time.
- 'system': Order provided by the operating system. This is the same as not
specifying any order and relying on the default order of the filesystem.
This may be different between operating systems, so use it with care.
- 'random': Random order.
encoding (_'utf-8'_): Specify the encoding of the included file.
If not defined 'utf-8' will be used.
include-markdown
Includes Markdown files content, optionally using two delimiters to filter the content to include.
rewrite-relative-urls (_true_): When this option is enabled (default), Markdown links and images in the content that are specified by a relative URL are rewritten to work correctly in their new location. Possible values aretrue and false.
comments (_false_): When this option is enabled, the content to include
is wrapped by and comments
which help to identify that the content has been included. Possible values
are true and false.
heading-offset (0): Increases or decreases the Markdown headings depth
by this number. Only supports number sign (#) heading syntax. Accepts
negative values to drop leading # characters.
##### Examples
{%
include-markdown "../README.md"
start="<!--intro-start-->"
end="<!--intro-end-->"
%}
{%
include-markdown 'includes/header.md'
start='<!--\n\ttable-start\n-->'
end='<!--\n\ttable-end\n-->'
rewrite-relative-urls=false
comments=true
%}
{%
include-markdown "includes/header.md"
heading-offset=1
%}
{%
include-markdown "../LICENSE*"
start="<!--license \"start\" -->"
end='<!--license "end" -->'
exclude="../*.rst"
%}
{%
include-markdown "**"
exclude="./{index,LICENSE}.md"
order="name"
%}
{% include-markdown '/escap\'ed/single-quotes/in/file\'/name.md' %}
{%
include-markdown "**"
order="-natural-extension"
%}
include
Includes the content of a file or a group of files.
##### Examples
~~~yaml
{% include "../examples/github-minimal.yml" %}
~~~
{%
include "../examples.md"
start="~~~yaml"
end="~~~\n"
%}
{%
include '**'
exclude='./*.md'
order='random'
%}
Acknowledgment
- [Joe Rickerby] and [contributors] for
[Bash wildcard globs]: https://facelessuser.github.io/wcmatch/glob/#syntax
[pypi-link]: https://pypi.org/project/mkdocs-include-markdown-plugin
[pypi-version-badge-link]: https://img.shields.io/pypi/v/mkdocs-include-markdown-plugin?logo=pypi&logoColor=white
[tests-image]: https://img.shields.io/github/actions/workflow/status/mondeja/mkdocs-include-markdown-plugin/ci.yml?logo=github&label=tests&branch=master
[tests-link]: https://github.com/mondeja/mkdocs-include-markdown-plugin/actions?query=workflow%3ACI
[coverage-image]: https://img.shields.io/codecov/c/github/mondeja/mkdocs-include-markdown-plugin?logo=codecov&logoColor=white
[coverage-link]: https://app.codecov.io/gh/mondeja/mkdocs-include-markdown-plugin
[license-image]: https://img.shields.io/pypi/l/mkdocs-include-markdown-plugin?color=light-green&logo=apache&logoColor=white
[license-link]: https://github.com/mondeja/mkdocs-include-markdown-plugin/blob/master/LICENSE
[downloads-image]: https://img.shields.io/pypi/dm/mkdocs-include-markdown-plugin
[downloads-link]: https://pepy.tech/project/mkdocs-include-markdown-plugin
[platformdirs]: https://pypi.org/project/platformdirs/
[cibuildwheel-470]: https://github.com/pypa/cibuildwheel/issues/470
[cibuildwheel-475]: https://github.com/pypa/cibuildwheel/pull/475
[cibuildwheel-repo-link]: https://github.com/pypa/cibuildwheel
[es-readme-link]: https://github.com/mondeja/mkdocs-include-markdown-plugin/blob/master/locale/es/README.md
[fr-readme-link]: https://github.com/mondeja/mkdocs-include-markdown-plugin/blob/master/locale/fr/README.md
[docs_dir]: https://www.mkdocs.org/user-guide/configuration/#docs_dir
[Joe Rickerby]: https://github.com/joerick
[contributors]: https://github.com/mondeja/mkdocs-include-markdown-plugin/graphs/contributors