18 lines
700 B
PHP
18 lines
700 B
PHP
<?php
|
|
function decodeMarkdownEntities($markdown) {
|
|
// Decode HTML entities in code blocks
|
|
$markdown = preg_replace_callback('/(```.*?```|`[^`]*`)/s', function ($matches) {
|
|
return htmlentities($matches[0], ENT_QUOTES, 'UTF-8');
|
|
}, $markdown);
|
|
|
|
// Decode HTML entities in inline math and display math
|
|
$markdown = preg_replace_callback('/(\$\$.*?\$\$|\$[^$]*\$)/s', function ($matches) {
|
|
return htmlentities($matches[0], ENT_QUOTES, 'UTF-8');
|
|
}, $markdown);
|
|
// 特殊转义
|
|
$markdown = str_replace("<p>", "", $markdown);
|
|
$markdown = str_replace("</p>", "\n", $markdown);
|
|
$markdown = str_replace("<br />", "\n", $markdown);
|
|
return $markdown;
|
|
}
|