diff options
Diffstat (limited to 'vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php')
-rw-r--r-- | vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php | 23 |
1 files changed, 15 insertions, 8 deletions
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"; } /** |