Fix bug removing spaces between hashtag links in HTML::toPlaintext

This commit is contained in:
Hypolite Petovan 2019-08-06 08:20:48 -04:00
parent 6b7dfd0c71
commit 5dbf319e06

View file

@ -100,8 +100,9 @@ class HTML
if ($node->hasChildNodes()) { if ($node->hasChildNodes()) {
/** @var \DOMNode $child */ /** @var \DOMNode $child */
foreach ($node->childNodes as $child) { foreach ($node->childNodes as $key => $child) {
if (trim($child->nodeValue)) { /* Remove empty text nodes at the start or at the end of the children list */
if ($key > 0 && $key < count($node->childNodes) -1 || trim($child->nodeValue)) {
$newNode = $child->cloneNode(true); $newNode = $child->cloneNode(true);
$node->parentNode->insertBefore($newNode, $node); $node->parentNode->insertBefore($newNode, $node);
} }
@ -170,7 +171,7 @@ class HTML
$message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8");
@$doc->loadHTML($message); @$doc->loadHTML($message, LIBXML_HTML_NODEFDTD);
XML::deleteNode($doc, 'style'); XML::deleteNode($doc, 'style');
XML::deleteNode($doc, 'head'); XML::deleteNode($doc, 'head');
@ -190,7 +191,8 @@ class HTML
$message = $doc->saveHTML(); $message = $doc->saveHTML();
$message = str_replace(["\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"], ["<", ">", "<br />", " ", ""], $message); $message = str_replace(["\n<", ">\n", "\r", "\n", "\xC3\x82\xC2\xA0"], ["<", ">", "<br />", " ", ""], $message);
$message = preg_replace('= [\s]*=i', " ", $message); $message = preg_replace('= [\s]*=i', " ", $message);
@$doc->loadHTML($message);
@$doc->loadHTML($message, LIBXML_HTML_NODEFDTD);
self::tagToBBCode($doc, 'html', [], "", ""); self::tagToBBCode($doc, 'html', [], "", "");
self::tagToBBCode($doc, 'body', [], "", ""); self::tagToBBCode($doc, 'body', [], "", "");