Home

Awesome

<!-- mdpo-disable-next-line -->

mkdocs-include-markdown-plugin

<!-- mdpo-disable -->

PyPI License Tests Coverage status Downloads

<!-- mdpo-enable -->

Mkdocs Markdown includer plugin.

<!-- mdpo-disable --> <!-- mdpo-enable-next-line -->

Read this document in other languages:

<!-- mdpo-enable -->

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

opening_tag and closing_tag

Default opening and closing tags. When not specified they are {% and %}.

plugins:
  - include-markdown:
      opening_tag: "{!"
      closing_tag: "!}"
<!-- mdpo-disable-next-line -->

exclude

Global exclusion wildcard patterns. Relative paths defined here will be relative to the docs_dir directory.

plugins:
  - include-markdown:
      exclude:
        - LICENSE.md
        - api/**
<!-- mdpo-disable-next-line -->

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]
<!-- mdpo-disable-next-line -->

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.

<!-- mdpo-disable-next-line -->

directives

Customize the names of the directives.

plugins:
  - include-markdown:
      directives:
        include-markdown: include-md
        include: replace

Reference

This plugin provides two directives, one to include Markdown files and another to include files of any type.

Paths of included files can be either:

File paths to include and string arguments can be wrapped by double " 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.

<!-- mdpo-disable-next-line -->

include-markdown

Includes Markdown files content, optionally using two delimiters to filter the content to include.

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"
%}
{% include-markdown '/escap\'ed/single-quotes/in/file\'/name.md' %}
<!-- mdpo-disable-next-line -->

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'
%}

Acknowledgment

<!-- mdpo-disable -->