diff --git a/DependencyInjection/Compiler/ParsersCompilerPass.php b/DependencyInjection/Compiler/ParsersCompilerPass.php
index 4e0c211..e479fc2 100644
--- a/DependencyInjection/Compiler/ParsersCompilerPass.php
+++ b/DependencyInjection/Compiler/ParsersCompilerPass.php
@@ -14,23 +14,22 @@ class ParsersCompilerPass implements CompilerPassInterface
return;
}
- if (!$container->hasDefinition('markdown.parser')) {
+ if (!$definition = $container->findDefinition('markdown.parser')) {
return;
}
- $defaultParserTag = $container->getDefinition('markdown.parser')->getTag('markdown.parser');
-
- $definition = $container->getDefinition('templating.helper.markdown');
+ $defaultAlias = current($definition->getTag('markdown.parser'));
+ $defaultAlias = $defaultAlias['alias'];
+ $definition = $container->getDefinition('templating.helper.markdown');
foreach ($container->findTaggedServiceIds('markdown.parser') as $id => $tags) {
- if ($defaultParserTag == $id) {
- $definition->addMethodCall('addParser', array(new Reference($id), 'default'));
- continue;
- }
-
foreach ($tags as $attributes) {
$alias = empty($attributes['alias']) ? $id : $attributes['alias'];
- $definition->addMethodCall('addParser', array(new Reference($id), $alias));
+ if ($defaultAlias == $alias) {
+ $definition->addMethodCall('addParser', array(new Reference($id), 'default'));
+ } else {
+ $definition->addMethodCall('addParser', array(new Reference($id), $alias));
+ }
}
}
}
diff --git a/DependencyInjection/KnpMarkdownExtension.php b/DependencyInjection/KnpMarkdownExtension.php
index c0c3e28..cf98d55 100644
--- a/DependencyInjection/KnpMarkdownExtension.php
+++ b/DependencyInjection/KnpMarkdownExtension.php
@@ -29,12 +29,20 @@ class KnpMarkdownExtension extends Extension
$loader->load('helper.xml');
$loader->load('twig.xml');
- if ($config['parser']['service'] == 'markdown.parser.sundown' && !class_exists('Sundown\Markdown')) {
- throw new InvalidConfigurationException('Sundown parser selected, but required extension is not installed or configured.');
+ if ('markdown.parser.sundown' == $config['parser']['service']) {
+ if (!class_exists('Sundown\\Markdown')) {
+ throw new InvalidConfigurationException('Sundown parser selected, but required extension is not installed or configured.');
+ }
+
+ $loader->load('sundown.xml');
+
+ $definition = $container->getDefinition('markdown.parser.sundown');
+ $definition->addTag('markdown.parser', array('alias' => 'sundown'));
+
+ $container->setParameter('markdown.sundown.extensions', $config['sundown']['extensions']);
+ $container->setParameter('markdown.sundown.render_flags', $config['sundown']['render_flags']);
}
- $container->setParameter('markdown.sundown.extensions', $config['sundown']['extensions']);
- $container->setParameter('markdown.sundown.render_flags', $config['sundown']['render_flags']);
$container->setAlias('markdown.parser', $config['parser']['service']);
}
}
diff --git a/Parser/Preset/Flavored.php b/Parser/Preset/Flavored.php
new file mode 100644
index 0000000..b4c1a15
--- /dev/null
+++ b/Parser/Preset/Flavored.php
@@ -0,0 +1,24 @@
+
-
-
-
-
-
-
-
-
- %markdown.sundown.extensions%
-
-
-
- %markdown.sundown.render_flags%
+
+
diff --git a/Resources/config/sundown.xml b/Resources/config/sundown.xml
new file mode 100644
index 0000000..84f3f87
--- /dev/null
+++ b/Resources/config/sundown.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+ %markdown.sundown.extensions%
+
+
+
+ %markdown.sundown.render_flags%
+
+
+