Skip to content
Extracts YAML front matter from a file or string
Dart
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example
lib
test
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
pubspec.yaml

README.md

Front Matter

A front matter parser that extracts YAML metadata from the start of a file or string.

Build Status

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

Suppose you have the following Markdown file:

---
title: "Hello, world!"
author: "izolate"
---

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.

You can’t perform that action at this time.