Remove hard dependency with KnpMarkdownBundle

This commit is contained in:
William DURAND 2012-07-20 16:59:59 +02:00
parent 09fbfee03b
commit 64988d00c1
5 changed files with 45 additions and 7 deletions

View File

@ -12,16 +12,12 @@ For Symfony 2.0.x, you need to use the 1.* version of the bundle.
## Installation ## ## Installation ##
This bundle uses
[KnpMarkdownBundle](https://github.com/KnpLabs/KnpMarkdownBundle).
Register the namespace in `app/autoload.php`: Register the namespace in `app/autoload.php`:
// app/autoload.php // app/autoload.php
$loader->registerNamespaces(array( $loader->registerNamespaces(array(
// ... // ...
'Nelmio' => __DIR__.'/../vendor/bundles', 'Nelmio' => __DIR__.'/../vendor/bundles',
'Knp' => __DIR__.'/../vendor/bundles',
)); ));
Register the bundles in `app/AppKernel.php`: Register the bundles in `app/AppKernel.php`:
@ -32,7 +28,6 @@ Register the bundles in `app/AppKernel.php`:
return array( return array(
// ... // ...
new Nelmio\ApiDocBundle\NelmioApiDocBundle(), new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
new Knp\Bundle\MarkdownBundle\KnpMarkdownBundle(),
); );
} }

View File

@ -6,6 +6,7 @@
<parameters> <parameters>
<parameter key="nelmio_api_doc.extractor.api_doc_extractor.class">Nelmio\ApiDocBundle\Extractor\ApiDocExtractor</parameter> <parameter key="nelmio_api_doc.extractor.api_doc_extractor.class">Nelmio\ApiDocBundle\Extractor\ApiDocExtractor</parameter>
<parameter key="nelmio_api_doc.form.extension.description_form_type_extension.class">Nelmio\ApiDocBundle\Form\Extension\DescriptionFormTypeExtension</parameter> <parameter key="nelmio_api_doc.form.extension.description_form_type_extension.class">Nelmio\ApiDocBundle\Form\Extension\DescriptionFormTypeExtension</parameter>
<parameter key="nelmio_api_doc.twig.extension.markdown.class">Nelmio\ApiDocBundle\Twig\Extension\MarkdownExtension</parameter>
</parameters> </parameters>
<services> <services>
@ -15,9 +16,14 @@
<argument type="service" id="annotation_reader" /> <argument type="service" id="annotation_reader" />
<argument type="service" id="nelmio_api_doc.parser.form_type_parser" /> <argument type="service" id="nelmio_api_doc.parser.form_type_parser" />
</service> </service>
<service id="nelmio_api_doc.form.extension.description_form_type_extension" class="%nelmio_api_doc.form.extension.description_form_type_extension.class%"> <service id="nelmio_api_doc.form.extension.description_form_type_extension" class="%nelmio_api_doc.form.extension.description_form_type_extension.class%">
<tag name="form.type_extension" alias="form" /> <tag name="form.type_extension" alias="form" />
</service> </service>
<service id="nelmio_api_doc.twig.extension.markdown" class="%nelmio_api_doc.twig.extension.markdown.class%">
<tag name="twig.extension" />
</service>
</services> </services>
</container> </container>

View File

@ -50,7 +50,6 @@ class AppKernel extends Kernel
new \Symfony\Bundle\TwigBundle\TwigBundle(), new \Symfony\Bundle\TwigBundle\TwigBundle(),
new \Nelmio\ApiDocBundle\NelmioApiDocBundle(), new \Nelmio\ApiDocBundle\NelmioApiDocBundle(),
new \Nelmio\ApiDocBundle\Tests\Fixtures\NelmioApiDocTestBundle(), new \Nelmio\ApiDocBundle\Tests\Fixtures\NelmioApiDocTestBundle(),
new \Knp\Bundle\MarkdownBundle\KnpMarkdownBundle(),
); );
} }

View File

@ -0,0 +1,38 @@
<?php
namespace Nelmio\ApiDocBundle\Twig\Extension;
use dflydev\markdown\MarkdownExtraParser;
class MarkdownExtension extends \Twig_Extension
{
private $markdownParser;
public function __construct()
{
$this->markdownParser = new MarkdownExtraParser();
}
/**
* {@inheritdoc}
*/
public function getFilters()
{
return array(
'markdown' => new \Twig_Filter_Method($this, 'markdown', array('is_safe' => array('html'))),
);
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'nelmio_api_doc';
}
public function markdown($text)
{
return $this->markdownParser->transformMarkdown($text);
}
}

View File

@ -18,7 +18,7 @@
"symfony/framework-bundle": "2.1.*", "symfony/framework-bundle": "2.1.*",
"symfony/twig-bundle": "2.1.*", "symfony/twig-bundle": "2.1.*",
"symfony/form": "2.1.*", "symfony/form": "2.1.*",
"knplabs/knp-markdown-bundle": "dev-master" "dflydev/markdown": "1.0.*"
}, },
"require-dev": { "require-dev": {
"symfony/css-selector": "2.1.*", "symfony/css-selector": "2.1.*",