All Projects → fralau → Mkdocs_macros_plugin

fralau / Mkdocs_macros_plugin

Licence: mit
Create richer and more beautiful pages in MkDocs, by using variables and calls to macros in the markdown code.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mkdocs macros plugin

Mkdocs With Pdf
Generate a single PDF file from MkDocs repository.
Stars: ✭ 39 (-58.06%)
Mutual labels:  documentation, markdown
Settingsguide
More extensive explanations of Cura slicing settings.
Stars: ✭ 55 (-40.86%)
Mutual labels:  documentation, markdown
Vuesence Book
Minimalistic Vue.js based documentation system component
Stars: ✭ 48 (-48.39%)
Mutual labels:  documentation, markdown
Markdown Guide
The comprehensive Markdown reference guide.
Stars: ✭ 835 (+797.85%)
Mutual labels:  documentation, markdown
Flybook
✈️ FlyBook is a simple utility to generate static website such as gh-pages, manual of you projects
Stars: ✭ 76 (-18.28%)
Mutual labels:  documentation, markdown
Advanced Javascript
Documentation based on John Resig's website on Advanced JavaScript
Stars: ✭ 35 (-62.37%)
Mutual labels:  documentation, markdown
Parse Comments
Parse JavaScript code comments. Works with block and line comments, and should work with CSS, LESS, SASS, or any language with the same comment formats.
Stars: ✭ 53 (-43.01%)
Mutual labels:  documentation, markdown
Easybook
Book publishing as easy as it should be (built with Symfony components)
Stars: ✭ 744 (+700%)
Mutual labels:  documentation, markdown
Foliant
Comprehensive markdown-based documentation toolkit
Stars: ✭ 74 (-20.43%)
Mutual labels:  documentation, markdown
Docnado
Rapid documentation tool that will blow you away...
Stars: ✭ 67 (-27.96%)
Mutual labels:  documentation, markdown
Blog
基于Python Flask并支持Markdown语法的简易博客
Stars: ✭ 89 (-4.3%)
Mutual labels:  markdown, jinja2
Markdownmonster
An extensible Markdown Editor, Viewer and Weblog Publisher for Windows
Stars: ✭ 1,203 (+1193.55%)
Mutual labels:  documentation, markdown
Docpress
Documentation website generator
Stars: ✭ 815 (+776.34%)
Mutual labels:  documentation, markdown
Text Runner
Test runner for text
Stars: ✭ 35 (-62.37%)
Mutual labels:  documentation, markdown
Couscous
Couscous is good.
Stars: ✭ 807 (+767.74%)
Mutual labels:  documentation, markdown
Covenant Generator
`covgen` generates a code of conduct.
Stars: ✭ 48 (-48.39%)
Mutual labels:  documentation, markdown
Verb
HEADS UP! Verb is going though a major transition, we've completely refactored everything from the ground up. If you're interested, please see the dev branch.
Stars: ✭ 442 (+375.27%)
Mutual labels:  documentation, markdown
Bluedoc
An open-source document management tool for enterprise self host.
Stars: ✭ 579 (+522.58%)
Mutual labels:  documentation, markdown
Docsify Tabs
A docsify.js plugin for rendering tabbed content from markdown
Stars: ✭ 65 (-30.11%)
Mutual labels:  documentation, markdown
Jsdoc To Markdown
Generate markdown documentation from jsdoc-annotated javascript
Stars: ✭ 1,199 (+1189.25%)
Mutual labels:  documentation, markdown

mkdocs-macros-plugin: Unleash the power of MkDocs with variables and macros

License: MIT PyPI macros

Overview

mkdocs-macros-plugin is a plugin that makes it easier for contributors of an MkDocs website to produce richer and more beautiful pages. It transforms the markdown pages into jinja2 templates that use variables, calls to macros and custom filters.

You can also partially replace MkDocs plugins with mkdocs-macros modules, and pluglets (pre-installed modules).

Using variables

You can leverage the power of Python in markdown thanks to jinja2 by writing this :

The unit price of product A is {{ unit_price }} EUR.
Taking the standard discount into account,
the sale price of 50 units is {{ price(unit_price, 50) }} EUR.

If you defined a price() function, this could translate into:

The unit price of product A is 10.00 EUR.
Taking the standard discount into account,
the sale price of 50 units is 450.00 EUR.

The result of a macro can be HTML code: this makes macros especially useful to make custom extensions to the syntax of markdown, such as buttons, calls to email, embedding YouTube videos, etc.

It is possible to use the wide range of facilities provided by Jinja2 templates such as conditions ({% if ... %}) and loops ({% for ... %}).

Defining variables

Regular variables can be defined in five ways:

No Validity For whom Description
1. global designer of the website in the mkdocs.yml file, under the extra heading
2. global contributor in external yaml definition files
3. global programmer in a main.py file (Python), by adding them to a dictionary
4. local (page) writer in the YAML header of each Markdown page
5. local (page) writer with a {%set variable = value %} statement

In addition, predefined objects are provided (local and global), typically for the environment, project, page, git information, etc.

Macros and filters

Similarly programmers can define their own macros and filters, as Python functions in the main.py file, which the users will then be able to use without much difficulty, as jinja2 directives in the markdown page.

Installation

Prerequisites

  • Python version > 3.5
  • MkDocs version >= 1.0 (it should work > 0.17 (it should be compatible with post 1.0 versions)

Standard installation

pip install mkdocs-macros-plugin

"Manual installation"

To install the package, download it and run:

pip install .
# or...
python setup.py install

Development/test installation

To install the extra dependencies required for testing the package, run:

pip install "mkdocs-macros-plugin[test]"

Declaration of plugin

Declare the plugin in the the file mkdocs.yml:

plugins:
    - search
    - macros

Note: If you have no plugins entry in your config file yet, you should also add the search plugin. If no plugins entry is set, MkDocs enables search by default; but if you use it, then you have to declare it explicitly.

Check that it works

The recommended way to check that the plugin works properly is to add the following command in one of the pages of your site (let's say info.md):

{{ macros_info() }}

In the terminal, restart the environment:

> mkdocs serve

You will notice that additional information now appears in the terminal:

INFO    -  Building documentation...
[macros] Macros arguments: {'module_name': 'main', 'include_yaml': [], 'j2_block_start_string': '', 'j2_block_end_string': '', 'j2_variable_start_string': '', 'j2_variable_end_string': ''}

Within the browser (e.g. http://127.0.0.1:8000/info), you should see a description of the plugins environment:

macros_info()

If you see it that information, you should be all set.

Give a good look at the General List, since it gives you an overview of what you can do out of the box with the macros plugin.

The other parts give you more detailed information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].