haleks / laravel-markdown
Laravel Markdown integrate markdown 'curly' braces inside the blade template engine, adding view extension and also giving the possibility of extending CommonMark.
Requires
- php: >=5.5.9
- illuminate/contracts: 5.0.*|5.1.*|5.2.*|5.3.*
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*
- illuminate/view: 5.0.*|5.1.*|5.2.*|5.3.*
- league/commonmark: 0.10.*|0.12.*|0.13.*|0.14.*
Requires (Dev)
- mockery/mockery: ~0.9
- orchestra/testbench: ~3.2
- phpunit/phpunit: ~4.0
- webuni/commonmark-attributes-extension: 0.3.*
README
Laravel Markdown
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.
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).