Parse and manage posts with YAML frontmatter
Project description
[Jekyll](http://jekyllrb.com/)-style YAML front matter offers a useful way to add arbitrary, structured metadata to text documents, regardless of type.
This is a small package to load and parse files (or just text) with YAML front matter.
[![Build Status](https://travis-ci.org/eyeseast/python-frontmatter.svg?branch=master)](https://travis-ci.org/eyeseast/python-frontmatter)
Install:
pip install python-frontmatter
Usage:
>>> import frontmatter
Load a post from a filename:
>>> post = frontmatter.load('tests/hello-world.markdown')
Or a file (or file-like object):
>>> with open('tests/hello-world.markdown') as f: ... post = frontmatter.load(f)
Or load from text:
>>> with open('tests/hello-world.markdown') as f: ... post = frontmatter.loads(f.read())
Access content:
>>> print(post.content) Well, hello there, world.# this works, too >>> print(post) Well, hello there, world.
Use metadata (metadata gets proxied as post keys):
>>> print(post['title']) Hello, world!
Metadata is a dictionary, with some handy proxies:
>>> sorted(post.keys()) ['layout', 'title']>>> from pprint import pprint >>> post['excerpt'] = 'tl;dr' >>> pprint(post.metadata) {'excerpt': 'tl;dr', 'layout': 'post', 'title': 'Hello, world!'}
If you don’t need the whole post object, just parse:
>>> with open('tests/hello-world.markdown') as f: ... metadata, content = frontmatter.parse(f.read()) >>> print(metadata['title']) Hello, world!
Write back to plain text, too:
>>> print(frontmatter.dumps(post)) # doctest: +NORMALIZE_WHITESPACE --- excerpt: tl;dr layout: post title: Hello, world! --- Well, hello there, world.
Or write to a file (or file-like object):
>>> from io import BytesIO >>> f = BytesIO() >>> frontmatter.dump(post, f) >>> print(f.getvalue().decode('utf-8')) # doctest: +NORMALIZE_WHITESPACE --- excerpt: tl;dr layout: post title: Hello, world! --- Well, hello there, world.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for python-frontmatter-0.4.3.macosx-10.13-intel.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7027d85de9e9b4ef52fb13a605dc7e0f4c5402b3e1da77177d06eafe0c4689a |
|
MD5 | 1663a7ef387e6459c6fefb761b686d75 |
|
BLAKE2b-256 | b12143a9f9a8f3f91201102350ccb98c4cecfa697379c9c7262f7a80db63744e |