diff options
author | Mario <mario@mariovavti.com> | 2022-02-11 09:21:19 +0000 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2022-02-11 09:21:19 +0000 |
commit | 6d8aabab2347feabdd804b609dcd4513f09f78d4 (patch) | |
tree | 9bea1aba6caa85084ec664f498c445bb92d9457c /vendor/league/html-to-markdown/src/HtmlConverter.php | |
parent | e74359fcfe4d97efe72a811b45526a69edae3893 (diff) | |
download | volse-hubzilla-6d8aabab2347feabdd804b609dcd4513f09f78d4.tar.gz volse-hubzilla-6d8aabab2347feabdd804b609dcd4513f09f78d4.tar.bz2 volse-hubzilla-6d8aabab2347feabdd804b609dcd4513f09f78d4.zip |
composer libs minor version updates
Diffstat (limited to 'vendor/league/html-to-markdown/src/HtmlConverter.php')
-rw-r--r-- | vendor/league/html-to-markdown/src/HtmlConverter.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/league/html-to-markdown/src/HtmlConverter.php b/vendor/league/html-to-markdown/src/HtmlConverter.php index 7cd543b34..7162b256d 100644 --- a/vendor/league/html-to-markdown/src/HtmlConverter.php +++ b/vendor/league/html-to-markdown/src/HtmlConverter.php @@ -121,6 +121,8 @@ class HtmlConverter implements HtmlConverterInterface $document->loadHTML('<?xml encoding="UTF-8">' . $html); $document->encoding = 'UTF-8'; + $this->replaceMisplacedComments($document); + if ($this->getConfig()->getOption('suppress_errors')) { \libxml_clear_errors(); } @@ -129,6 +131,36 @@ class HtmlConverter implements HtmlConverterInterface } /** + * Finds any comment nodes outside <html> element and moves them into <body>. + * + * @see https://github.com/thephpleague/html-to-markdown/issues/212 + * @see https://3v4l.org/7bC33 + */ + private function replaceMisplacedComments(\DOMDocument $document): void + { + // Find ny comment nodes at the root of the document. + $misplacedComments = (new \DOMXPath($document))->query('/comment()'); + if ($misplacedComments === false) { + return; + } + + $body = $document->getElementsByTagName('body')->item(0); + if ($body === null) { + return; + } + + // Loop over comment nodes in reverse so we put them inside <body> in + // their original order. + for ($index = $misplacedComments->length - 1; $index >= 0; $index--) { + if ($body->firstChild === null) { + $body->insertBefore($misplacedComments[$index]); + } else { + $body->insertBefore($misplacedComments[$index], $body->firstChild); + } + } + } + + /** * Convert Children * * Recursive function to drill into the DOM and convert each node into Markdown from the inside out. |