diff options
Diffstat (limited to 'vendor/league/html-to-markdown/src')
-rw-r--r-- | vendor/league/html-to-markdown/src/Converter/CommentConverter.php | 38 | ||||
-rw-r--r-- | vendor/league/html-to-markdown/src/Element.php | 1 | ||||
-rw-r--r-- | vendor/league/html-to-markdown/src/HtmlConverter.php | 5 |
3 files changed, 40 insertions, 4 deletions
diff --git a/vendor/league/html-to-markdown/src/Converter/CommentConverter.php b/vendor/league/html-to-markdown/src/Converter/CommentConverter.php index 55038b254..959381d1b 100644 --- a/vendor/league/html-to-markdown/src/Converter/CommentConverter.php +++ b/vendor/league/html-to-markdown/src/Converter/CommentConverter.php @@ -2,17 +2,35 @@ namespace League\HTMLToMarkdown\Converter; +use League\HTMLToMarkdown\Configuration; +use League\HTMLToMarkdown\ConfigurationAwareInterface; use League\HTMLToMarkdown\ElementInterface; -class CommentConverter implements ConverterInterface +class CommentConverter implements ConverterInterface, ConfigurationAwareInterface { /** + * @var Configuration + */ + protected $config; + + /** + * @param Configuration $config + */ + public function setConfig(Configuration $config) + { + $this->config = $config; + } + + /** * @param ElementInterface $element * * @return string */ public function convert(ElementInterface $element) { + if ($this->shouldPreserve($element)) { + return '<!--' . $element->getValue() . '-->'; + } return ''; } @@ -23,4 +41,22 @@ class CommentConverter implements ConverterInterface { return array('#comment'); } + + /** + * @param ElementInterface $element + * + * @return bool + */ + private function shouldPreserve(ElementInterface $element) + { + $preserve = $this->config->getOption('preserve_comments'); + if ($preserve === true) { + return true; + } + if (is_array($preserve)) { + $value = trim($element->getValue()); + return in_array($value, $preserve); + } + return false; + } } diff --git a/vendor/league/html-to-markdown/src/Element.php b/vendor/league/html-to-markdown/src/Element.php index e1e9d1a09..80ae7a911 100644 --- a/vendor/league/html-to-markdown/src/Element.php +++ b/vendor/league/html-to-markdown/src/Element.php @@ -27,7 +27,6 @@ class Element implements ElementInterface switch ($this->getTagName()) { case 'blockquote': case 'body': - case 'code': case 'div': case 'h1': case 'h2': diff --git a/vendor/league/html-to-markdown/src/HtmlConverter.php b/vendor/league/html-to-markdown/src/HtmlConverter.php index 3381e1e1e..846131af6 100644 --- a/vendor/league/html-to-markdown/src/HtmlConverter.php +++ b/vendor/league/html-to-markdown/src/HtmlConverter.php @@ -40,6 +40,7 @@ class HtmlConverter implements HtmlConverterInterface 'remove_nodes' => '', // space-separated list of dom nodes that should be removed. example: 'meta style script' 'hard_break' => false, // Set to true to turn <br> into `\n` instead of ` \n` 'list_item_style' => '-', // Set the default character for each <li> in a <ul>. Can be '-', '*', or '+' + 'preserve_comments' => false, // Set to true to preserve comments, or set to an array of strings to preserve specific comments ); $this->environment = Environment::createDefaultEnvironment($defaults); @@ -229,13 +230,13 @@ class HtmlConverter implements HtmlConverterInterface return trim($markdown, "\n\r\0\x0B"); } - + /** * Pass a series of key-value pairs in an array; these will be passed * through the config and set. * The advantage of this is that it can allow for static use (IE in Laravel). * An example being: - * + * * HtmlConverter::setOptions(['strip_tags' => true])->convert('<h1>test</h1>'); */ public function setOptions(array $options) |