|
|
Line 1: |
Line 1: |
− | <entry-title>hAtom 0.1</entry-title>
| + | HOW THING THROUGH |
− | {{latest|h-entry}}
| + | HOW MAKE THING THROUGH |
− | {{Template:DraftSpecification}}
| + | HOW THING BE THROUGH |
− | | + | HOW MAKE THING BE THROUGH |
− | hAtom is a microformat for content that can be syndicated, primarily but not exclusively weblog postings. hAtom is based on a subset of the [http://www.atomenabled.org/ Atom] syndication format. hAtom will be one of several [[microformats]] open standards.
| + | HOW ANYTHING THROUGH |
− | __TOC__
| + | HOW MAKE ANYTHING THROUGH |
− | == Draft Specification ==
| + | HOW ANYTHING BE THROUGH |
− | | + | HOW MAKE ANYTHING BE THROUGH |
− | <div class="vcard">
| + | HOW EVERYTHING THROUGH |
− | ;<span class="role">Editor/Author</span>
| + | HOW MAKE EVERYTHING THROUGH |
− | :<span class="fn">[http://blogmatrix.blogmatrix.com/ David Janes]</span> <span class="org">([http://www.blogmatrix.com BlogMatrix, Inc.])</span>
| + | HOW EVERYTHING BE THROUGH |
− | </div>
| + | HOW MAKE EVERYTHING BE THROUGH |
− | | + | HOW UNIVERSE THROUGH |
− | ;Contributors
| + | HOW MAKE UNIVERSE THROUGH |
− | :<span class="vcard"><span class="fn">[http://members.optusnet.com.au/benjamincarlyle/benjamin/blog/ Benjamin Carlyle]</span></span>
| + | HOW UNIVERSE BE THROUGH |
− | :<span class="vcard"><span class="fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="url">http://tantek.com/</span> and before at [http://technorati.com Technorati, Inc.])</span>
| + | HOW MAKE UNIVERSE BE THROUGH |
− | | + | HOW THING OUT |
− | [[hatom#Copyright|copyright]] and [[hatom#Patents|patents]] statements apply.
| + | HOW MAKE THING OUT |
− | | + | HOW THING BE OUT |
− | == Status ==
| + | HOW MAKE THING BE OUT |
− | hAtom 0.1 is a microformats.org draft specification. Public discussion on hAtom takes place on [[hatom-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-discuss/ microformats-discuss mailing list].
| + | HOW ANYTHING OUT |
− | | + | HOW MAKE ANYTHING OUT |
− | === Available languages ===
| + | HOW ANYTHING BE OUT |
− | The English version of this specification is the only normative version. For translations of this document see the [[#translations]] section.
| + | HOW MAKE ANYTHING BE OUT |
− | | + | HOW EVERYTHING OUT |
− | === Errata and Updates ===
| + | HOW MAKE EVERYTHING OUT |
− | Known errors and issues in this specification are corrected in [[hatom-issues-resolved|resolved]] and [[hatom-issues-closed|closed]] issues. Please check there before reporting [[hatom-issues|issues]].
| + | HOW EVERYTHING BE OUT |
− | | + | HOW MAKE EVERYTHING BE OUT |
− | The hAtom 0.2 update is currently under development and incorporates known errata corrections as well as the [[value-class-pattern]].
| + | HOW UNIVERSE OUT |
− | | + | HOW MAKE UNIVERSE OUT |
− | == Introduction ==
| + | HOW UNIVERSE BE OUT |
− | hAtom is a [[microformat]] for identifying semantic information in weblog posts and practically any other place [http://www.atomenabled.org/ Atom] may be used, such as news articles. hAtom content is easily added to most blogs by simple modifications to the blog's template definitions.
| + | HOW MAKE UNIVERSE BE OUT |
− | | + | HOW THING THROUGH |
− | {{rfc-2119-intro}}
| + | HOW MAKE THING THROUGH |
− | | + | HOW THING BE THROUGH |
− | == Example ==
| + | HOW MAKE THING BE THROUGH |
− | Here is a simple blog post example:
| + | HOW ANYTHING THROUGH |
− | | + | HOW MAKE ANYTHING THROUGH |
− | <source lang=html4strict>
| + | HOW ANYTHING BE THROUGH |
− | <article class="hentry">
| + | HOW MAKE ANYTHING BE THROUGH |
− | <h1 class="entry-title">Microformats are amazing</h1>
| + | HOW EVERYTHING THROUGH |
− | <p>Published by <span class="author vcard"><span class="fn">W. Developer</span></span>
| + | HOW MAKE EVERYTHING THROUGH |
− | on <time class="published" datetime="2013-06-13 12:00:00">13<sup>th</sup> June 2013</time>
| + | HOW EVERYTHING BE THROUGH |
− |
| + | HOW MAKE EVERYTHING BE THROUGH |
− | <p class="entry-summary">In which I extoll the virtues of using microformats.</p>
| + | HOW UNIVERSE THROUGH |
− |
| + | HOW MAKE UNIVERSE THROUGH |
− | <div class="entry-content">
| + | HOW UNIVERSE BE THROUGH |
− | <p>Blah blah blah</p>
| + | HOW MAKE UNIVERSE BE THROUGH |
− | </div>
| + | HOW THING OUT |
− | </article>
| + | HOW MAKE THING OUT |
− | </source>
| + | HOW THING BE OUT |
− | | + | HOW MAKE THING BE OUT |
− | === Get started ===
| + | HOW ANYTHING OUT |
− | The class '''<code>hentry</code>''' is a ''root class name'' that indicates the presence of an hAtom entry.
| + | HOW MAKE ANYTHING OUT |
− | | + | HOW ANYTHING BE OUT |
− | '''<code>entry-title</code>''', '''<code>author</code>''', '''<code>published</code>''', '''<code>entry-summary</code>''', '''<code>entry-content</code>''' and the other hAtom property classnames listed below define properties of the entry.
| + | HOW MAKE ANYTHING BE OUT |
− | | + | HOW EVERYTHING OUT |
− | == Format ==
| + | HOW MAKE EVERYTHING OUT |
− | === In General ===
| + | HOW EVERYTHING BE OUT |
− | The [http://atomenabled.org/developers/syndication/#person Atom Syndication Format] provides the conceptual basis for this microformat, with the following caveats:
| + | HOW MAKE EVERYTHING BE OUT |
− | | + | HOW UNIVERSE OUT |
− | * Atom provides a lot more functionality than we need for a "blog post" microformat, so we've taken the minimal number of elements needed.
| + | HOW MAKE UNIVERSE OUT |
− | * the "logical" model of hAtom is that of Atom. If there is a conflict, Atom should be taken as correct.
| + | HOW UNIVERSE BE OUT |
− | * the "physical" model of hAtom -- the actual writing of elements -- is a lot more varied than Atom provides for, due to the variety of ways weblogs are actually produced in the wild. The hAtom microformat provides a number of rules for "bridging the gap"
| + | HOW MAKE UNIVERSE BE OUT |
− | | |
− | === Schema ===
| |
− | Schema elements are based on the Atom nomenclature and follow the microformat pattern of prefixing a unique identifier (in this case, '<code>h</code>') on the outermost container elements -- the Feed or Entry. The parts of this microformat are based on analysis of many weblog, bulletin board and media posts and can be read [[blog-post-brainstorming#Discovered_Elements]].
| |
− | | |
− | The hAtom schema consists of the following:
| |
− | | |
− | * hfeed ('''<code>hfeed</code>'''). optional.
| |
− | ** '''<code>feed category</code>'''. optional. keywords or phrases, using '''[[rel-tag]]'''.
| |
− | ** [[hentry]] ('''<code>hentry</code>''').
| |
− | *** '''<code>entry-title</code>'''. required. text.
| |
− | *** '''<code>entry-content</code>'''. optional (see field description). text. [*]
| |
− | *** '''<code>entry-summary</code>'''. optional. text.
| |
− | *** '''<code>updated</code>'''. required using [[value-class-pattern#Date_and_time_parsing|value class pattern date and time]]. [*]
| |
− | *** '''<code>published</code>'''. optional using [[value-class-pattern#Date_and_time_parsing|value class pattern date and time]].
| |
− | *** '''<code>author</code>'''. required using '''[[hcard|hCard]]'''. [*]
| |
− | *** '''<code>bookmark</code>''' (permalink). optional, using '''[[rel-bookmark]]'''.
| |
− | *** tags. optional. keywords or phrases, using '''[[rel-tag]]'''.
| |
− | | |
− | [*] Some required elements have defaults if missing, see below.
| |
− | | |
− | === Field and Element Details ===
| |
− | | |
− | ===== Feed =====
| |
− | * a Feed element is identified by the class name <code>hfeed</code>
| |
− | * a Feed element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.1.1 Atom feed]
| |
− | * the Feed element is optional and, if missing, is assumed to be the page
| |
− | * hAtom documents {{may}} have multiple Feed elements
| |
− | | |
− | ===== Feed Category =====
| |
− | * a Feed Category element is identified by [[rel-tag]]
| |
− | * a Feed {{may}} have a Feed Category
| |
− | * a Feed Category element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.2 Atom category] inside a [http://www.atomenabled.org/developers/syndication/#optionalFeedElements feed]
| |
− | * Feed Category elements {{must}} appear inside a Feed element but not inside an Entry element
| |
− | * the [[rel-tag]] <code>href</code> encodes the atom <code>category:term</code>; the link text defines the atom <code>category:label</code>
| |
− | | |
− | ===== Entry =====
| |
− | * an Entry element is identified by class name <code>hentry</code>
| |
− | * an Entry element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.1.2 Atom entry]
| |
− | * any microformat content inside a <code><blockquote></code> or <code><q></code> element within the Entry should not be considered part of the Entry.
| |
− | : ''This allows quoting other microformated data without worry of corrupting the model''
| |
− | | |
− | ===== Entry Category =====
| |
− | * an Entry Category element is identified by [[rel-tag]]
| |
− | * an Entry {{may}} have an Entry Category
| |
− | * an Entry Category element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.2 Atom category] inside an [http://www.atomenabled.org/developers/syndication/#optionalEntryElements entry]
| |
− | * the [[rel-tag]] <code>href</code> encodes the atom <code>category:term</code>; the link text defines the atom <code>category:label</code>
| |
− | | |
− | ===== Entry Title =====
| |
− | * an Entry Title element is identified by the class name <code>entry-title</code>
| |
− | * an Entry {{should}} have an Entry Title
| |
− | * an Entry Title element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.14 Atom entry title]
| |
− | * if the Entry Title is missing, use
| |
− | ** the first <code><h#></code> element in the Entry, or
| |
− | ** the <code><title></code> of the page, if there is no enclosing Feed element, or
| |
− | ** assume it is the empty string
| |
− | | |
− | ===== Entry Content =====
| |
− | * an Entry Content element is identified by class name <code>entry-content</code>
| |
− | * an Entry {{should}} have Entry Content
| |
− | * an Entry Content element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#atomContent Atom content]
| |
− | * an Entry {{may}} have 0 or more Entry Content elements. The "logical Entry Content" of an Entry is the concatenation, in order of appearance, of all the Entry Contents within the Entry
| |
− | : ''Many web logs split content into multiple sections with a "Read More" link and JavaScript tricks. This is also needed in cases where Entry Titles are coded in-line and are considered part of the content.''
| |
− | * if the Entry Content is missing, assume it is the empty string
| |
− | | |
− | ===== Entry Summary =====
| |
− | * an Entry Summary element is identified by class name <code>entry-summary</code>
| |
− | * an Entry Summary element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.13 Atom summary]
| |
− | * an Entry {{may}} have 0 or more Entry Summary elements. The "logical Entry Summary" of an Entry is the concatenation, in order of appearance, of all the Entry Summarys within the Entry
| |
− | | |
− | ===== Entry Permalink =====
| |
− | * an Entry Permalink element is identified by [[rel-bookmark]]
| |
− | * an Entry {{should}} have an Entry Permalink
| |
− | * an Entry Permalink element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.7 Atom link in an entry]
| |
− | * if the Entry Permalink is missing, use the URI of the page; if the Entry has an "id" attribute, add that as a fragment to the page URI to distinguish individual entries
| |
− | | |
− | ===== Entry Updated =====
| |
− | * an Entry Updated element is identified by class name <code>updated</code>
| |
− | * an Entry Updated element represents the concept of [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.15 Atom updated]
| |
− | * an Entry {{should}} have an Entry Updated element
| |
− | * use the [[value-class-pattern#Date_and_time_parsing|value class pattern date and time]] to encode the updated datetime
| |
− | * if there is no Entry Updated element,
| |
− | ** use the Entry Published element, if present
| |
− | ** otherwise the page is invalid hAtom
| |
− | | |
− | ===== Entry Published =====
| |
− | * an Entry Published element is identified by the class name <code>published</code>
| |
− | * an Entry Published element represents the concept of [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.9 Atom published]
| |
− | * use the [[value-class-pattern#Date_and_time_parsing|value class pattern date and time]] to encode the published datetime
| |
− | | |
− | ===== Entry Author =====
| |
− | * an Entry Author element is represented by class name <code>author</code>
| |
− | * an Entry Author element represents the concept of an [http://www.atomenabled.org/developers/syndication/atom-format-spec.php#rfc.section.4.2.1 Atom author]
| |
− | * an Entry Author element {{must}} be encoded in an [[hcard|hCard]]
| |
− | * an Entry Author element {{should}} be encoded in an <code><address></code> element
| |
− | * an Entry {{should}} have at least one Entry Author element
| |
− | * an Entry {{may}} have more than one Entry Author elements
| |
− | * if the Entry Author is missing
| |
− | ** find the [[algorithm-nearest-in-parent|Nearest In Parent]] <code><address></code> element(s) with class name <code>author</code> and that is/are a valid [[hcard|hCard]]
| |
− | ** otherwise the entry is invalid hAtom
| |
− | | |
− | === XMDP Profile ===
| |
− | See [[hatom-profile]].
| |
− | | |
− | == Examples ==
| |
− | | |
− | See [[hatom-examples]].
| |
− | | |
− | === Examples in the wild ===
| |
− | | |
− | See [[hatom-examples-in-wild]].
| |
− | | |
− | == Implementations ==
| |
− | | |
− | See [[hatom-implementations]].
| |
− | | |
− | == Copyright ==
| |
− | {{MicroFormatCopyrightStatement2005}}
| |
− | * [[User:Tantek|Tantek]]: I release all my contributions to this specification into the public domain and I encourage the other authors to do so as well.
| |
− | ** When all authors/editors have done so, we can remove the MicroFormatCopyrightStatement template reference and replace it with the MicroFormatPublicDomainContributionStatement.
| |
− | | |
− | == Patents ==
| |
− | {{MicroFormatPatentStatement}}
| |
− | | |
− | == Semantic HTML Design Principles ==
| |
− | <div id="Semantic_XHTML_Design_Principles">{{semantic-html-design-principles}}</div>
| |
− | | |
− | == References ==
| |
− | === Normative References ===
| |
− | * [http://www.w3.org/TR/2002/REC-xhtml1-20020801/ XHTML 1.0 SE]
| |
− | * [http://www.ietf.org/rfc/rfc4287 RFC4287: The Atom Syndication Format]
| |
− | * [[hcard-parsing]]
| |
− | * [[rfc-2119|RFC 2119]]
| |
− | * [[iso-8601|ISO8601]]
| |
− | | |
− | === Informative References ===
| |
− | * [http://www.atomenabled.org/ atomenabled.org]
| |
− | | |
− | == Further Reading ==
| |
− | * [http://www.ablognotlimited.com/articles/getting-semantic-with-microformats-part-5-hatom/ Getting Semantic With Microformats, Part 5: hAtom] by [http://www.ablognotlimited.com/ Emily Lewis]
| |
− | | |
− | == Work in progress ==
| |
− | This specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. There is a separate document where we are keeping our brainstorms and other explorations relating to hAtom:
| |
− | | |
− | * [[blog-post-brainstorming|blog-post Brainstorming]]
| |
− | | |
− | === Version 0.1 ===
| |
− | | |
− | Version 0.1 was released 28 February 2006.
| |
− | | |
− | == Discussions ==
| |
− | | |
− | * See [http://www.technorati.com/cosmos/referer.html blogs discussing this page].
| |
− | | |
− | === Q&A ===
| |
− | * If you have any questions about hAtom, check the [[hatom-faq|hAtom FAQ]], and if you don't find answers, add your questions!
| |
− | | |
− | === Issues ===
| |
− | * Please add any issues with the specification to the separate [[hatom-issues|hAtom issues]] document.
| |
− | | |
− | ==See Also==
| |
− | {{hatom-related-pages}}
| |
− | * [[rel-enclosure]] - how to semantically reference enclosures (e.g. podcasts) in hAtom
| |
− | * [[blog-post-brainstorming]]
| |
− | * [[blog-post-formats]]
| |
− | * [[blog-post-examples]]
| |
− | * [[blog-post-feed-equivalence]]
| |
− | * [[blog-description-format]] - how to describe a blog (as opposed to the individual entries, which is what we're doing here)
| |
− | * [[xhtml-syndication]]
| |
− | | |
− | [[Category:Draft Specifications]]
| |
− | [[Category:hAtom]]
| |
− | | |
− | == Translations ==
| |
− | Read the hAtom draft specification in additional <span id="languages">languages</span>:
| |
− | * [[hatom-fr|français]]
| |