MkDocs
Personal documentation to help me remember how to use MkDocs Material and all the various extensions that I have added to it for the purpose of my personal documentation.
Admonitions
Enabling admonitions
In the mkdocs.yml
file, add this to enable the Admonition extension through the documentation:
YAML | |
---|---|
1 2 |
|
Admonition icons
Each of the supported admonition types has a distinct icon, which can be changed to any icon bundled with the theme, or even a custom icon. Add the following lines to mkdocs.yml
:
YAML | |
---|---|
1 2 3 4 |
|
Supported types
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Abstract
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Info
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Tip
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Success
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Question
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Warning
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Failure
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Danger
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Bug
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Example
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Quote
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Customization
You can customize the appearance of admonitions via an additional style sheet. Below is an example that restyles admonitions to an earlier version used by MkDocs:
CSS | |
---|---|
1 2 3 4 5 |
|
YAML | |
---|---|
1 2 |
|
By this same logic, you can create custom admonitions:
CSS | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
YAML | |
---|---|
1 2 |
|
Usage
Admonitions follow a simple syntax: a block starts with !!!
, followed by a single keyword used as a type qualifier. The content of the block follows on the next line, indented by four spaces:
Admonition | |
---|---|
1 2 3 4 |
|
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
If no type qualifier is included, it fallbacks to the default type of note
.
Changing the title
By default, the title will equal the type qualifier in titlecase. However, it can be changed by added a quoted string containing valid Markdown (including links, formatting, etc) after the type qualifier:
Admonition with custom title | |
---|---|
1 2 3 4 |
|
Phasellus posuere in sem ut cursus
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Collapsible blocks
When Details is enabled and an admonition block is started with ???
instead of !!!
, the admonition is rendered as an expandable block with a small toggle indicator on the right side. Alternatively, you can use ???+
to create a collapsible block that renders expanded:
Collapsible admonition | |
---|---|
1 2 3 4 |
|
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Collapsible admonition | |
---|---|
1 2 3 4 |
|
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Inline blocks
Admonitions can also be rendered as inline blocks (e.g., for sidebars), placing them to the right using the inline
+ end
modifiers, or the left using only the inline
modifier:
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Inline admonition | |
---|---|
1 2 3 4 |
|
Critic Markup
The Critic extension allows for the usage of Critic Markup to highlight added, deleted, or otherwise modified sections in a document, i.e. for tracking changes in Markdown syntax.
Syntax
There are five types of Critic marks that allow you to successfully copy edit in plain text/Markdown:
Mark | Syntax |
---|---|
Addition | {\++Addition++\} |
{\--Deletion--\} |
|
{\~~text~>Substitution~~\} |
|
Comment | {\>>Comment<<\} |
Highlight | {\==Highlight==\} |
Syntax issue
Due to the nature of the Critic Markup and inline code, the above syntax is modified to be readable. The actual syntax requires the removal of all \
characters.
Keys Syntax
When Keys is enabled, keyboard keys can be rendered with a simple syntax. Consult the Python Markdown Extensions documentation to learn about all available shortcodes.
Keyboard keys | |
---|---|
1 |
|
Ctrl+Alt+Del
Tabs
Enabling tabs
In the mkdocs.yml
file, add this to enable the Tabbed extension throughout the documentation:
YAML | |
---|---|
1 2 3 |
|
Note
You must include alternate_style: true
for tabs to work.
Using tabs
Tabs start with ===
to signify a tab followed by a quoted title. Consecutive tabs are grouped into a tab set.
Markdown | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
Markdown content.
Multiple paragraphs.
More Markdown content.
- list item a
- list item b
Note
The indentation matters. Not indenting a paragraph intended to be within a tab breaks it.
In the rare case that you want to follow two separate tab sets right after each other, you can explicitly mark the start of a new tab set with !
.
Markdown | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Markdown content.
Multiple paragraphs.
More Markdown content.
- list item a
- list item b
Different tab set.
Text Only | |
---|---|
1 |
|
Tab Select
If you'd like to force a tab to be selected, simply use ===+
, otherwise the first tab will be selected by default.
Markdown | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Markdown content.
Multiple paragraphs.
More Markdown content.
- list item a
- list item b
Another Tab