haleks/laravel-markdown

This package is abandoned and no longer maintained. The author suggests using the haleks/writedown package instead.

Laravel Markdown integrate markdown 'curly' braces inside the blade template engine, adding view extension and also giving the possibility of extending CommonMark.

0.3.1 2016-11-04 19:56 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:50:53 UTC


README

haleks logo

Laravel Markdown
travic ci latest release code climate liscense

Laravel Markdown integrate markdown "curly" braces inside the blade template engine, also giving the possibility of extending CommonMark.

Abandoned

Abandoned in favor of the more flexible Writedown. Which add supports for multiple markdown parsers.

Documentation

Pre-Installation

This project requires that the following packages be formerly installed.

PHP 5.5+ / HHVM 3.6+

Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Installation

Pulling the package

Install via composer's require command:

composer require haleks/laravel-markdown

Install via your projects' composer.json:

{
    ...
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "haleks/laravel-markdown": "0.3.*"
    },
    ...
}

Once the package is in the require section you will need to run composer's install or update command to pull in the code:

# Install
composer install -o

# or Update
composer update -o

Note: The trailing -o is an optional option which is used to optimize the autoloader and is considered best practice.

Registering the package

Once the package as been successfully pulled you will need to register the package's service provider to the Laravel's app and optionally add the package's facade by modifying config/app.php:

...
    'providers' => [
        ...
        Haleks\Markdown\MarkdownServiceProvider::class,

    ],
...

    'aliases' => [
        ...
        // Optional facade
        'Markdown' => Haleks\Markdown\Facades\Markdown::class,

    ],
...

Configuration

Laravel Markdown supports optional configuration.

You will need to pull the configuration in you app's configuration folder to make modifications to the default configuration. You can achieve this with the following artisan command:

php artisan vendor:publish

The configuration file will be created at config/markdown.php.

Options
Enable Markdown Tags

The option tags specifies if you wish to extend blade with markdown tags. If set to true you will be able to render markdown via the "curly" braces {% %} inside your blade.php files.

Enable Views Extensions

The option views specifies if you wish to intergrate extend views extensions. If set to true you will be able to render markdown views with the following extensions: *.md, *.md.php, and *.md.blade.php.

Enable Views Extensions

The option extensions specifies which extension you wish to intergrate inside the CommonMark converter. It uses CommonMark environment's addExtension() method to load the extensions.

How To Use

Facades

You may use the facade to pass markdown and return the equivalent html. The Markdown facade has simply one method convertToHtml('markdown here').

Inside classes
$html = Markdown::convertToHtml('# title');
Blade Views

You will need to use the unescaped echo because the converter returns html.

{!! Markdown::convertToHtml('# title') !!}

Tags Extensions

If the tags configuration is set to true. You may use the following "curly" brace short-cut in your *.blade.php files.

{% '# title' %}

Like Blade's escaped echo {{ }} the markdown tags are also equipped with the short-cut ternary statement. If the pass variable that doesn't exists the markdown will only parse the default.

{% $variable or 'default' %}

If you are using a JavaScript template engine which uses the markdown "curly" braces, just like Blade's "curly" braces, you may add a leading @ to leave it untouched for the JavaScript template engine.

@{% javascript stuff %}

Views Extensions

If the views configuration is set to true. You may use views with the following extensions: *.md, *.md.php, and *.md.blade.php. The *.md views will parse the markdown and return the html equivalent, while the *.md.php, and *.md.blade.php will parse the php first and followed by the markdown.

// *.md
# title

text
// *.md.php
# <?php echo 'title' ?>

text
// *.md.php
<?php echo '# title' ?>

text
// *.md.blade.php
# {{ 'title' }}

text
// *.md.blade.php
{{ '# title' }}

text

All the exemple above will output:

<h1>title</h1>
<p>text</p>

Markdown Extensions

You may extend the Markdown compiler with any extension that uses CommonMark environment addExtension() method.

Here are a few extension known to be compatible:

License

Laravel Markdown is licensed under The MIT License (MIT).