Reference¶
Material for MkDocs is packed with many great features that make technical writing a pleasure. This section of the documentation explains how to set up a page, and showcases all available specimen that can be used directly from within Markdown files.
Configuration¶
This configuration allows to set a title and description for a page, change the template or define an icon to be rendered in the navigation. Add the following lines to mkdocs.yml
:
See additional configuration options:
Usage¶
Setting the page title¶
When Metadata is enabled, the page title can be overridden for a document with some custom front matter. Add the following lines at the top of a Markdown file:
- This will set the
title
inside the HTML document'shead
for the generated page to this value. Note that the site title, which is set viasite_name
, is appended with a dash.
Setting the page description¶
When Metadata is enabled, the page description can be overridden for a document with custom front matter. Add the following lines at the top of a Markdown file:
---
description: Nullam urna elit, malesuada eget finibus ut, ac tortor. # (1)!
---
# Document title
...
- This will set the
meta
tag containing the site description inside the documenthead
for the current page to the provided value.
Setting the page icon¶
Sponsors only · insiders-4.5.0 · Experimental
An icon can be assigned to each page, which is then rendered as part of the navigation sidebar. Ensure Metadata is enabled and add the following lines at the top of a Markdown file:
-
Enter a few keywords to find the perfect icon using our icon search and click on the shortcode to copy it to your clipboard:
Setting the page template¶
If you're using theme extension and created a new page template in the overrides
directory, you can enable it for a specific page. Add the following lines at the top of a Markdown file:
Customization¶
Using metadata in templates¶
on all pages¶
In order to add custom meta
tags to your document, you can extend the theme and override the extrahead
block, e.g. to add indexing policies for search engines via the robots
property:
{% extends "base.html" %}
{% block extrahead %}
<meta property="robots" content="noindex, nofollow" />
{% endblock %}
on a single page¶
If you want to set a meta
tag on a single page, or want to set different values for different pages, you can use the page.meta
object inside your template override, e.g.:
{% extends "base.html" %}
{% block extrahead %}
{% if page and page.meta and page.meta.robots %}
<meta property="robots" content="{{ page.meta.robots }}" />
{% else %}
<meta property="robots" content="index, follow" />
{% endif %}
{% endblock %}
You can now use robots
exactly like title
and description
to set values. Note that in this case, the template defines an else
branch, which would set a default if none was given.