hatom-hints

From Microformats Wiki
Revision as of 13:08, 25 February 2006 by RobertBachmann (talk | contribs) (Added out-of-date marker)
Jump to navigation Jump to search

hAtom Hints

hAtom is a microformat for content that can be syndicated, primarily but not exclusively weblog postings. This page gives hints on how to use, implement and embed hAtom, backgrounders and other information closely related to the hAtom spec but that doesn't strictly belong on the main page.

If there's a conflict between this page and the spec, the spec is correct.

This page is currently out-of-date. Consult the accordant microformat specification for up-to-date information.

Schema Notes

Nomenclature

Note: Please see the hatom-issues document for discussion on property names.

Concept Atom Identifier hAtom Microformat Usage
Feed atom:feed Add class name "hfeed"
Entry atom:entry Add class name hentry; if practical, also define id="unique-identifier" to the Entry.
Entry Title atom:title Add class name headline. Using <h#> also is encouraged.
Entry Content atom:content Add class name content to all appropriate blocks. Multiple Entry Content blocks are logically considered one concatenated atom:content equivalent.
Entry Summary atom:summary Add class name excerpt to all appropriate blocks. Multiple Entry Summary blocks are logically considered one concatenated atom:summary equivalent.
Entry Permalink atom:link Add a rel value of bookmark.
Entry Published atom:published Use class name published, optionally with the datetime-design-pattern.
Entry Updated atom:updated Use class nameupdated, with an ISO8601 absolute datetime, optionally with the datetime-design-pattern.
Entry Author atom:author Add class name "author. Using an address element is recommended. A hCard SHOULD be added.

Nesting Rules

Concept Nests In hAtom Opaque Cardinality Logical Cardinality
Informative
Feed HTML document No 1-N 1-N
Entry Feed No 0-N 0-N
Entry Title Entry
Entry Permalink
No 0-N 0-1
Entry Content Entry Yes 0-N 0-1
Entry Summary Entry Yes 0-N 0-1
Entry Permalink Entry
Entry Title
Entry Published
No 0-N 1
Entry Published Entry
Entry Permalink
No 0-N 0-1
Entry Updated Entry
Entry Permalink
No 0-N 1
Entry Author Entry Yes 0-N 1-N
hAtom Opaque

"hAtom Opaque" specifies whether a hAtom parser should not "look inside" the element for further hAtom content. If there are multiple rules applied to the same element take the OR of the two (i.e. "Yes/Opaque" always wins)

hAtom Opaque is designed to make parsing rules less ambiguous. In particular, it allows "quoted" hAtom elements (from another blog being blockquoted, for example) ti be ignored. It also allows 'embedded' hAtom to be potentially delivered within hAtom itself, and to prevent accidental 'leaking' of other microformat information up into the hAtom container. A general concept of opaqueness (need link) has also been proposed but it will complement, not replace this.
Cardinality

How many times can an element of the given type appear in it's nesting/parent element.

Logical Cardinality

This column is informative -- Atom has a number of rules for deciding what is required depending on the context and other elements, many which aren't strictly applicable to here.

From a modeling/logical perspective, the number of times can an element appear.

This is all rule dependent, see below. For example, an Entry Permalink may appear 6 times, but each one must be the same value; an Entry Content element may appear 3 times, but they are all concatenated together to make a single logical element.


Element notes

Feed
  • you could have multiple feeds on news pages, or weblogs with "mini-blogs" on the sidebar.
  • class="hfeed hentry" is OK for feeds with a single entry.
Entry Permalink
  • Entry Permalinks SHOULD be the same as the atom:link (or rss:link) used in syndication feeds
The intention of the previous two rules to gently force people to use strings that can be byte compared for equivalence. In general, the canonical URI should be the link used in an Atom entry.
  • if an Entry has multiple elements marked as the Entry Permalink, they MUST have exactly the same URI

See Also