X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FText%2FHTML.php;h=c256717a159c972fff3bdac91af123fe6486dcce;hb=e6b1f9ef090c77ab76a9ced1f0126a1f3e8aefaf;hp=896db876f581bd5fa4eb0440f12e1bf49a3496d3;hpb=88353ce56f0e5da6352af2d999a58bd0c9b375f7;p=friendica.git diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index 896db876f5..c256717a15 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -11,6 +11,7 @@ use DOMXPath; use Friendica\Core\Addon; use Friendica\Util\Network; use Friendica\Util\XML; +use League\HTMLToMarkdown\HtmlConverter; class HTML { @@ -122,7 +123,7 @@ class HTML // Removing code blocks before the whitespace removal processing below $codeblocks = []; $message = preg_replace_callback( - '#
(.*)
#iUs', + '#
(.*)
#iUs', function ($matches) use (&$codeblocks) { $return = '[codeblock-' . count($codeblocks) . ']'; @@ -131,7 +132,7 @@ class HTML $prefix = '[code=' . $matches[1] . ']'; } - $codeblocks[] = $prefix . trim($matches[2]) . '[/code]'; + $codeblocks[] = $prefix . PHP_EOL . trim($matches[2]) . PHP_EOL . '[/code]'; return $return; }, $message @@ -520,7 +521,7 @@ class HTML // A list of some links that should be ignored $list = ["/user/", "/tag/", "/group/", "/profile/", "/search?search=", "/search?tag=", "mailto:", "/u/", "/node/", - "//facebook.com/profile.php?id=", "//plus.google.com/", "//twitter.com/"]; + "//plus.google.com/", "//twitter.com/"]; foreach ($list as $listitem) { if (strpos($treffer[1], $listitem) !== false) { $ignore = true; @@ -549,8 +550,6 @@ class HTML public static function toPlaintext($html, $wraplength = 75, $compact = false) { - global $lang; - $message = str_replace("\r", "", $html); $doc = new DOMDocument(); @@ -674,4 +673,19 @@ class HTML return trim($message); } + + /** + * Converts provided HTML code to Markdown. The hardwrap parameter maximizes + * compatibility with Diaspora in spite of the Markdown standards. + * + * @param string $html + * @return string + */ + public static function toMarkdown($html) + { + $converter = new HtmlConverter(['hard_break' => true]); + $markdown = $converter->convert($html); + + return $markdown; + } }