web-dev-qa-db-ja.com

説明とコンテンツの違い:RSS2のエンコードされたタグ

RSS 2.0フォーマット仕様の<description>タグと<content:encoded>タグの違いは、あるとすれば何ですか?

どちらがより重要ですか?

フィードで両方を使用する必要がありますか、それとも1つで十分ですか?

30
Hamed Momeni

<description>タグは投稿の要約用ですが、プレーンテキストのみです。マークアップなし。

タグをエスケープするか、コンテンツを次のようにラップすると、問題を回避できます。

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

しかし 実際にそうしているわけではありません

マークアップが必要な場合は、<content:encoded>を使用し、ここで<![CDATA[および]>ラッパーを使用する必要があります。

content:encoded要素をdescription要素と組み合わせて使用​​して、アイテムの完全なコンテンツと短い要約を提供できます。このアプローチでは、アイテムの完全なテキストがcontent:encodedに、概要がdescriptionに表示されます。

RSSベストプラクティスプロファイル:content:encoded

要するに、<description>要約 用であり、残りの投稿は<content:encoded>にあります。

一部のリーダーは期待どおりにタグをサポートしていない可能性があるため、通常は投稿全体が<description>に表示され、2つが混在することはありません。

31
random

以前の答えは正しくありません。

RSS 2.0 spec は、<description>要素の値をエンコードできることが非常に明確です。

アイテム自体も完全な場合があります。その場合は、説明にテキストが含まれ(エンティティエンコードされたHTMLが許可されています。例を参照)、リンクとタイトルを省略できます。アイテムのすべての要素はオプションですが、タイトルまたは説明の少なくとも1つが存在している必要があります。

12
Dave Winer

@randomによって与えられる答えにはある程度の真実がありますが、descriptionの処理方法を決定するときに RSS 2.0仕様 で指定されているように、状況は複雑です(混乱しない場合)。 /の代わりに、またはcontent:encodedと並んで他の時間に。

TLDR:コンテンツプロデューサーがテキストサマリーのAS WELLをより完全なコンテンツとして含めようとすると、状況は解消されます。より単純なテキストサマリーにはdescriptionを使用し、より完全なhtmlにはcontent:encodedを使用します。コンテンツ。しかし、2つのうちの1つだけ、概要のみ、またはより完全なコンテンツのみを含めたい場合は、descriptionタグを使用することが推奨されます。この場合、あいまいなままになります。私の見積もりの​​中で最も残念な決断です。それは、これを明確にするために完全なHTMLコンテンツを含める必要があることを意味します。それ以外の場合、descriptionタグはこれまでと同様にあいまいです。

フィードでitemの要約を使用したくないパブリッシャーは、最も幅広いサポートがあるため、content:encodedではなくdescription要素をアイテムの完全なコンテンツに使用する必要があります。

要約を採用している出版社は、説明に要約を、完全なコンテンツをcontent:encodedに保存し、description内でitemを最初に配置する必要があります。概要のないアイテムでは、コンテンツ全体をdescriptionに保存する必要があります。

これが何を意味するのかをゆっくりと熟考する必要がありますが、私は考えるこれらが重要なポイントです:

  1. これらの2つのタグの1つだけを指定する場合は、descriptionタグでなければなりません。
  2. つまり、content:encodedは、descriptionタグを横に(実際には上に)配置することなく、決して存在してはならない(SHOULD)。
  3. 残念ながら、これは、タグが1つしかない場合(descriptionでなければならない)、状況が相変わらずあいまいであることを意味します。 descriptionは、引き続き簡単なテキスト形式の要約、ORより充実したhtmlコンテンツです。
  4. 両方が指定されている場合、それだけが曖昧さが取り除かれます。その場合、descriptionはより単純な要約であり、content:encodedはより完全なHTMLコンテンツをコンテナ化します。

あるいは、私はこれをすべて間違って読んだのかもしれません。

個人的には、この決定は非常に残念でした。彼らは明らかに下位互換性を保つためにこれを行ったので、その時の読者は常にsomeの説明を(content:encoded以降まだサポートされていなかったか、広くサポートされていませんでした)。しかし、そうすることで、彼らは基本的にこれを障害にした。今では橋の下の水ですが、両方の世界を最大限に活用しながら、description<description type="html | text">のような属性を追加することで、彼らができることはあったと思います。したがって、<description type="text">の場合(content:encoded isalwaysfor full html content)と指定すると、descriptionが指定されますはより単純な要約であり、プロデューサーは、読者がこのタグのタイプを知るために、完全なコンテンツを順序どおりに提供する必要はありません。古い読者はこの余分な属性を無視していたでしょう。橋の下の水、しかし私たちは夢を見ることができます。

現状では、すべてのタグが完全に空中に浮かんでいるように見えます。両方のタグが含まれていない限り、正しい仮定を行うことができます。

追伸完全なコンテンツと要約コンテンツの違いについては、descriptionタグの 元のディスカッション を参照してください。

1