MarkdownHelper::toHTML() 

\nn\t3::MarkdownHelper()->toHTML($str = ''); 

Convert a text containing markdown to HTML.

\Nng\Nnhelpers\Helpers\MarkdownHelper::toHTML( '...' );
Copied!

| @return string

Source Code 

public static function toHTML( $str = '' ) {
	if (!class_exists(\Parsedown::class)) {
		\nn\t3::autoload();
	}
	$parsedown = new \Parsedown();
	$result = $parsedown->text( $str );
	$result = str_replace(['&', '>', ''', '"', ''', '<'], ['&', '>', ''', '"', "'", '<'], $result);
	$result = trim($result);
	if (!$result) return '';
	$dom = new \DOMDocument();
	$dom->loadXML( '<t>' . $result . '</t>', LIBXML_NOENT | LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING );
	if (!$dom) return $result;
	if ($pre = $dom->getElementsByTagName('pre'));
	if (!$pre) return $result;
	foreach ($pre as $el) {
		if ($code = $el->getElementsByTagName('code')) {
			foreach ($code as $codeEl) {
				$codeEl->setAttribute('class', 'language-php');
			}
		}
	}
	$html = $dom->saveHTML( $dom->getElementsByTagName('t')->nodeValue ?? null );
	return trim(str_replace(['<t>', '</t>'], '', $html));
}
Copied!