mnapoli/front-yaml

Maintainers

Details

github.com/mnapoli/FrontYAML

Source

Installs: 5 139 417

Dependents: 54

Suggesters: 0

Security: 0

Stars: 285

Watchers: 8

Forks: 28

2.0.3 2024-02-07 14:42 UTC

This package is auto-updated.

Last update: 2024-12-07 16:40:27 UTC


README

An implementation of YAML Front matter for PHP. It can parse both YAML and Markdown.

Total Downloads

Installation

Require the project with Composer:

composer require mnapoli/front-yaml

Usage

$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);

Example

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>"

YAML and Markdown parsers

$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 the League CommonMark parser.