Front Matter
A front matter parser that extracts YAML metadata from the start of a file or string.
Front matter is a concept heavily borrowed from Jekyll, and other static site generators, referring to a block of YAML in the header of a file representing the file's metadata.
Usage
Given you have the following Markdown file:
---
title: "Hello, world!"
author: "maks"
---
This is an example.
Use parse
to parse a string, or parseFile
to read a file and parse its contents.
import 'dart:io';
import 'package:front_matter/front_matter.dart' as fm;
// Example 1 - parse a string.
void example1() async {
var file = File('/path/to/file.md');
var fileContents = await file.readAsString();
var doc = fm.parse(fileContents);
print(doc.data['title']); // "Hello, world!"
print(doc.content); // "This is an example."
}
// Example 2 - read file and parse contents.
void example2() async {
var doc = await fm.parseFile('path/to/file.md');
print(doc.data['title']); // "Hello, world!"
print(doc.content); // "This is an example."
}
The returned document is an instance of FrontMatterDocument
with properties:
YamlMap data
- The front matter.String content
- The content body.
To convert the document back to the initial string value, call toString()
.
var text = '---\nfoo: bar\n---\nHello, world!';
var doc = fm.parse(text);
assert(doc.toString(), equals(text)); // true
API
parse(String text, {String delimiter = "---"})
Parses a string, returns a FrontMatterDocument
with front matter and body content.
parseFile(String path, {String delimiter = "---"})
Reads a file and parses its contents. Returns a Future<FrontMatterDocument>
with front matter and body content.
Libraries
- front_matter_ml
- Extracts YAML front matter from a file.