首页 文章

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

提问于
浏览
6

我正在使用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 }}
]]>

编辑

无论你是否通过 safe 过滤器,Django似乎都会自动在RSS提要(或任何XML)中自动显示特殊字符(问题在this ticket中讨论) . 但是,一般的答案是受欢迎的 .

3 回答

  • 1

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

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

  • 0

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

  • 2

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

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

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

相关问题