X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FText%2FHTML.php;h=0e117a2205b9a7676897dd9f15e2f9a35a61d69a;hb=e8becc153856debb927d7afac17bae5c80a0abb7;hp=c77b84db8ab47a485f7219cdea899c2dfc673d11;hpb=fbbab822a0582601389cea43d5a2f8d78f94b972;p=friendica.git diff --git a/src/Content/Text/HTML.php b/src/Content/Text/HTML.php index c77b84db8a..0e117a2205 100644 --- a/src/Content/Text/HTML.php +++ b/src/Content/Text/HTML.php @@ -1,6 +1,6 @@ startRecording('rendering'); $message = str_replace("\r", "", $message); $message = Strings::performWithEscapedBlocks($message, '#
#iUs', function ($message) { @@ -396,6 +397,7 @@ class HTML $message = self::qualifyURLs($message, $basepath); } + DI::profiler()->stopRecording(); return $message; } @@ -585,6 +587,7 @@ class HTML */ public static function toPlaintext(string $html, $wraplength = 75, $compact = false) { + DI::profiler()->startRecording('rendering'); $message = str_replace("\r", "", $html); $doc = new DOMDocument(); @@ -593,6 +596,7 @@ class HTML $message = mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"); if (empty($message)) { + DI::profiler()->stopRecording(); return ''; } @@ -605,6 +609,11 @@ class HTML // Collecting all links $urls = self::collectURLs($message); + if (empty($message)) { + DI::profiler()->stopRecording(); + return ''; + } + @$doc->loadHTML($message, LIBXML_HTML_NODEFDTD); self::tagToBBCode($doc, 'html', [], '', ''); @@ -685,6 +694,7 @@ class HTML $message = self::quoteLevel(trim($message), $wraplength); + DI::profiler()->stopRecording(); return trim($message); } @@ -697,9 +707,11 @@ class HTML */ public static function toMarkdown($html) { + DI::profiler()->startRecording('rendering'); $converter = new HtmlConverter(['hard_break' => true]); $markdown = $converter->convert($html); + DI::profiler()->stopRecording(); return $markdown; } @@ -797,22 +809,6 @@ class HTML ]); } - /** - * Get html for contact block. - * - * @deprecated since version 2019.03 - * @see ContactBlock::getHTML() - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - * @throws \ImagickException - */ - public static function contactBlock() - { - $a = DI::app(); - - return ContactBlock::getHTML($a->profile); - } - /** * Format contacts as picture links or as text links * @@ -1003,20 +999,26 @@ class HTML '_blank' => true, ]); - /* Uncomment to debug HTMLPurifier behavior - $config->set('Core.CollectErrors', true); - $config->set('Core.MaintainLineNumbers', true); - */ + $config->set('AutoFormat.RemoveEmpty.Predicate', [ + 'colgroup' => [], // | + 'th' => [], // | + 'td' => [], // | + 'iframe' => ['src'], // ↳ Default HTMLPurify values + 'i' => ['class'], // Allows forkawesome icons + ]); + + // Uncomment to debug HTMLPurifier behavior + //$config->set('Core.CollectErrors', true); + //$config->set('Core.MaintainLineNumbers', true); $HTMLPurifier = new \HTMLPurifier($config); $text = $HTMLPurifier->purify($text); /** @var \HTMLPurifier_ErrorCollector $errorCollector */ - /* Uncomment to debug HTML Purifier behavior - $errorCollector = $HTMLPurifier->context->get('ErrorCollector'); - var_dump($errorCollector->getRaw()); - */ + // Uncomment to debug HTML Purifier behavior + //$errorCollector = $HTMLPurifier->context->get('ErrorCollector'); + //var_dump($errorCollector->getRaw()); return $text; }