CommonMark/Frontmatter reader for Pelican
Project description
Pelican FrontMark
A Pelican CommonMark/Front Matter reader.
This reader marse Markdown files with YAML frontmatter headers and formatted using the CommonMark specifications.
Requirements
Pelican FrontMark works with Pelican 3.7+ and Python 3.3+
Getting started
Install pelican-frontmark with pip:
pip install pelican-frontmark
And enable the plugin in you pelicanconf.py (or any configuration file you want to use):
PLUGINS = [ '...', 'frontmark', '...', ]
Files format
Frontmark will only recognize files using .md extension.
Here an article example:
--- title: My article title date: 2017-01-04 13:10 modified: 2017-01-04 13:13 tags: - tag 1 - tag 2 slug: my-article-slug lang: en category: A category authors: Me summary: Some summary status: draft custom: title: A custom metadata details: You can add any structured and typed YAML metadata --- My article content
Advanced configuration
Syntax highlighting
By default, FrontMark outputs code blocks in a standard html5 way, ie. a pre>code block with a language class. This allow to use any html5 syntax highlight JavaScript lib.
You can force Pygments usage to output html4 pre rendered syntax highlight by setting FRONTMARK_PYGMENTS to True for default parameters or manually setting it to a dict of Pygments HtmlRenderer parameters.
FRONTMARK_PYGMENTS = { 'linenos': 'inline', }
Settings
- `FRONTMARK_PARSE_LITERAL`: True by default. Set it to False if you don’t want multiline string literals (|) to be parsed as markdown.
- `FRONTMARK_PYGMENTS`: Not defined by default and output standard html5 code blocks. Can be set to True to force Pygments usage with default parameters or a dict of Pygments parameters
Registering custom YAML types
You can register custom YAML types using the frontmark_yaml_register signal:
from frontmark.signals import frontmark_yaml_register def upper_constructor(loader, noder): return loader.construct_scalar(node).upper() def register_upper(reader): return '!upper', upper_constructor def register(): frontmark_yaml_register.connected(register_upper):
Testing
To test the plugin against all supported Python versions, run tox:
tox
To test only within your current Python version with pytest:
pip install -e .[test] # Install with test dependencies pytest # Launch pytest test suite
or let setuptools do the job:
python setup.py test
Changelog
1.2.1 (2019-12-09)
- Support CommonMark 0.9.1
1.2.0 (2018-09-08)
- Upgrade to CommonMark 0.8+
- Drop support for Python version prior to 3.5
1.1.0 (2017-01-22)
- Added FRONTMARK_PYGMENTS optionnal setting for Pygments rendering
- Fix links handling (ie. {filename}…)
1.0.1 (2017-01-08)
- Test and fix plugin registeration
- Make version and description available at module level
1.0.0 (2017-01-08)
- Initial release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Built Distribution
Hashes for pelican_frontmark-1.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 365c3e0ffdf1e467f3585f3b934300c5b55a2dc13148f158fcb8ea003df1c55a |
|
MD5 | 18ac9085fe1772a5c92d5cc8d67b8796 |
|
BLAKE2-256 | 42d95d51fb9ef82c0040699c167e729323f2cb8a193bd7b18d1a80358589ea49 |