我在GitHub Pages上使用Jekyll来运行我的博客。
似乎 Jekyll(半)随机错误地将 XML 特殊字符转义为&tt;
.
例如,在当前版本的 RSS 提要中,此源 XML
</p>
<p>
在一个地方变成
</p>
<p&tt;
但它应该是
</p>
<p>
&tt;
是一个无效的 XML 实体引用,因此一些 XML 解析器对此感到窒息并拒绝继续。
起初我怀疑源中那个地方有一个不可见的无效字符,但据我所知,情况并非如此。更重要的是,这种行为似乎并不一致:
RSS feed目前有7个这样的错误,以上是第一个。但是,目前的Atom 提要只有 5 个这样的错误,而且它们不在同一个地方。不仅<p>
标签受到影响,其他标签也受到影响(例如,<ul>
标签应始终转义为<ul>
,但在一个地方而不是转义为&tt;ul>
)。
此外,当我跑步时
jekyll 服务 -w
在我的本地机器上,我仍然看到相同类型的错误,但不是在相同的地方。
HTML 是这样转义的 XML:
{{ post.content | xml_escape }}
为什么会发生这种情况,我该怎么办?