Lektor plugin to generate markdown with Python-Markdown
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Lektor Python-Markdown Plugin

pipeline status

A Lektor plugin to parse markdown using Python-Markdown. By default, lektor uses mistune to parse markdown field. With this plugin, you can chose which parser is to be used by setting a different type on the field. Either: markdown or pythonmarkdown


Add lektor-pythonmarkdown to your project from command line:

lektor plugins add lektor-pythonmarkdown


In your model, you need to define the type of field as follow:

name = Page

label = Body
type = pythonmarkdown

Warning !

This plugins is is obviously incompatible with all of the mistune-specific events and plugins. Namely, all of markdown-* events and the plugins built around them.

Advance configuration

This lektor plugins provide a nice way to configure python-markdown. For instance, it's possible to explicitly define the extentions to be enabled and to configure each of them seperatly.

For an advance configuration, you need to create a file named pythonmarkdown.ini in the configs folder.

In that file you may write something similar to the following:

# Define the configuration of python-markdown.
# Reference: https://python-markdown.github.io/reference/#markdown

#output_format = xhtml1
#tab_length = 4
#safe_mode = False
#enable_attributes = False
#smart_emphasis = True
#lazy_ol = True

# List extensions to be enabled.
markdown.extensions.extra = 1
markdown.extensions.admonition = 1
markdown.extensions.codehilite = 1
markdown.extensions.headerid = 1
markdown.extensions.meta = 1
markdown.extensions.nl2br = 1
markdown.extensions.sane_lists = 1
markdown.extensions.smarty = 1
markdown.extensions.toc = 1
markdown.extensions.wikilinks = 1

# Specific configuration for an extension.
# Reference: https://python-markdown.github.io/extensions/code_hilite/#usage
linenums = True
#guess_lang = True
#css_class = codehilite
#pygments_style = default
#noclasses = False
#use_pygments = True