AI摘要:本文介绍了一个关于 Typecho 使用 <!--more--> 分隔符后出现过多 <br> 标签的 bug 修复过程。作者尝试了网上的方法,但并未完全解决问题。最后,通过将替换后的 <br> 标签闭合,成功修复了 bug。作者表示,这可能是由于触发了后续代码导致的离奇修复。同时,作者提醒,两个互相弥补的 bug 可能才是最难发现的。
Powered by AISummary and MoonShot KimiChat.
使用了 <!--more--> 分隔符后,首页的文章显示中出现了一大片空白,审查元素发现。多了好多<br> 标签。其实这个问题老早就发现了,不过今天特别不爽于是想修复一下。
在网上查了查资料,说是 Typecho 对于换行符的替换处理问题,不过按照网上的方法似乎并没有完全解决。
网上的方法是 注释掉在/var/hyperDown.php
文件1177行:
//$str = preg_replace("/\n/", "<br>", $str);
但是经过测试后发现这样做会让段内全部换行全部失效,并不合适。
一个很离奇的尝试,我试着将替换后的 <br> 标签闭合,即将这一行改成这样:
$str = preg_replace("/\n/", "<br />", $str);
莫名其妙的就让 bug 消失了,审查元素的时候也只是发现多余的 <br> 标签被清理掉,而段内的 <br> 也没有变成 <br />。所以说这次 bug 的修复很离奇,可能是由于触发了之后的一些代码,两两呼应直接把 bug 修复了。
但其实说不定是因为自己引入了一个复合式 bug 也说不定呢🤣
两个bug是互相弥补的,好比“负负得正”,软件反而能正常运行。这种bug可能才是最难发现的bug。当你修正了其中的一个bug,另一个bug才会暴露出来。这时对你来说,你会觉得刚才修正错了,因为那是你最后修改的地方,你就怀疑自己在那里做错了,但是你其实是对的。
(出自《黑客与画家》)
等之后琢磨透了说不定会有更好的解决方案,先这么留着吧ww
参考链接
[bo'ke'yr]()https://www.cnblogs.com/richerdyoung/p/10283407.html
只有一条评论 QAQ
真神奇,居然成功了!真是奇怪的bug,多余的空白行终于消失了。OωO