<?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;
}
