解决Typecho换编辑器后换行间距问题

因为我个人并不喜欢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)); 注释掉,发文测试,没再出现这个情况。

评论

  1. 6年前
    2019-4-16 5:05:24

    然而这是百度编辑器的原因。 @(huaji)

  2. 6年前
    2019-4-16 5:04:36

    然而这是百度编辑器的原因。 @(huaji)

  3. 博主
    Sakura
    6年前
    2019-4-16 10:45:00

    并不是,KindEditor一样有这个问题

  4. 博主
    Sakura
    6年前
    2019-4-16 10:51:37

    再次测试了一下,KindEditor的确和UEditor一样有这个问题。。。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇