aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/league/html-to-markdown/src
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/league/html-to-markdown/src')
-rw-r--r--vendor/league/html-to-markdown/src/Converter/EmphasisConverter.php2
-rw-r--r--vendor/league/html-to-markdown/src/Converter/ListItemConverter.php26
-rw-r--r--vendor/league/html-to-markdown/src/Converter/ParagraphConverter.php3
-rw-r--r--vendor/league/html-to-markdown/src/Converter/PreformattedConverter.php23
-rw-r--r--vendor/league/html-to-markdown/src/HtmlConverter.php3
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);