clippings/parsedown-provider

Pimple service provider for Parsedown.

1.1.0 2020-02-18 19:27 UTC

This package is auto-updated.

Last update: 2024-12-19 06:44:39 UTC


README

This is a service provider for the Markdown parser Parsedown. It could be used to easily use and configure Parsedown with Pimple or Silex.

Build Status

Installation

Install the latest version with Composer:

composer require clippings/parsedown-provider

Usage

Register the service provider in the Pimple container and enjoy!

$app->register(new Clippings\ParsedownProvider\ParsedownServiceProvider());

$html = $app['parsedown']->text($markdown);

It registers one service - parsedown which returns the same instance of Parsedown.

Configuration

You can configure it like that:

$app->register(new Clippings\ParsedownProvider\ParsedownServiceProvider(), [
    'parsedown.markup_escaped' => true,
]);

It accepts the following configuration parameters:

  • parsedown.class - The class to use to instantiate Parsedown. Default: Parsedown. You can use that to load an an extension of Parsedown like ParsedownExtra.

    Don't forget to composer require erusev/parsedown-extra and then you can do:

    $app->register(new Clippings\ParsedownProvider\ParsedownServiceProvider(), [
        'parsedown.class' => 'ParsedownExtra',
    ]);
  • parsedown.breaks_enabled - Whether to treat line breaks as new lines or not. Default: true. This is not the default for Markdown and Parsedown, but it is very common configuration - e.g. GitHub treats line breaks like that.

  • parsedown.markup_escaped - Whether to escape HTML. Default: false.

  • parsedown.urls_linked - Whether URLs are linked by default. Default: true. This is the Parsedown default. URLs would be auto-linked. It is similar to GFM.

Twig

If you have already registered Twig, probably with the TwigServiceProvider, the Parsedown service provider would also register a parsedown Twig filter for you to use in your templates.

You can use it like that:

{{ foo.markdown|parsedown }}

This will convert the Markdown you have directly in your template and output HTML using the same Parsedown instance you have configured.

Silex Application Trait

If you use it with Silex you can add the ParsedownTrait in your application:

<?php

class Application extends Silex\Application
{
    use Clippings\ParsedownProvider\ParsedownTrait;
}

Then you could use it like that:

$html = $app->parsedown($markdown);

Authors and License

The Parsedown provider was developed by the Clippings.com team and is distributed under the MIT license.

Read more about our projects at the Clippings Geeks blog.