Skip to main content

CommonMark/Frontmatter reader for Pelican

Project description

Pelican FrontMark

Build Status Coverage Status License Format Supported versions

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pelican_frontmark-1.2.1-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pelican_frontmark-1.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pelican_frontmark-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 365c3e0ffdf1e467f3585f3b934300c5b55a2dc13148f158fcb8ea003df1c55a
MD5 18ac9085fe1772a5c92d5cc8d67b8796
BLAKE2b-256 42d95d51fb9ef82c0040699c167e729323f2cb8a193bd7b18d1a80358589ea49

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page