From 38eb884dea468b5153bdfe306d6b7f014548b907 Mon Sep 17 00:00:00 2001 From: Mehdi Baaboura Date: Tue, 16 Nov 2021 06:52:28 +0100 Subject: [PATCH] Added use_safe_mode configuration value --- .../MarkdownWikiBundleConfiguration.php | 10 +++++++++- .../MarkdownWikiBundleExtension.php | 1 + src/Resources/config/services.yaml | 1 + src/Service/MarkdownWikiImporter.php | 3 ++- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/DependencyInjection/MarkdownWikiBundleConfiguration.php b/src/DependencyInjection/MarkdownWikiBundleConfiguration.php index 9d154d6..d8562f3 100644 --- a/src/DependencyInjection/MarkdownWikiBundleConfiguration.php +++ b/src/DependencyInjection/MarkdownWikiBundleConfiguration.php @@ -39,7 +39,8 @@ public function getConfigTreeBuilder(): TreeBuilder { $root ->addDefaultsIfNotSet() ->children() - ->append($this->createSourceDirectoryNode()); + ->append($this->createSourceDirectoryNode()) + ->append($this->createSafeModeNode()); return $treeBuilder; } @@ -50,4 +51,11 @@ protected function createSourceDirectoryNode(): NodeDefinition { ->info("The path to the directory holding the source markdown files.") ->defaultValue("%kernel.project_dir%/wiki/"); } + + protected function createSafeModeNode(): NodeDefinition { + return $this->builder + ->booleanNode("use_safe_mode") + ->info("Whether to use parse down safe mode.") + ->defaultValue(false); + } } \ No newline at end of file diff --git a/src/DependencyInjection/MarkdownWikiBundleExtension.php b/src/DependencyInjection/MarkdownWikiBundleExtension.php index 4339981..948f387 100644 --- a/src/DependencyInjection/MarkdownWikiBundleExtension.php +++ b/src/DependencyInjection/MarkdownWikiBundleExtension.php @@ -52,5 +52,6 @@ public function load(array $configs, ContainerBuilder $container) { protected function addImporterDefinitionArguments(ContainerBuilder $container, array $config) { $definition = $container->getDefinition("markdownwiki.importer"); $definition->setArgument("\$sourceDirectory", $config["source_directory"]); + $definition->setArgument("\$useSafeMode", $config["use_safe_mode"]); } } \ No newline at end of file diff --git a/src/Resources/config/services.yaml b/src/Resources/config/services.yaml index e734ffa..8825dde 100644 --- a/src/Resources/config/services.yaml +++ b/src/Resources/config/services.yaml @@ -17,6 +17,7 @@ services: markdownwiki.importer: class: Gigadrive\Bundle\MarkdownWikiBundle\Service\MarkdownWikiImporter arguments: + - '' - '' - '@markdownwiki.parser' - '@logger' diff --git a/src/Service/MarkdownWikiImporter.php b/src/Service/MarkdownWikiImporter.php index 072cf0e..cf78a0d 100644 --- a/src/Service/MarkdownWikiImporter.php +++ b/src/Service/MarkdownWikiImporter.php @@ -35,6 +35,7 @@ class MarkdownWikiImporter { public function __construct( protected string $sourceDirectory, + protected bool $useSafeMode, protected MarkdownWikiParser $parser, protected LoggerInterface $logger ) { @@ -103,7 +104,7 @@ protected function readFilesInDirectory(string $path): ?MarkdownWikiPage { if ($language === "content") $language = "en"; // backwards compatibility $content[$language] = $this->parser - ->setSafeMode(true) + ->setSafeMode($this->useSafeMode) ->text($file->getContents()); } else { $language = $file->getFilenameWithoutExtension();