3 namespace League\HTMLToMarkdown;
5 use League\HTMLToMarkdown\Converter\BlockquoteConverter;
6 use League\HTMLToMarkdown\Converter\CodeConverter;
7 use League\HTMLToMarkdown\Converter\CommentConverter;
8 use League\HTMLToMarkdown\Converter\ConverterInterface;
9 use League\HTMLToMarkdown\Converter\DefaultConverter;
10 use League\HTMLToMarkdown\Converter\DivConverter;
11 use League\HTMLToMarkdown\Converter\EmphasisConverter;
12 use League\HTMLToMarkdown\Converter\HardBreakConverter;
13 use League\HTMLToMarkdown\Converter\HeaderConverter;
14 use League\HTMLToMarkdown\Converter\HorizontalRuleConverter;
15 use League\HTMLToMarkdown\Converter\ImageConverter;
16 use League\HTMLToMarkdown\Converter\LinkConverter;
17 use League\HTMLToMarkdown\Converter\ListBlockConverter;
18 use League\HTMLToMarkdown\Converter\ListItemConverter;
19 use League\HTMLToMarkdown\Converter\ParagraphConverter;
20 use League\HTMLToMarkdown\Converter\PreformattedConverter;
21 use League\HTMLToMarkdown\Converter\TextConverter;
23 final class Environment
31 * @var ConverterInterface[]
33 protected $converters = array();
35 public function __construct(array $config = array())
37 $this->config = new Configuration($config);
38 $this->addConverter(new DefaultConverter());
42 * @return Configuration
44 public function getConfig()
50 * @param ConverterInterface $converter
52 public function addConverter(ConverterInterface $converter)
54 if ($converter instanceof ConfigurationAwareInterface) {
55 $converter->setConfig($this->config);
58 foreach ($converter->getSupportedTags() as $tag) {
59 $this->converters[$tag] = $converter;
66 * @return ConverterInterface
68 public function getConverterByTag($tag)
70 if (isset($this->converters[$tag])) {
71 return $this->converters[$tag];
74 return $this->converters[DefaultConverter::DEFAULT_CONVERTER];
78 * @param array $config
82 public static function createDefaultEnvironment(array $config = array())
84 $environment = new static($config);
86 $environment->addConverter(new BlockquoteConverter());
87 $environment->addConverter(new CodeConverter());
88 $environment->addConverter(new CommentConverter());
89 $environment->addConverter(new DivConverter());
90 $environment->addConverter(new EmphasisConverter());
91 $environment->addConverter(new HardBreakConverter());
92 $environment->addConverter(new HeaderConverter());
93 $environment->addConverter(new HorizontalRuleConverter());
94 $environment->addConverter(new ImageConverter());
95 $environment->addConverter(new LinkConverter());
96 $environment->addConverter(new ListBlockConverter());
97 $environment->addConverter(new ListItemConverter());
98 $environment->addConverter(new ParagraphConverter());
99 $environment->addConverter(new PreformattedConverter());
100 $environment->addConverter(new TextConverter());