markdown默认解析换行为<br>标签,导致样式有时候很难控制,尤其是在手机客户端时,段与段之间的间距大小不一。

修改typecho markdown解析器,将<br>标签统一换成<p>标签。

打开文件var/HyperDown.php,找到如下代码:

private function parseNormal(array $lines)
{
    foreach ($lines as &$line) {
        $line = $this->parseInline($line);
    }

    $str = trim(implode("\n", $lines));
    $str = preg_replace("/(\n\s*){2,}/", "</p><p>", $str);
    $str = preg_replace("/\n/", "<br>", $str);

    return preg_match("/^\s*$/", $str) ? '' : "<p>{$str}</p>";
}

替换为下面的代码即可:

private function parseNormal(array $lines)
{
    foreach ($lines as &$line) {
        $line = $this->parseInline($line);
    }

    $str = trim(implode("\n", $lines));
    $str = preg_replace("/(\n\s*){2,}/", "</p><p>", $str);
    $str = preg_replace("/\n/", "</p><p>", $str);

    return preg_match("/^\s*$/", $str) ? '' : "<p>{$str}</p>";
}

标签: Typecho, Markdown

添加新评论