在RSS源中嵌入HTML的最佳方法是什么?

时间:2009-01-14 18:58:43

标签: html django rss

我正在使用Django的RSS功能来构建RSS提要。 RSS订阅源的<description>包含HTML标记。目前,我只是使用以下模板将HTML标记注入到Feed中:

{{ obj.post }}

当然,Django会将特殊字符(<>&等)翻译为各自的HTML实体。

我知道我可以输出HTML并将所有HTML代码包装在<![CDATA[...]]>部分中。 This page说任何一种方法都可以接受。如果这是真的,是否有充分的理由选择一种方法而不是另一种?如果我使用示例#2,是否有一个过滤器让Django自动将HTML文本包装在CDATA标签中,或者我应该将模板更改为:

<![CDATA[
{{ obj.post|safe }}
]]>

修改

似乎Django会自动调整RSS提要中的特殊字符(或任何XML),无论是否通过safe过滤器传递它(问题在{{3中讨论过) }})。但是,欢迎一般的答案。

3 个答案:

答案 0 :(得分:2)

当我遇到像Django这样的问题时,我的第一个本能是跑掉并找到一个能够做我想要的普通Python库。在这种情况下,PyRSS2Gen可能是你的救世主。

它可能需要更多的扇动(因为它不会知道Django对象是什么)但它应该足够原始让你按照自己的意愿去做。

如果不是,那只是一个脚本。如果你愿意,你可以分开它以允许原始HTML =)

答案 1 :(得分:1)

请考虑使用django.contrib.syndication中的Django联合框架,而不是编写自己的RSS XML Feed:

https://docs.djangoproject.com/en/dev/ref/contrib/syndication/

答案 2 :(得分:0)

嵌入HTML是CDATA过去一直困扰我的。希望RSS阅读器已经发展到可以处理这样的嵌入。