h-entry: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
m (Reverted edits by [[Special:Contributions/000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Line 1: Line 1:
HOW THING OUT
<entry-title>h-entry</entry-title>
HOW ANYTHING OUT
<span class="h-card vcard"><span class="p-name fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="p-role role">Editor</span>)</span>
HOW EVERYTHING OUT
----
HOW UNIVERSE OUT
<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 OUT
 
HOW MAKE ANYTHING OUT
h-entry is the [[microformats2]] update to [[hAtom]].
HOW MAKE EVERYTHING OUT
 
HOW MAKE UNIVERSE OUT
{{cc0-owfa-license}}
HOW THING BE OUT
 
HOW ANYTHING BE OUT
== Example ==
HOW EVERYTHING BE OUT
Here is a simple blog post example:
HOW UNIVERSE BE OUT
 
HOW MAKE THING BE OUT
<source lang=html4strict>
HOW MAKE ANYTHING BE OUT
<article class="h-entry">
HOW MAKE EVERYTHING BE OUT
  <h1 class="p-name">Microformats are amazing</h1>
HOW MAKE UNIVERSE BE OUT
  <p>Published by <a class="p-author h-card">W. Developer</a>
HOW THING OUT
    on <time class="dt-published" datetime="2013-06-13 12:00:00">13<sup>th</sup> June 2013</time>
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
  <p class="p-summary">In which I extoll the virtues of using microformats.</p>
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
  <div class="e-content">
HOW MAKE ANYTHING OUT
    <p>Blah blah blah</p>
HOW MAKE EVERYTHING OUT
  </div>
HOW MAKE UNIVERSE OUT
</article>
HOW THING BE OUT
</source>
HOW ANYTHING BE OUT
 
HOW EVERYTHING BE OUT
=== Get started ===
HOW UNIVERSE BE OUT
The class '''<code>h-entry</code>''' is a ''root class name'' that indicates the presence of an h-entry.
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
'''p-name''', '''p-author''', '''dt-published''' and the other h-entry property classnames listed below define properties of the h-entry.
HOW MAKE EVERYTHING BE OUT
 
HOW MAKE UNIVERSE BE OUT
See [[microformats2-parsing]] to learn more about property classnames.
HOW THING OUT
 
HOW ANYTHING OUT
== Properties ==
HOW EVERYTHING OUT
h-entry properties, inside an element with class '''h-entry''':
HOW UNIVERSE OUT
* '''<code>p-name</code>''' - entry name/title
HOW MAKE THING OUT
* '''<code>p-summary</code>''' - short entry summary
HOW MAKE ANYTHING OUT
* '''<code>e-content</code>''' - full content of the entry
HOW MAKE EVERYTHING OUT
* '''<code>dt-published</code>''' - when the entry was published
HOW MAKE UNIVERSE OUT
* '''<code>dt-updated</code>''' - when the entry was updated
HOW THING BE OUT
* '''<code>p-author</code>''' - who wrote the entry, optionally embedded [[h-card]](s)
HOW ANYTHING BE OUT
* '''<code>p-category</code>''' - entry categories/tags
HOW EVERYTHING BE OUT
* '''<code>u-url</code>''' - entry permalink URL
HOW UNIVERSE BE OUT
* '''<code>u-uid</code>''' - unique entry ID
HOW MAKE THING BE OUT
* '''<code>p-geo</code>''' - geophysical location the entry was posted from, optionally embed [[h-geo]] {{main|h-geo}}
HOW MAKE ANYTHING BE OUT
* '''<code>p-latitude</code>''' - decimal latitude
HOW MAKE EVERYTHING BE OUT
* '''<code>p-longitude</code>''' - decimal longitude
HOW MAKE UNIVERSE BE OUT
* '''<code>p-altitude</code>''' - decimal altitude
HOW THING OUT
 
HOW ANYTHING OUT
The following experimental properties are in use in the wild but are not yet part of the spec:
HOW EVERYTHING OUT
 
HOW UNIVERSE OUT
* '''<code>u-in-reply-to</code>''' - the URL which the h-entry is considered a reply to or comment on.
HOW MAKE THING 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 MAKE 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 EVERYTHING OUT
 
HOW MAKE UNIVERSE 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 THING BE OUT
* '''<code>u-photo</code>'''
HOW ANYTHING BE OUT
* '''<code>u-audio</code>''' - consider special u- parsing rules for <code>&lt;audio></code>
HOW EVERYTHING BE OUT
* '''<code>u-video</code>''' - consider special u- parsing rules for <code>&lt;video></code>
HOW UNIVERSE BE OUT
 
HOW MAKE THING BE OUT
All properties are optional.
HOW MAKE ANYTHING BE OUT
 
HOW MAKE EVERYTHING BE OUT
== Status ==
HOW MAKE 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 THING OUT
 
HOW ANYTHING 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.
HOW EVERYTHING OUT
 
HOW UNIVERSE OUT
== Property Details ==
HOW MAKE THING OUT
(stub, to be expanded)
HOW MAKE ANYTHING OUT
 
HOW MAKE EVERYTHING OUT
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>.
HOW MAKE UNIVERSE OUT
 
HOW THING BE OUT
== FAQ ==
HOW ANYTHING BE OUT
 
HOW EVERYTHING BE OUT
<div class="discussion">
HOW UNIVERSE BE OUT
* '''What is the <code>p-name</code> of a [http://indiewebcamp.com/note note]?'''
HOW MAKE THING BE OUT
** A few options, from simplest to most detailed.
HOW MAKE ANYTHING BE OUT
*** '''same as the p-content/e-content''' property.
HOW MAKE EVERYTHING BE OUT
*** '''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.
HOW MAKE UNIVERSE BE OUT
*** '''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>.
HOW THING OUT
* ...
HOW ANYTHING OUT
</div>
HOW EVERYTHING OUT
 
HOW UNIVERSE OUT
== Examples in the wild ==
HOW MAKE THING OUT
Real world in the wild examples:
HOW MAKE ANYTHING OUT
 
HOW MAKE EVERYTHING OUT
* ... add uses of h-entry you see in the wild here.
HOW MAKE UNIVERSE OUT
* App.net marks up profile pages and permalink pages with h-entry as of 2013-08-06 ([https://alpha.app.net/voidfiles example])
HOW THING BE OUT
* The Twitter archive browser UI uses h-entry and h-card internally, unfortunately it’s not exposed as HTML in static files anywhere
HOW ANYTHING BE OUT
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])
HOW EVERYTHING BE OUT
* 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])
HOW UNIVERSE BE OUT
* 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])
HOW MAKE THING BE OUT
* 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])
HOW MAKE ANYTHING BE OUT
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])
HOW MAKE EVERYTHING BE OUT
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])
HOW MAKE UNIVERSE BE OUT
* Numerous newer W3C specs, e.g.
HOW THING OUT
** [http://www.w3.org/TR/2013/CR-css3-values-20130404/ CSS Values and Units Module Level 3 - 2013-04-04]
HOW ANYTHING OUT
** [http://www.w3.org/TR/2013/CR-css3-conditional-20130404/ CSS Conditional Rules Module Level 3 - 2013-04-04]
HOW EVERYTHING OUT
** [http://www.w3.org/TR/2013/WD-css3-page-20130314/ CSS Paged Media Module Level 3 - 2013-03-14]
HOW UNIVERSE OUT
** [http://www.w3.org/TR/2013/WD-css-counter-styles-3-20130221/ CSS Counter Styles Level 3 - 2013-02-21]
HOW MAKE THING OUT
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry.
HOW MAKE ANYTHING OUT
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages
HOW MAKE EVERYTHING OUT
* Aaron Parecki uses h-entry to mark up notes, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].
HOW MAKE UNIVERSE OUT
* [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
HOW THING BE OUT
* [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].
HOW ANYTHING BE OUT
 
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
{{h-spec-section-validating}}
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
== Backward Compatibility ==
HOW MAKE EVERYTHING BE OUT
=== Publisher Compatibility ===
HOW MAKE UNIVERSE BE OUT
For backward compatibility, you may wish to use classic [[hAtom]] classnames in addition to the more future-proof h-entry properties, for example:
HOW THING OUT
 
HOW ANYTHING OUT
<source lang=html4strict>
HOW EVERYTHING OUT
<div class="h-entry hentry">
HOW UNIVERSE OUT
  <h1 class="p-name entry-title">My great blog post</h1>
HOW MAKE THING OUT
</div>
HOW MAKE ANYTHING OUT
</source>
HOW MAKE EVERYTHING OUT
 
HOW MAKE UNIVERSE OUT
=== Parser Compatibility ===
HOW THING BE OUT
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.
HOW ANYTHING BE OUT
 
HOW EVERYTHING BE OUT
Compat root class name: <code id="hentry">hentry</code><br/>
HOW UNIVERSE BE OUT
Properties: (parsed as '''p-''' plain text unless otherwise specified):
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
* <code>entry-title</code> - parse as '''<code>p-name</code>'''
HOW MAKE EVERYTHING BE OUT
* <code>entry-summary</code> - parse as '''<code>p-summary</code>'''
HOW MAKE UNIVERSE BE OUT
* <code>entry-content</code> - parse as '''<code>e-content</code>'''
HOW THING OUT
* <code>published</code> - parse as '''dt-'''
HOW ANYTHING OUT
* <code>updated</code> - parse as '''dt-'''
HOW EVERYTHING OUT
* <code>author</code> - including compat root <code>vcard</code> in the absence of <code>h-card</code>
HOW UNIVERSE OUT
* <code>category</code>
HOW MAKE THING OUT
* <code>geo</code> - parse as '''<code>p-geo h-geo</code>''' including compat root <code>geo</code>
HOW MAKE ANYTHING OUT
* <code>latitude</code>
HOW MAKE EVERYTHING OUT
* <code>longitude</code>
HOW MAKE UNIVERSE OUT
 
HOW THING BE OUT
=== Compat FAQ ===
HOW ANYTHING BE OUT
==== What about rel bookmark ====
HOW EVERYTHING BE OUT
Also asked as: ''Why use an h-entry u-url u-uid for permalinks when I have [[rel-bookmark|rel=bookmark]]?''
HOW UNIVERSE BE OUT
 
HOW MAKE THING BE OUT
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).
HOW MAKE ANYTHING BE OUT
 
HOW MAKE EVERYTHING BE OUT
rel=bookmark was the old [[hAtom]] way of marking up permalinks. Since then two factors have contributed to reducing use of rel inside microformats:
HOW MAKE UNIVERSE BE OUT
* 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.
HOW THING OUT
* 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.
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
<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.
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
== Background ==
HOW MAKE ANYTHING OUT
This work is based on the existing [[hAtom]] microformat, and extensive selfdogfooding in the [http://indiewebcamp.com indie web camp] community.
HOW MAKE EVERYTHING OUT
 
HOW MAKE UNIVERSE OUT
== Design Principles ==
HOW THING BE OUT
 
HOW ANYTHING BE OUT
(stub, expand)
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
== See Also ==
HOW MAKE THING BE OUT
 
HOW MAKE ANYTHING BE OUT
* [[microformats2]]
HOW MAKE EVERYTHING BE OUT
* [[microformats2-parsing]]
HOW MAKE UNIVERSE BE OUT
* [[h-geo]]
HOW THING OUT
* [[hCard]]
HOW ANYTHING OUT
 
HOW EVERYTHING OUT
[[Category:Draft Specifications]]
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT

Revision as of 03:46, 18 August 2013

<entry-title>h-entry</entry-title> Tantek Çelik (Editor)


h-entry 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 microformat draft standards suitable for embedding data in HTML/HTML5.

h-entry is the microformats2 update to hAtom.

Per CC0, to the extent possible under law, the editors have waived all copyright and related or neighboring rights to this work. In addition, as of 2024-11-25, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.

Example

Here is a simple blog post example:

<article class="h-entry">
  <h1 class="p-name">Microformats are amazing</h1>
  <p>Published by <a class="p-author h-card">W. Developer</a>
     on <time class="dt-published" datetime="2013-06-13 12:00:00">13<sup>th</sup> June 2013</time>
  
  <p class="p-summary">In which I extoll the virtues of using microformats.</p>
  
  <div class="e-content">
    <p>Blah blah blah</p>
  </div>
</article>

Get started

The class h-entry is a root class name that indicates the presence of an h-entry.

p-name, p-author, dt-published and the other h-entry property classnames listed below define properties of the h-entry.

See microformats2-parsing to learn more about property classnames.

Properties

h-entry properties, inside an element with class h-entry:

  • p-name - entry name/title
  • p-summary - short entry summary
  • e-content - full content of the entry
  • dt-published - when the entry was published
  • dt-updated - when the entry was updated
  • p-author - who wrote the entry, optionally embedded h-card(s)
  • p-category - entry categories/tags
  • u-url - entry permalink URL
  • u-uid - unique entry ID
  • p-geo - geophysical location the entry was posted from, optionally embed h-geo
    Main article: h-geo
  • p-latitude - decimal latitude
  • p-longitude - decimal longitude
  • p-altitude - decimal altitude

The following experimental properties are in use in the wild but are not yet part of the spec:

  • u-in-reply-to - the URL which the h-entry is considered a reply to or comment on.
    • 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 --bw 16:44, 13 June 2013 (UTC)
  • p-comment - optionally embedded (or nested?) h-entry(ies), each of which is a comment on/reply to the parent h-entry. See comment-brainstorming.

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)

  • u-photo
  • u-audio - consider special u- parsing rules for <audio>
  • u-video - consider special u- parsing rules for <video>

All properties are optional.

Status

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 microformats-new mailing list.

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 p-name over p-entry-title, and use p-entry-title value(s) as a fallback if there is no p-name.

FAQ

  • What is the p-name of a note?
    • A few options, from simplest to most detailed.
      • same as the p-content/e-content property.
      • same as the title 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 syndication and link-preview purposes to provide just the first sentence of the note as the p-name. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the p-summary.
  • ...

Examples in the wild

Real world in the wild examples:


Main article: validators

Test and validate microformats2 markup in general with:

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:

<div class="h-entry hentry">
  <h1 class="p-name entry-title">My great blog post</h1>
</div>

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: hentry
Properties: (parsed as p- plain text unless otherwise specified):

  • entry-title - parse as p-name
  • entry-summary - parse as p-summary
  • entry-content - parse as e-content
  • published - parse as dt-
  • updated - parse as dt-
  • author - including compat root vcard in the absence of h-card
  • category
  • geo - parse as p-geo h-geo including compat root geo
  • latitude
  • longitude

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?

A: tl;dr: use class="u-url u-uid" instead of rel=bookmark 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.

* even though rel=bookmark in particular is article-element / sectioning scoped in HTML5[1], 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 indie web camp community.

Design Principles

(stub, expand)

See Also