https://github.com/mnapoli/FrontYAML
YAML Front matter parser
https://github.com/mnapoli/FrontYAML
frontmatter markdown markdown-parser php yaml
Last synced: 8 days ago
JSON representation
YAML Front matter parser
- Host: GitHub
- URL: https://github.com/mnapoli/FrontYAML
- Owner: mnapoli
- License: other
- Created: 2014-01-24T23:32:00.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2025-01-29T09:02:46.000Z (3 months ago)
- Last Synced: 2025-04-04T23:01:41.134Z (10 days ago)
- Topics: frontmatter, markdown, markdown-parser, php, yaml
- Language: PHP
- Homepage:
- Size: 58.6 KB
- Stars: 285
- Watchers: 7
- Forks: 29
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- project-awesome - mnapoli/FrontYAML - YAML Front matter parser (PHP)
README
# FrontYAML
An implementation of YAML Front matter for PHP. It can parse both YAML **and** Markdown.
[](https://packagist.org/packages/mnapoli/front-yaml)
## Installation
Require the project with Composer:
```
composer require mnapoli/front-yaml
```## Usage
```php
$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):
```php
$document = $parser->parse($str, false);
```## Example
The following file:
```markdown
---
foo: bar
---
This is **strong**.
```Will give:
```php
var_export($document->getYAML());
// array("foo" => "bar")var_export($document->getContent());
// "This is strong
"
```## YAML and Markdown parsers
```php
$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.
```php
interface YAMLParser
{
public function parse($yaml);
}
```FrontYAML uses by default [Symfony's YAML parser](http://symfony.com/doc/current/components/yaml/introduction.html).
```php
interface MarkdownParser
{
public function parse($markdown);
}
```FrontYAML uses by default the [League CommonMark parser](https://github.com/thephpleague/commonmark).