36

<description>标签和<content:encoded>RSS 2.0 格式规范中的标签 之间有什么区别(如果有的话) ?

一个比另一个更重要吗?

我应该在我的提要中同时使用两者还是一个就足够了?

4

3 回答 3

39

<description>标签用于帖子的摘要,但仅限纯文本。没有标记。

如果您转义标签或将内容包装在:

<![CDATA[ post body goes <strong>here</strong> ]]>

你不应该真的这样做

如果你想要标记,你应该在这里使用<content:encoded>和使用包装器<![CDATA[]]>

content:encoded元素可以与元素结合使用,以description提供项目的完整内容以及较短的摘要。在这种方法下,项目的完整文本显示在 中content:encoded,摘要显示在 中description

### RSS 最佳实践简介:内容:编码

简而言之,<description>是用于摘要,帖子的其余部分在<content:encoded>.

由于某些读者可能不支持预期的标签,因此您通常会看到整个帖子,<description>而不是两者的混合。

于 2011-09-10T03:49:09.677 回答
14

前面的答案是错误的。

RSS 2.0规范非常清楚您可以对 <description> 元素的值进行编码。

一个项目本身也可能是完整的,如果是这样,描述包含文本(允许使用实体编码的 HTML;参见示例),并且可以省略链接和标题。项目的所有元素都是可选的,但至少必须存在标题或描述之一。

于 2015-06-03T17:40:37.047 回答
4

@random 给出的答案有一定的道理,但最终情况是复杂的(如果不是混淆的话),正如RSS 2.0 规范中所指定的那样,在决定如何处理description而不是 / 或在其他时间旁边 of 时content:encoded

TLDR:当内容制作者愿意同时包含文本摘要作为更完整的内容时,情况就清楚了:description用于更简单的文本摘要和content:encoded更完整的 html 内容。但是,当他们只想包含两者之一、仅包含摘要或仅包含更完整的内容时,他们应该为此使用description标签,在这种情况下,事情仍然是模棱两可的!在我的估计中,这是一个最不幸的决定,这意味着您必须包含更完整的 html 内容才能清楚地说明这一点,否则,description标签就像以往一样模棱两可。

不想item在他们的提要中使用摘要的发布者应该将description元素用于项目的完整内容,而不是content:encoded因为它拥有最广泛的支持。

使用摘要的发布者应该将摘要存储在描述中,将全部内容存储在 中,在 中首先content:encoded排序。在没有摘要的项目上,完整的内容应该存储在.descriptionitemdescription

一个人必须慢慢思考这一切意味着什么,但我认为这些是要点:

  1. 如果只给出这两个标签之一,它必须是description标签。
  2. 这意味着如果没有标签放置在它旁边(实际上是在它上面),就不content:encoded应该存在。description
  3. 不幸的是,这意味着当只有一个标签(必须是description)时,情况仍然像以往一样模棱两可:即description继续是简单的文本摘要,或者是更完整的 html 内容,你无法知道!
  4. 当两者都给出时,这是唯一一次消除歧义:然后description应该是一个更简单的摘要,并且content:encoded将包含更完整的 html 内容。

或者也许我读错了。

我个人认为这个决定是非常不幸的。他们显然这样做是为了保持向后兼容性,因此当时的读者总是能够阅读一些描述(因为content:encoded尚未得到支持,或者没有得到广泛支持)。但是这样做,他们基本上阻碍了这一点。现在是桥下的水,但我认为他们本可以做的,同时获得两全其美,是添加一个属性来description喜欢:<description type="html | text">。所以如果<description type="text">(注意他们指定content:encoded总是更完整的 html 内容)那么它指定description只是一个简单的总结,制作者也不必为了让读者知道这个标签的类型而给出完整的内容。虽然年长的读者会忽略这个额外的属性。桥下有水,但我们可以做梦。

就目前而言,在我看来,一切都完全悬而未决,**除非*两个标签都包括在内,只有这样你才能做出正确的假设。

PS 至于完整内容和摘要内容的区别,请看他们在标签上的原始讨论。description

于 2019-02-27T12:25:31.910 回答