mnapoli / front-yaml
2.0.3
2024-02-07 14:42 UTC
Requires
- php: ^7.4|^8.0
- league/commonmark: ^2.0
- symfony/yaml: ^4.0|^5.0|^6.0|^7.0
Requires (Dev)
- phpunit/phpunit: ^9.0
README
An implementation of YAML Front matter for PHP. It can parse both YAML and Markdown.
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.