4

GitHub PagesでJekyllを使用してブログを運営しています。

Jekyll (半) ランダムに間違って XML が XML 特殊文字を としてエスケープしているよう&tt;です。

例として、RSS フィードの現在のバージョンでは、このソース XML

</p>
<p>

か所で

&lt;/p&gt;
&lt;p&tt;

しかし、そうすべきだった

&lt;/p&gt;
&lt;p&gt;

&tt;は無効な XML エンティティ参照であるため、一部の XML パーサーはそれで窒息し、続行を拒否します。

最初は、ソースのその場所に目に見えない無効な文字があるのではないかと疑っていましたが、私が知る限り、そうではありません。さらに、この動作は一貫していないようです。

RSS フィードには現在 7 件のエラーがあり、上記が最初のエラーです。ただし、現在のAtom フィードにはそのようなエラーが 5 つしかなく、それらは同じ場所にありません。影響を受けるのはタグだけ<p>ではなく、他のタグも同様です (たとえば、<ul>タグは常に としてエスケープする必要がありますが&lt;ul&gt;、代わりに としてエスケープする必要があります&tt;ul&gt;)。

さらに、走ると

ジキルサーブ-w

私のローカル マシンでは、同じタイプのエラーがまだ表示されますが、同じ場所ではありません。

HTML は、次のように XML エスケープされています。

{{ post.content | xml_escape }}

なぜこれが起こるのですか?どうすればよいですか?

4

1 に答える 1

3

唯一のことxml_escapeCGI::escapeHTML、特定の文字を対応する文字に置き換える call です。バグが Jekyll に存在する場合、それは Ruby の CGI モジュールのバージョンに存在するためです。

于 2013-12-22T19:36:54.267 に答える