我正在使用 Django 的 RSS 功能来构建 RSS 提要。 <description>
的 RSS 提要项目包含 HTML 标记。目前,我只是使用以下模板将 HTML 标记注入(inject)提要:
{{ obj.post }}
当然,Django 会将特殊字符(<
、>
、&
等)翻译成它们各自的 HTML 实体。
我知道我可以只输出 HTML 并将所有 HTML 代码包装在 <![CDATA[...]]>
中部分。 This page说这两种方法都是可以接受的。如果这是真的,是否有充分的理由选择一种方法而不是另一种方法?如果我使用示例 #2,是否有 Django 过滤器自动将 HTML 文本包装在 CDATA 标记中,或者我应该将模板更改为:
<![CDATA[
{{ obj.post|safe }}
]]>
编辑
无论您是否通过 safe
传递它,Django 似乎都会自动转义 RSS 提要(或与此相关的任何 XML)中的特殊字符。过滤或不过滤(这个问题在 this ticket 中讨论)。但是,欢迎提供一般性答案。
最佳答案
当我在 Django 中遇到这样的问题时,我的第一直觉是跑开并找到一个正常的 Python 库来做我想做的事情。在这种情况下 PyRSS2Gen可能是您的救星。
它可能需要多花点功夫(因为它不知道什么是 Django 对象)但它应该足够原始以让您随心所欲。
如果不是,那只是一个脚本。如果你愿意,你可以把它拆开以允许原始 HTML =)
关于html - 在 RSS 提要中嵌入 HTML 的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444231/