因为我个人并不喜欢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)); 注释掉,发文测试,没再出现这个情况。
然而这是百度编辑器的原因。 @(huaji)
然而这是百度编辑器的原因。 @(huaji)
并不是,KindEditor一样有这个问题
再次测试了一下,KindEditor的确和UEditor一样有这个问题。。。