.. _MarkdownHelper-toHTML:
==============================================
MarkdownHelper::toHTML()
==============================================
\\nn\\t3::MarkdownHelper()->toHTML(``$str = ''``);
----------------------------------------------
Convert a text containing markdown to HTML.
.. code-block:: php
\Nng\Nnhelpers\Helpers\MarkdownHelper::toHTML( '...' );
| ``@return string``
Source Code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: php
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( '' . $result . '', 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(['', ''], '', $html));
}