Go to file
2012-10-12 14:41:57 -05:00
DependencyInjection address more comments 2012-10-12 14:41:57 -05:00
Helper Fixed the typehint to use the interface 2012-05-03 10:46:16 +02:00
Parser address comments 2012-10-12 14:30:11 -05:00
Resources/config add support for sundown extension 2012-10-11 20:44:30 -05:00
Tests add support for sundown extension 2012-10-11 20:44:30 -05:00
Twig/Extension Change Knplabs to Knp. BC break before Symfony2 release. 2011-07-03 11:30:09 +02:00
vendor/parser add support for sundown extension 2012-10-11 20:44:30 -05:00
.gitignore add support for sundown extension 2012-10-11 20:44:30 -05:00
.travis.yml add support for sundown extension 2012-10-11 20:44:30 -05:00
composer.json add support for sundown extension 2012-10-11 20:44:30 -05:00
KnpMarkdownBundle.php Change Knplabs to Knp. BC break before Symfony2 release. 2011-07-03 11:30:09 +02:00
LICENSE Initial commit 2010-05-05 17:11:02 +02:00
MarkdownParserInterface.php Change Knplabs to Knp. BC break before Symfony2 release. 2011-07-03 11:30:09 +02:00
phpunit.xml.dist add support for sundown extension 2012-10-11 20:44:30 -05:00
README.markdown add support for sundown extension 2012-10-11 20:44:30 -05:00

Provide markdown conversion to your Symfony2 projects.

This implementation is based on Michel Fortin work. We added PHP5 sugar, feature selection, and unit tests.

Build Status

INSTALLATION

Add the following entry to deps the run php bin/vendors install.

[KnpMarkdownBundle]
    git=http://github.com/KnpLabs/KnpMarkdownBundle.git
    target=/bundles/Knp/Bundle/MarkdownBundle

Register the bundle in app/AppKernel.php

$bundles = array(
    // ...
    new Knp\Bundle\MarkdownBundle\KnpMarkdownBundle(),
);

Register namespace in app/autoload.php

$loader->registerNamespaces(array(
    // ...
    'Knp'              => __DIR__.'/../vendor/bundles',
));

USAGE

// Use the service
$html = $this->container->get('markdown.parser')->transform($text);

// Use the helper
echo $view['markdown']->transform($text);

If you have enabled the twig markdown filter, you can use the following in your twig templates:

{{ my_data | markdown }}

Change the parser implementation

Create a service implementing Knp\Bundle\MarkdownBundle\ParserInterface, then configure the bundle to use it:

knp_markdown:
      parser:
              service: my.markdown.parser

Alternatively if you are using the markdown.parser.sundown there are options for enabling sundown extensions and render flags, see the default Configuration with:

php app/console config:dump-reference knp_markdown

This bundle comes with 5 parser services, 4 based on the same algorithm but providing different levels of compliance to the markdown specification, and one which is uses the php sundown extension:

  • markdown.parser.max // fully compliant = slower (default implementation)
  • markdown.parser.medium // expensive and uncommon features dropped
  • markdown.parser.light // expensive features dropped
  • markdown.parser.min // most features dropped = faster
  • markdown.parser.sundown // faster and fully compliant (recommended)

markdown.parser.sundown requires php sundown extension.

For more details, see the implementations in Parser/Preset.

TEST

phpunit -c myapp vendor/bundles/Knp/Bundle/MarkdownBundle