A simple Laravel Markdown Parser with an optional meta section in the .md file

1.0 2014-07-22 19:24 UTC


Build Status

A simple Laravel 4 parser for markdown files with an optional meta-data section.


Laravel Markdown-Plus can be installed via composer by requiring the maxxscho/laravel-markdown-plus package in your project's composer.json.

    "require": {
        "maxxscho/laravel-markdown-plus": "~0"

Next add the service provider and the alias to app/config/app.

'providers' => [
    // ...

'aliases' => [
    // ..
    'MarkdownPlus' => 'Maxxscho\LaravelMarkdownPlus\Facade\LaravelMarkdownPlusFacade',


Markdown file example

The meta section should be in YAML style, seperated by a custom splitter, which can be set in the config as a regular expression, default 3 or more dashes in an own line. Example:

title: This is the title
subtitle: This is the subtitle
date: 5. September 2013
tags: [code, laravel]
# Content goes here

Lorem Ipsum ...

Usage in Laravel

$file = File::get('');

$document = MarkdownPlus::make($file);
$content = $document->getContent();
$title = $document->title(); // magic method

return View::make('your-view', compact('title', 'content'));

The meta data will be parsed with Symfony's Yaml Parser. After parsing the meta is an multidimensional array.
! Dates in the format YYYY-MM-DD will be parsed into a timestamp.

Available methods

$document->getContent() - returns the parsed Markdown (HTML-Content)

$document->getRawContent() - returns the raw content (pure Markdown)

$document->getMeta() - returns the whole meta data as an multidimensional array

$document->title() - this is a magic method. The name of the method returns its equivalent meta. For example $document->cool-meta() return the value of cool-meta: Cool Value


Laravel-Markdown-Plus comes with some basic configuration.
Publish the configuration to customize the options:

php artisan config:publish maxxscho/laravel-markdown-plus 

You'll find the config file in app/config/packages/maxxscho/laravel-markdown-plus

Available Config-Options

'use_meta' => true, - whether you wanna use meta data or not

'section_splitter' => '/\s+-{3,}\s+/', - the seciton splitter

'use_extra' => true, - do you wanna parse markdown with additional features

'markdown_parser_options' - options for the markdown parser itself. More infos


This is free software distributed under the terms of the MIT license.

Additional information

Inspired by an based on Dayle Rees Kurenai.

This package uses: