An implementation of YAML Front matter for PHP. Can parse the YAML and the Markdown.
Require the project with Composer:
composer require mnapoli/front-yaml
$parser = new Mni\FrontYAML\Parser();
$document = $parser->parse($str);
$yaml = $document->getYAML();
$html = $document->getContent();
If you don't want the Markdown to be parsed (maybe because it is not Markdown):
$document = $parser->parse($str, false);
The following file:
---
foo: bar
---
This is **strong**.
Will give:
var_export($document->getYAML());
// array("foo" => "bar")
var_export($document->getContent());
// "<p>This is <strong>strong</strong></p>"
$parser = new Mni\FrontYAML\Parser($yamlParser, $markdownParser);
This library uses dependency injection and abstraction to allow you to provide your own YAML or Markdown parser.
interface YAMLParser
{
public function parse($yaml);
}
FrontYAML uses by default Symfony's YAML parser.
interface MarkdownParser
{
public function parse($markdown);
}
FrontYAML uses by default Parsedown Markdown parser.
An adapter to League CommonMark is also included (you need to require the league/commonmark
though):
use \Mni\FrontYAML\Bridge\CommonMark\CommonMarkParser;
$parser = new Mni\FrontYAML\Parser(null, new CommonMarkParser());