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.
Source Distributions
Built Distribution
File details
Details for the file pelican_frontmark-1.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: pelican_frontmark-1.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 365c3e0ffdf1e467f3585f3b934300c5b55a2dc13148f158fcb8ea003df1c55a |
|
MD5 | 18ac9085fe1772a5c92d5cc8d67b8796 |
|
BLAKE2b-256 | 42d95d51fb9ef82c0040699c167e729323f2cb8a193bd7b18d1a80358589ea49 |