diff options
Diffstat (limited to 'vendor/league/html-to-markdown/src')
5 files changed, 43 insertions, 14 deletions
diff --git a/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php b/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php index 67250769b..8fd4dd6e2 100644 --- a/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php +++ b/vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php @@ -32,7 +32,7 @@ class EmphasisConverter implements ConverterInterface, ConfigurationAwareInterfa $value = $element->getValue(); if (!trim($value)) { - return ''; + return $value; } if ($tag === 'i' || $tag === 'em') { diff --git a/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php b/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php index dafec077c..f737b4e19 100644 --- a/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php +++ b/vendor/league/html-to-markdown/src/Converter/ListItemConverter.php @@ -2,11 +2,26 @@ namespace League\HTMLToMarkdown\Converter; +use League\HTMLToMarkdown\Configuration; +use League\HTMLToMarkdown\ConfigurationAwareInterface; use League\HTMLToMarkdown\ElementInterface; -class ListItemConverter implements ConverterInterface +class ListItemConverter implements ConverterInterface, ConfigurationAwareInterface { /** + * @var Configuration + */ + protected $config; + + /** + * @param Configuration $config + */ + public function setConfig(Configuration $config) + { + $this->config = $config; + } + + /** * @param ElementInterface $element * * @return string @@ -29,10 +44,15 @@ class ListItemConverter implements ConverterInterface } if ($list_type === 'ul') { - return $prefix . '- ' . $value . "\n"; + $list_item_style = $this->config->getOption('list_item_style', '-'); + return $prefix . $list_item_style . ' ' . $value . "\n"; } - $number = $element->getSiblingPosition(); + if ($list_type === 'ol' && $start = $element->getParent()->getAttribute('start')) { + $number = $start + $element->getSiblingPosition() - 1; + } else { + $number = $element->getSiblingPosition(); + } return $prefix . $number . '. ' . $value . "\n"; } diff --git a/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php b/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php index cf852bfcf..7207b81a6 100644 --- a/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php +++ b/vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php @@ -109,7 +109,8 @@ class ParagraphConverter implements ConverterInterface { $regExs = array( // Match numbers ending on ')' or '.' that are at the beginning of the line. - '/^[0-9]+(?=\)|\.)/' + // They will be escaped if immediately followed by a space or newline. + '/^[0-9]+(?=(\)|\.)( |$))/' ); foreach ($regExs as $i) { diff --git a/vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php b/vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php index 7a4ec3357..0bb89e90f 100644 --- a/vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php +++ b/vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php @@ -33,20 +33,27 @@ class PreformattedConverter implements ConverterInterface // If the execution reaches this point it means it's just a pre tag, with no code tag nested + // Empty lines are a special case + if ($pre_content === '') { + return "```\n```\n"; + } + // Normalizing new lines $pre_content = preg_replace('/\r\n|\r|\n/', PHP_EOL, $pre_content); - // Checking if the string has multiple lines - $lines = preg_split('/\r\n|\r|\n/', $pre_content); - if (count($lines) > 1) { - // Multiple lines detected, adding three backticks and newlines - $markdown .= '```' . "\n" . $pre_content . "\n" . '```'; - } else { + // Is it a single line? + if (strpos($pre_content, PHP_EOL) === false) { // One line of code, wrapping it on one backtick. - $markdown .= '`' . $pre_content . '`'; + return '`' . $pre_content . '`'; + } + + // Ensure there's a newline at the end + if (strrpos($pre_content, PHP_EOL) !== strlen($pre_content) - 1) { + $pre_content .= PHP_EOL; } - return $markdown; + // Use three backticks + return "```\n" . $pre_content . "```\n"; } /** diff --git a/vendor/league/html-to-markdown/src/HtmlConverter.php b/vendor/league/html-to-markdown/src/HtmlConverter.php index db3c29e1c..8d8936ec5 100644 --- a/vendor/league/html-to-markdown/src/HtmlConverter.php +++ b/vendor/league/html-to-markdown/src/HtmlConverter.php @@ -38,7 +38,8 @@ class HtmlConverter 'bold_style' => '**', // Set to '__' if you prefer the underlined style 'italic_style' => '_', // Set to '*' if you prefer the asterisk style '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` + '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 '+' ); $this->environment = Environment::createDefaultEnvironment($defaults); |