因为我个人并不喜欢Markdown,于是我把Markdown解析关掉了,这样te在编辑文章或是页面的时候,编辑器就没了,只能手动敲html代码,很累,于是我装了UEditor,装完后用了下,觉得还不错,然而很快我就发现了一个问题,我只要一回车就会产生两个空行,观察代码,发现文章中多了个<p><br/></p>,手动删掉后正常了,其实之前用KindEditor的时候我也遇到过这个bug,但是当时我还没觉得很严重。。。因为KE的Br不会跟P一起出现。。。但是UE就出现了这个问题。。。。

既然找到原因了就去解决它,到网上搜了下,有两办法:

1.

打开文件,var/Typecho/Common/Paragraph.php

在 76 行,找到如下代码

    $text = nl2br($text);

将其注释掉:

    //$text = nl2br($text);

2.

var/Typecho/Common/Paragraph.php文件,在:

    $text = str_replace("\r\n", "\n", trim($text));

下加一行:

    $text = preg_replace("/()\n/", "\\1", $text);

然而,这两个办法都不行,因为现在的TE根本没有var/Typecho/Common/Paragraph.php文件。

瞥了一眼var/Typecho文件夹,突然发现了一个叫做AutoP.php的文件,将文件打开后,我发现这个文件就是引发问题的原因。。。尝试直接干掉这个文件,后台的确没有出现那个情况了,但是前台直接挂了,这样不行,再仔细看了看代码,emmmm,$text = nl2br($text);不就在这么,果断的注释掉,再次发文测试,再次出现此问题,懵掉了。


观察了这个文件,发现还有一行

    /** 用br处理换行 */

       case false !== strpos('|li|dd|dt|td|p|a|span|cite|strong|sup|sub|small|del|u|i|b|ins|h1|h2|h3|h4|h5|h6|', $tagMatch):

       $text = nl2br(trim($text)); 

       break;

把$text = nl2br(trim($text)); 注释掉,发文测试,没再出现这个情况。