Typecho_Common::fixHtml 函数处理自闭合标签时的问题

起因

在折腾 icarus 移植主题的时候,想到给文章摘要增加一个“保留摘要样式”的选项(Typecho 默认的摘要摘取策略是:去除所有的 HTML 标签,只保留文本内容)。原以为在 strip_tags 函数调用前做一个判断就可以了,但这样做以后,发现在摘要的末尾莫名地出现了诸如 </br> </img> 等奇怪的标记。为此稍微折腾了一番,发现了 Typecho_Common::fixHtml 函数的一个处理自闭合标签的 Bug。手动 Patch 了一下,本打算来一个 Pull Request,最后发现开发版已经修复了这个 Bug 了(但正式版 17.10.30 尚未更新,因此此 Bug 截至目前(2019/2/6)仍是尚未修复的状态,在开发主题、插件时需要注意一下)。这里整理了一下当时的一些笔记。

Typecho 主题开发笔记:基本篇

一时起意,想把 Hexo 主题 icarus 搬运到 Typecho 这边来。过程之中踩了一些坑,总结了一些经验,在这里记录和分享一下。