Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mnapoli/FrontYAML
YAML Front matter parser
https://github.com/mnapoli/FrontYAML
frontmatter markdown markdown-parser php yaml
Last synced: 3 months 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: 2024-06-29T06:57:29.000Z (7 months ago)
- Last Synced: 2024-11-04T22:36:45.557Z (3 months ago)
- Topics: frontmatter, markdown, markdown-parser, php, yaml
- Language: PHP
- Homepage:
- Size: 53.7 KB
- Stars: 284
- Watchers: 8
- Forks: 28
- 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.
[![Total Downloads](https://poser.pugx.org/mnapoli/front-yaml/downloads.svg)](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).