| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- .. _reference.entry.content:
- :py:attr:`entries[i].content`
- =============================
- A list of dictionaries with details about the full content of the entry.
- Atom feeds may contain multiple content elements. Clients should render as
- many of them as possible, based on the type and the client's abilities.
- .. _reference.entry.content.value:
- :py:attr:`entries[i].content[j].value`
- --------------------------------------
- The value of this piece of content.
- If this contains :abbr:`HTML (HyperText Markup Language)` or
- :abbr:`XHTML (Extensible HyperText Markup Language)`, it is
- :ref:`sanitized <advanced.sanitization>` by default.
- If this contains :abbr:`HTML (HyperText Markup Language)` or
- :abbr:`XHTML (Extensible HyperText Markup Language)`, certain (X)HTML elements
- within this value may contain relative :abbr:`URI (Uniform Resource Identifier)`\s.
- If so, they are :ref:`resolved according to a set of rules <advanced.base>`.
- .. _reference.entry.content.type:
- :py:attr:`entries[i].content[j].type`
- -------------------------------------
- The content type of this piece of content.
- Most likely values for `type`:
- * :mimetype:`text/plain`
- * :mimetype:`text/html`
- * :mimetype:`application/xhtml+xml`
- For Atom feeds, the content type is taken from the type attribute, which
- defaults to :mimetype:`text/plain` if not specified. For
- :abbr:`RSS (Rich Site Summary)` feeds, the content type is auto-determined by
- inspecting the content, and defaults to :mimetype:`text/html`. Note that this
- may cause silent data loss if the value contains plain text with angle
- brackets. There is nothing I can do about this problem; it is a limitation of
- :abbr:`RSS (Rich Site Summary)`.
- Future enhancement: some versions of :abbr:`RSS (Rich Site Summary)` clearly
- specify that certain values default to :mimetype:`text/plain`, and
- :program:`Universal Feed Parser` should respect this, but it doesn't yet.
- .. _reference.entry.content.language:
- :py:attr:`entries[i].content[j].language`
- -----------------------------------------
- The language of this piece of content.
- :py:attr:`~entries[i].content[j].language` is supposed to be a language code,
- as specified by :rfc:`3066`, but publishers have been known to publish random
- values like "English" or "German". :program:`Universal Feed Parser` does not
- do any parsing or normalization of language codes.
- :py:attr:`~entries[i].content[j].language` may come from the element's xml:lang
- attribute, or it may inherit from a parent element's xml:lang, or the
- :mailheader:`Content-Language` :abbr:`HTTP (Hypertext Transfer Protocol)`
- header. If the feed does not specify a language,
- :py:attr:`~entries[i].content[j].language` will be ``None``, the
- :program:`Python` null value.
- .. _reference.entry.content.base:
- :py:attr:`entries[i].content[j].base`
- -------------------------------------
- The original base :abbr:`URI (Uniform Resource Identifier)` for links within
- this piece of content.
- :py:attr:`~entries[i].content[j].base` is only useful in rare situations and
- can usually be ignored. It is the original base
- :abbr:`URI (Uniform Resource Identifier)` for this value, as specified by the
- element's xml:base attribute, or a parent element's xml:base, or the
- appropriate :abbr:`HTTP (Hypertext Transfer Protocol)` header, or the
- :abbr:`URI (Uniform Resource Identifier)` of the feed. (See
- :ref:`advanced.base` for more details.) By the time you see it,
- :program:`Universal Feed Parser` has already resolved relative links in all
- values where it makes sense to do so. *Clients should never need to manually
- resolve relative links.*
- .. rubric:: Comes from
- * /atom03:feed/atom03:entry/atom03:content
- * /atom10:feed/atom10:entry/atom10:content
- * /rdf:RDF/rdf:item/content:encoded
- * /rss/channel/item/body
- * /rss/channel/item/content:encoded
- * /rss/channel/item/fullitem
- * /rss/channel/item/xhtml:body
|