aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/league/html-to-markdown/src/Environment.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/league/html-to-markdown/src/Environment.php')
-rw-r--r--vendor/league/html-to-markdown/src/Environment.php104
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/league/html-to-markdown/src/Environment.php b/vendor/league/html-to-markdown/src/Environment.php
new file mode 100644
index 000000000..560cfe613
--- /dev/null
+++ b/vendor/league/html-to-markdown/src/Environment.php
@@ -0,0 +1,104 @@
+<?php
+
+namespace League\HTMLToMarkdown;
+
+use League\HTMLToMarkdown\Converter\BlockquoteConverter;
+use League\HTMLToMarkdown\Converter\CodeConverter;
+use League\HTMLToMarkdown\Converter\CommentConverter;
+use League\HTMLToMarkdown\Converter\ConverterInterface;
+use League\HTMLToMarkdown\Converter\DefaultConverter;
+use League\HTMLToMarkdown\Converter\DivConverter;
+use League\HTMLToMarkdown\Converter\EmphasisConverter;
+use League\HTMLToMarkdown\Converter\HardBreakConverter;
+use League\HTMLToMarkdown\Converter\HeaderConverter;
+use League\HTMLToMarkdown\Converter\HorizontalRuleConverter;
+use League\HTMLToMarkdown\Converter\ImageConverter;
+use League\HTMLToMarkdown\Converter\LinkConverter;
+use League\HTMLToMarkdown\Converter\ListBlockConverter;
+use League\HTMLToMarkdown\Converter\ListItemConverter;
+use League\HTMLToMarkdown\Converter\ParagraphConverter;
+use League\HTMLToMarkdown\Converter\PreformattedConverter;
+use League\HTMLToMarkdown\Converter\TextConverter;
+
+final class Environment
+{
+ /**
+ * @var Configuration
+ */
+ protected $config;
+
+ /**
+ * @var ConverterInterface[]
+ */
+ protected $converters = array();
+
+ public function __construct(array $config = array())
+ {
+ $this->config = new Configuration($config);
+ $this->addConverter(new DefaultConverter());
+ }
+
+ /**
+ * @return Configuration
+ */
+ public function getConfig()
+ {
+ return $this->config;
+ }
+
+ /**
+ * @param ConverterInterface $converter
+ */
+ public function addConverter(ConverterInterface $converter)
+ {
+ if ($converter instanceof ConfigurationAwareInterface) {
+ $converter->setConfig($this->config);
+ }
+
+ foreach ($converter->getSupportedTags() as $tag) {
+ $this->converters[$tag] = $converter;
+ }
+ }
+
+ /**
+ * @param string $tag
+ *
+ * @return ConverterInterface
+ */
+ public function getConverterByTag($tag)
+ {
+ if (isset($this->converters[$tag])) {
+ return $this->converters[$tag];
+ }
+
+ return $this->converters[DefaultConverter::DEFAULT_CONVERTER];
+ }
+
+ /**
+ * @param array $config
+ *
+ * @return Environment
+ */
+ public static function createDefaultEnvironment(array $config = array())
+ {
+ $environment = new static($config);
+
+ $environment->addConverter(new BlockquoteConverter());
+ $environment->addConverter(new CodeConverter());
+ $environment->addConverter(new CommentConverter());
+ $environment->addConverter(new DivConverter());
+ $environment->addConverter(new EmphasisConverter());
+ $environment->addConverter(new HardBreakConverter());
+ $environment->addConverter(new HeaderConverter());
+ $environment->addConverter(new HorizontalRuleConverter());
+ $environment->addConverter(new ImageConverter());
+ $environment->addConverter(new LinkConverter());
+ $environment->addConverter(new ListBlockConverter());
+ $environment->addConverter(new ListItemConverter());
+ $environment->addConverter(new ParagraphConverter());
+ $environment->addConverter(new PreformattedConverter());
+ $environment->addConverter(new TextConverter());
+
+ return $environment;
+ }
+}