h-entry: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
m (Reverted edits by [[Special:Contributions/000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
No edit summary
Line 1: Line 1:
<entry-title>h-entry</entry-title>
HOW THING THROUGH
<span class="h-card vcard"><span class="p-name fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="p-role role">Editor</span>)</span>
HOW MAKE THING THROUGH
----
HOW THING BE THROUGH
<dfn style="font-style:normal;font-weight:bold">h-entry</dfn> is a simple, open format for episodic or datestamped content on the web. h-entry is often used with content intended to be syndicated, e.g. blog posts. h-entry is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML/HTML5.
HOW MAKE THING BE THROUGH
 
HOW ANYTHING THROUGH
h-entry is the [[microformats2]] update to [[hAtom]].
HOW MAKE ANYTHING THROUGH
 
HOW ANYTHING BE THROUGH
{{cc0-owfa-license}}
HOW MAKE ANYTHING BE THROUGH
 
HOW EVERYTHING THROUGH
== Example ==
HOW MAKE EVERYTHING THROUGH
Here is a simple blog post example:
HOW EVERYTHING BE THROUGH
 
HOW MAKE EVERYTHING BE THROUGH
<source lang=html4strict>
HOW UNIVERSE THROUGH
<article class="h-entry">
HOW MAKE UNIVERSE THROUGH
  <h1 class="p-name">Microformats are amazing</h1>
HOW UNIVERSE BE THROUGH
  <p>Published by <a class="p-author h-card">W. Developer</a>
HOW MAKE UNIVERSE BE THROUGH
    on <time class="dt-published" datetime="2013-06-13 12:00:00">13<sup>th</sup> June 2013</time>
HOW THING OUT
 
HOW MAKE THING OUT
  <p class="p-summary">In which I extoll the virtues of using microformats.</p>
HOW THING BE OUT
 
HOW MAKE THING BE OUT
  <div class="e-content">
HOW ANYTHING OUT
    <p>Blah blah blah</p>
HOW MAKE ANYTHING OUT
  </div>
HOW ANYTHING BE OUT
</article>
HOW MAKE ANYTHING BE OUT
</source>
HOW EVERYTHING OUT
 
HOW MAKE EVERYTHING OUT
=== Get started ===
HOW EVERYTHING BE OUT
The class '''<code>h-entry</code>''' is a ''root class name'' that indicates the presence of an h-entry.
HOW MAKE EVERYTHING BE OUT
 
HOW UNIVERSE OUT
'''p-name''', '''p-author''', '''dt-published''' and the other h-entry property classnames listed below define properties of the h-entry.
HOW MAKE UNIVERSE OUT
 
HOW UNIVERSE BE OUT
See [[microformats2-parsing]] to learn more about property classnames.
HOW MAKE UNIVERSE BE OUT
 
HOW THING THROUGH
== Properties ==
HOW MAKE THING THROUGH
h-entry properties, inside an element with class '''h-entry''':
HOW THING BE THROUGH
* '''<code>p-name</code>''' - entry name/title
HOW MAKE THING BE THROUGH
* '''<code>p-summary</code>''' - short entry summary
HOW ANYTHING THROUGH
* '''<code>e-content</code>''' - full content of the entry
HOW MAKE ANYTHING THROUGH
* '''<code>dt-published</code>''' - when the entry was published
HOW ANYTHING BE THROUGH
* '''<code>dt-updated</code>''' - when the entry was updated
HOW MAKE ANYTHING BE THROUGH
* '''<code>p-author</code>''' - who wrote the entry, optionally embedded [[h-card]](s)
HOW EVERYTHING THROUGH
* '''<code>p-category</code>''' - entry categories/tags
HOW MAKE EVERYTHING THROUGH
* '''<code>u-url</code>''' - entry permalink URL
HOW EVERYTHING BE THROUGH
* '''<code>u-uid</code>''' - unique entry ID
HOW MAKE EVERYTHING BE THROUGH
* '''<code>p-geo</code>''' - geophysical location the entry was posted from, optionally embed [[h-geo]] {{main|h-geo}}
HOW UNIVERSE THROUGH
* '''<code>p-latitude</code>''' - decimal latitude
HOW MAKE UNIVERSE THROUGH
* '''<code>p-longitude</code>''' - decimal longitude
HOW UNIVERSE BE THROUGH
* '''<code>p-altitude</code>''' - decimal altitude
HOW MAKE UNIVERSE BE THROUGH
 
HOW THING OUT
The following experimental properties are in use in the wild but are not yet part of the spec:
HOW MAKE THING OUT
 
HOW THING BE OUT
* '''<code>u-in-reply-to</code>''' - the URL which the h-entry is considered a reply to or comment on.
HOW MAKE THING BE OUT
** Potentially optionally an embedded (or nested?) h-entry (for reply contexts) but I’m the only one doing that right now so not considered a recommendation --[[User:Barnabywalters|bw]] 16:44, 13 June 2013 (UTC)
HOW ANYTHING OUT
* '''<code>p-comment</code>''' - optionally embedded (or nested?) h-entry(ies), each of which is a comment on/reply to the parent h-entry. See [[comment-brainstorming]].
HOW MAKE ANYTHING OUT
 
HOW ANYTHING BE OUT
The following properties are proposed additions based on various existing link preview markup conventions which are ''not'' yet used in the wild (Related: [[link-preview-brainstorming]])
HOW MAKE ANYTHING BE OUT
* '''<code>u-photo</code>'''
HOW EVERYTHING OUT
* '''<code>u-audio</code>''' - consider special u- parsing rules for <code>&lt;audio></code>
HOW MAKE EVERYTHING OUT
* '''<code>u-video</code>''' - consider special u- parsing rules for <code>&lt;video></code>
HOW EVERYTHING BE OUT
 
HOW MAKE EVERYTHING BE OUT
All properties are optional.
HOW UNIVERSE OUT
 
HOW MAKE UNIVERSE OUT
== Status ==
HOW UNIVERSE BE OUT
'''h-entry''' is a microformats.org draft specification. Public discussion on h-entry takes place on [[h-entry-feedback]], the #microformats [[irc]] channel on irc.freenode.net, and [http://microformats.org/discuss/mail/microformats-new/ microformats-new mailing list].
HOW MAKE UNIVERSE BE OUT
 
h-entry is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-entries up as classic [[hAtom]] entries.
 
== Property Details ==
(stub, to be expanded)
 
hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer <code>p-name</code> over <code>p-entry-title</code>, and use <code>p-entry-title</code> value(s) as a fallback if there is no <code>p-name</code>.
 
== FAQ ==
 
<div class="discussion">
* '''What is the <code>p-name</code> of a [http://indiewebcamp.com/note note]?'''
** A few options, from simplest to most detailed.
*** '''same as the p-content/e-content''' property.
*** '''same as the <code>title</code> element''' on the note permalink post page. When publishing a note on its own permalink post page, the contents of the note are likely abbreviated for the title of the page. The same abbreviation can be used for the p-name.
*** '''first sentence of the p-content/e-content''' property. It may be better for [http://indiewebcamp.com/syndication syndication] and [[link-preview]] purposes to provide just the first sentence of the note as the <code>p-name</code>. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the <code>p-summary</code>.
* ...
</div>
 
== Examples in the wild ==
Real world in the wild examples:
 
* ... add uses of h-entry you see in the wild here.
* App.net marks up profile pages and permalink pages with h-entry as of 2013-08-06 ([https://alpha.app.net/voidfiles example])
* The Twitter archive browser UI uses h-entry and h-card internally, unfortunately it’s not exposed as HTML in static files anywhere
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])
* Ben Werdmuller marks up his posts with h-card and h-entry, u-in-reply-to and u-like ([http://werd.io/view/51d5097fbed7ded0633a5956 example])
* Sandeep Shetty marks his posts up with h-card and h-entry, as well as draft u-in-reply-to and experimental u-like properties ([http://sandeep.io/101 example])
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties ([http://my.spread.ly/share/51d570bc09e9486562000002 example])
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])
* Numerous newer W3C specs, e.g.
** [http://www.w3.org/TR/2013/CR-css3-values-20130404/ CSS Values and Units Module Level 3 - 2013-04-04]
** [http://www.w3.org/TR/2013/CR-css3-conditional-20130404/ CSS Conditional Rules Module Level 3 - 2013-04-04]
** [http://www.w3.org/TR/2013/WD-css3-page-20130314/ CSS Paged Media Module Level 3 - 2013-03-14]
** [http://www.w3.org/TR/2013/WD-css-counter-styles-3-20130221/ CSS Counter Styles Level 3 - 2013-02-21]
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry.
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages
* Aaron Parecki uses h-entry to mark up notes, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].
* [http://tantek.com/ Tantek Çelik] uses h-entry on his home page, as well as h-entry on all post permalinks, e.g. [http://tantek.com/2012/243/t1/name-beats-title-modern-use-dubline-core-wrong-uf2 2012-243 post], with [[rel-prev]]/[[rel-next]] (if applicable) to indicate prev/next posts
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-entry on all notes and articles, as well as nested within notes as reply contexts [http://waterpigs.co.uk/notes/1468/ example] and comments [http://waterpigs.co.uk/notes/1482/ example].
 
 
{{h-spec-section-validating}}
 
== Backward Compatibility ==
=== Publisher Compatibility ===
For backward compatibility, you may wish to use classic [[hAtom]] classnames in addition to the more future-proof h-entry properties, for example:
 
<source lang=html4strict>
<div class="h-entry hentry">
  <h1 class="p-name entry-title">My great blog post</h1>
</div>
</source>
 
=== Parser Compatibility ===
Microformats parsers should detect classic properties and parse them as microformats2 properties. If an "h-entry" is found, don't look for an "hentry" on the same element.
 
Compat root class name: <code id="hentry">hentry</code><br/>
Properties: (parsed as '''p-''' plain text unless otherwise specified):
 
* <code>entry-title</code> - parse as '''<code>p-name</code>'''
* <code>entry-summary</code> - parse as '''<code>p-summary</code>'''
* <code>entry-content</code> - parse as '''<code>e-content</code>'''
* <code>published</code> - parse as '''dt-'''
* <code>updated</code> - parse as '''dt-'''
* <code>author</code> - including compat root <code>vcard</code> in the absence of <code>h-card</code>
* <code>category</code>
* <code>geo</code> - parse as '''<code>p-geo h-geo</code>''' including compat root <code>geo</code>
* <code>latitude</code>
* <code>longitude</code>
 
=== Compat FAQ ===
==== What about rel bookmark ====
Also asked as: ''Why use an h-entry u-url u-uid for permalinks when I have [[rel-bookmark|rel=bookmark]]?''
 
A: tl;dr: use <code>class="u-url u-uid"</code> instead of <code>rel=bookmark</code> for post permalinks because it's simpler (fewer attributes), and works better across contexts (permalink page, recent posts on home page, collection of posts on archive pages).
 
rel=bookmark was the old [[hAtom]] way of marking up permalinks. Since then two factors have contributed to reducing use of rel inside microformats:
* rel by typically* document scoped in [[HTML5]] - thus making it inappropriate for use in microformats that are aggregated, e.g. a collection of posts on a home page or in monthly archives.
* it is easier to always use class names for properties. When formats use two (or more!) attributes in HTML to specify properties, confusion results in lower data quality (of the markup and thus the stuff that is marked up). Thus per the microformats [[principle]] of [[simplicity]], in [[microformats2]] we only use class names for properties.
 
<nowiki>*</nowiki> even though rel=bookmark in particular is article-element / sectioning scoped in HTML5[http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#link-type-bookmark], it's a detail that typical authors are not going to remember, and thus it's not good to depend on it for any kind of format.
 
== Background ==
This work is based on the existing [[hAtom]] microformat, and extensive selfdogfooding in the [http://indiewebcamp.com indie web camp] community.
 
== Design Principles ==
 
(stub, expand)
 
== See Also ==
 
* [[microformats2]]
* [[microformats2-parsing]]
* [[h-geo]]
* [[hCard]]
 
[[Category:Draft Specifications]]

Revision as of 19:47, 25 August 2013

HOW THING THROUGH HOW MAKE THING THROUGH HOW THING BE THROUGH HOW MAKE THING BE THROUGH HOW ANYTHING THROUGH HOW MAKE ANYTHING THROUGH HOW ANYTHING BE THROUGH HOW MAKE ANYTHING BE THROUGH HOW EVERYTHING THROUGH HOW MAKE EVERYTHING THROUGH HOW EVERYTHING BE THROUGH HOW MAKE EVERYTHING BE THROUGH HOW UNIVERSE THROUGH HOW MAKE UNIVERSE THROUGH HOW UNIVERSE BE THROUGH HOW MAKE UNIVERSE BE THROUGH HOW THING OUT HOW MAKE THING OUT HOW THING BE OUT HOW MAKE THING BE OUT HOW ANYTHING OUT HOW MAKE ANYTHING OUT HOW ANYTHING BE OUT HOW MAKE ANYTHING BE OUT HOW EVERYTHING OUT HOW MAKE EVERYTHING OUT HOW EVERYTHING BE OUT HOW MAKE EVERYTHING BE OUT HOW UNIVERSE OUT HOW MAKE UNIVERSE OUT HOW UNIVERSE BE OUT HOW MAKE UNIVERSE BE OUT HOW THING THROUGH HOW MAKE THING THROUGH HOW THING BE THROUGH HOW MAKE THING BE THROUGH HOW ANYTHING THROUGH HOW MAKE ANYTHING THROUGH HOW ANYTHING BE THROUGH HOW MAKE ANYTHING BE THROUGH HOW EVERYTHING THROUGH HOW MAKE EVERYTHING THROUGH HOW EVERYTHING BE THROUGH HOW MAKE EVERYTHING BE THROUGH HOW UNIVERSE THROUGH HOW MAKE UNIVERSE THROUGH HOW UNIVERSE BE THROUGH HOW MAKE UNIVERSE BE THROUGH HOW THING OUT HOW MAKE THING OUT HOW THING BE OUT HOW MAKE THING BE OUT HOW ANYTHING OUT HOW MAKE ANYTHING OUT HOW ANYTHING BE OUT HOW MAKE ANYTHING BE OUT HOW EVERYTHING OUT HOW MAKE EVERYTHING OUT HOW EVERYTHING BE OUT HOW MAKE EVERYTHING BE OUT HOW UNIVERSE OUT HOW MAKE UNIVERSE OUT HOW UNIVERSE BE OUT HOW MAKE UNIVERSE BE OUT