<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benthatmustbeme</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benthatmustbeme"/>
	<link rel="alternate" type="text/html" href="http://microformats.org/wiki/Special:Contributions/Benthatmustbeme"/>
	<updated>2026-04-07T06:51:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=microformats2&amp;diff=66393</id>
		<title>microformats2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=microformats2&amp;diff=66393"/>
		<updated>2017-05-25T13:36:15Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Ruby */ add link to live input version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
Welcome to the microformats2 home page.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Microformats2 is the simplest way to markup structured information in HTML. Microformats2 improves ease of use and implementation for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; authors (publishers) and developers ([[microformats2-parsing|parser]] implementers).&lt;br /&gt;
&lt;br /&gt;
Microformats2 replaces and supersedes both classic microformats, as well as incorporates lessons learned from [[microdata]] and [[RDFa]].&lt;br /&gt;
&lt;br /&gt;
=== simple microformats 2 examples ===&lt;br /&gt;
Here are a few simple microformats2 examples along with canonical [[JSON]].&lt;br /&gt;
&lt;br /&gt;
==== person example ====&lt;br /&gt;
* Simple person reference:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Frances Berriman&amp;quot;] &lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person ====&lt;br /&gt;
* Simple hyperlinked person reference&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Ben Ward&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://benward.me&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person image ====&lt;br /&gt;
* Simple hyperlinked person image&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://rohit.khare.org/&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Rohit Khare&amp;quot;&lt;br /&gt;
      src=&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Rohit Khare&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://rohit.khare.org/&amp;quot;],&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional simple cases details in [[microformats-2-implied-properties]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== detailed person example ====&lt;br /&gt;
* More detailed person&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; alt=&amp;quot;photo of Mitchell&amp;quot;&lt;br /&gt;
       src=&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt;&lt;br /&gt;
 (&amp;lt;a class=&amp;quot;u-url&amp;quot; &lt;br /&gt;
     href=&amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
    &amp;gt;@MitchellBaker&amp;lt;/a&amp;gt;)&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-note&amp;quot;&amp;gt;&lt;br /&gt;
    Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Strategy&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Leadership&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;],&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&lt;br /&gt;
        &amp;quot;http://blog.lizardwrangler.com/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
      &amp;quot;note&amp;quot;: [&amp;quot;Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&amp;quot;],&lt;br /&gt;
      &amp;quot;category&amp;quot;: [&lt;br /&gt;
        &amp;quot;Strategy&amp;quot;,&lt;br /&gt;
        &amp;quot;Leadership&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Notes: &lt;br /&gt;
# The JSON &amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt; uses the full microformat root class name (e.g. &amp;lt;code&amp;gt;&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt;) for consistent identification.&lt;br /&gt;
# all properties are optional and syntactically plural with parsed values provided in document order; particular microformats (and applications there-of) may apply specific/singular semantics to first value of a property.&lt;br /&gt;
&lt;br /&gt;
=== microformats2 design ===&lt;br /&gt;
&lt;br /&gt;
microformats2 has the following key design aspects:&lt;br /&gt;
&lt;br /&gt;
; Prefixes for class names&lt;br /&gt;
: All microformats class names use prefixes. Prefixes are '''syntax independent from vocabularies''', which are developed separately.&lt;br /&gt;
* &amp;lt;code&amp;gt;h-*&amp;lt;/code&amp;gt; for root class names (e.g. &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; for plain text properties (e.g. &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; for URL properties (e.g. &amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;dt-*&amp;lt;/code&amp;gt; for date/time properties (e.g. &amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; for embedded markup properties (e.g. &amp;lt;code&amp;gt;e-note&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[microformats2#naming_conventions_for_generic_parsing|prefix naming conventions]] for more details.&lt;br /&gt;
&lt;br /&gt;
; Flat sets of optional properties&lt;br /&gt;
: All microformats consist of a root, and a collection of properties. Hierarchical data is represented with nested microformats, typically as property values themselves. Properties are all optional and potentially multivalued (applications needing a singular semantic may use first instance).&lt;br /&gt;
&lt;br /&gt;
; Single class markup for common uses&lt;br /&gt;
: Common simple markup patterns require only a single microformat root class name, which parsers use to find a few generic properties: &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;. The simple microformats2 examples above demonstrate these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parsing each prefix (including generating canonical JSON) is detailed step-by-step in:&lt;br /&gt;
* The '''[[microformats2-parsing|microformats2 parsing specification]]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Most properties are specified and used with a single specific prefix (or occasionally two or three) that is self-evident from context. However, any parsing prefix can be used with any property, especially if you find a good reason to do so!&lt;br /&gt;
&lt;br /&gt;
== v2 vocabularies ==&lt;br /&gt;
Status: '''&amp;lt;span id=&amp;quot;draft_v2_vocabularies&amp;quot;&amp;gt;draft&amp;lt;/span&amp;gt;'''. Please review and provide feedback in [[IRC]].&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-item]]&lt;br /&gt;
* [[h-listing]]&lt;br /&gt;
* [[h-product]]&lt;br /&gt;
* [[h-recipe]]&lt;br /&gt;
* [[h-resume]]&lt;br /&gt;
* [[h-review]]&lt;br /&gt;
* [[h-review-aggregate]]&lt;br /&gt;
&lt;br /&gt;
See below for vocabulary summaries.&lt;br /&gt;
&lt;br /&gt;
=== h-adr ===&lt;br /&gt;
{{main|h-adr}}&lt;br /&gt;
&lt;br /&gt;
The '''h-adr''' microformat is for marking up structured locations such as addresses, physical and/or postal. This is an update to [[adr]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-adr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL) - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;adr&amp;quot;&amp;gt;adr&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;post-office-box&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-card ===&lt;br /&gt;
{{main|h-card}}&lt;br /&gt;
&lt;br /&gt;
The '''h-card''' microformat is for marking up people and organizations. This is an update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-card&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - previously 'title' in hCard, disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC 4770, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved properties: (properties not used much (if at all) in practice)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Note: use of 'value' within 'tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== h-entry ===&lt;br /&gt;
{{main|h-entry}}&lt;br /&gt;
&lt;br /&gt;
The '''h-entry''' microformat is for marking up syndicatable content such as blog posts, notes, articles, comments, photos and similar. This is an update to [[hAtom]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-entry&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' (was p-entry-title, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' (was p-entry-summary, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' (was e-entry-content, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hAtom]]. &lt;br /&gt;
&lt;br /&gt;
Brainstorming:&lt;br /&gt;
&lt;br /&gt;
The following properties are proposed additions to h-entry above and beyond what hAtom (or Atom) provides, based on various existing link preview markup conventions:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - for links to other posts that this post is a reply to (comment regarding, etc.)&lt;br /&gt;
&lt;br /&gt;
Backward compatibility: &lt;br /&gt;
&lt;br /&gt;
(*)hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For hAtom backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-entry&amp;quot; is found, don't look for a &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;h-entry-faq&amp;quot;&amp;gt;FAQ:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
*** '''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 &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolved Issues:&lt;br /&gt;
* 2012-245 Resolved. See [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-120 2012-243 IRC discussion/consensus] for:&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;p-entry-summary&amp;lt;/code&amp;gt;'''. The historical semantic of &amp;quot;entry-summary&amp;quot; is not different from &amp;quot;summary&amp;quot; in any significant (or discernible way). Collapsing the two will simplify the overall microformats2 vocabularies further. In microformats2, entry-summary is no more.&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;e-entry-content&amp;lt;/code&amp;gt;'''. Same point and advantage. In microformats2, entry-content is no more.&lt;br /&gt;
** '''drop &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;'''. Unnecessary and subsumed by &amp;quot;p-name&amp;quot;. Would consider move to backward compat only if cases are presented - known publishing uses are expected to be updated shortly.&lt;br /&gt;
&lt;br /&gt;
=== h-event ===&lt;br /&gt;
{{main|h-event}}&lt;br /&gt;
&lt;br /&gt;
The '''h-event''' microformat is for marking up events. This is an update to [[hCalendar]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-event&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''(*)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hCalendar]]. &lt;br /&gt;
&lt;br /&gt;
(*)hCalendar-specific implementations that perform custom display or translation (e.g. to iCalendar .ics) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-event&amp;quot; is found, don't look for a &amp;quot;vevent&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vevent&amp;quot;&amp;gt;vevent&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtstart&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtend&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, and compat root &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== h-geo ===&lt;br /&gt;
{{main|h-geo}}&lt;br /&gt;
&lt;br /&gt;
The '''h-geo''' microformat is for marking up WGS84 geophysical coordinates. This is an update to [[geo]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-geo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-geo&amp;quot; is found, don't look for an &amp;quot;geo&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;geo&amp;quot;&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-item ===&lt;br /&gt;
{{main|h-item}}&lt;br /&gt;
&lt;br /&gt;
The '''h-item''' microformat is for marking up the item of an [[h-review]] or [[h-product]]. This is an update to part of [[hReview]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-item&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Note: in practice, due to the microformats2 implied property rules, it is expected that most uses of &amp;quot;h-item&amp;quot; won't require any explicit properties at all (since microformats2 parsers will infer name, photo, and url properties from the structure of the element with &amp;quot;h-item&amp;quot; and its contained content/elements if any).&lt;br /&gt;
&lt;br /&gt;
=== h-product ===&lt;br /&gt;
{{main|h-product}}&lt;br /&gt;
&lt;br /&gt;
The '''h-product''' microformat is for marking up products. This is an update to [[hProduct]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-product&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-product&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - photo of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-brand&amp;lt;/code&amp;gt;''' - manufacturer, can also be a nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-identifier&amp;lt;/code&amp;gt;''' - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-review&amp;lt;/code&amp;gt;''' - a review of the product, can also be a nested &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-price&amp;lt;/code&amp;gt;''' - retail price of the product&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-product&amp;quot; is found, don't look for an &amp;quot;hproduct&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hproduct&amp;quot;&amp;gt;hproduct&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;brand&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; - including compat root class &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;price&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hProduct]] has at least one experimental property which has real world adoption due to [[Google]] and [[Bing]] search support of hProduct. Currently this is: '''price'''&lt;br /&gt;
&lt;br /&gt;
=== h-recipe ===&lt;br /&gt;
{{main|h-recipe}}&lt;br /&gt;
&lt;br /&gt;
The '''h-recipe''' microformat is for marking up food recipes. This is an update to [[hRecipe]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-recipe&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-recipe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - the name of the recipe&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-ingredient&amp;lt;/code&amp;gt;''' - describes one or more ingredients used in the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-yield&amp;lt;/code&amp;gt;''' - Specifies the quantity produced by the recipe, like how many persons it satisfyies &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-instructions&amp;lt;/code&amp;gt;''' - the method of the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;''' - the time it takes to prepare the meal described by the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - an accompanying image&lt;br /&gt;
&lt;br /&gt;
Experimental properties with wide adoption&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''  - provides a short summary or introduction &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - the person who wrote the recipe with &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - the date the recipe was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nutrition&amp;lt;/code&amp;gt;''' - nutritional information like calories, fat, dietary fiber etc.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-recipe&amp;quot; is found, don't look for an &amp;quot;hrecipe&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hrecipe&amp;quot;&amp;gt;hrecipe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;ingredient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;instructions&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nutrition&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hRecipe]] has a number of experimental properties which have real world adoption due to [[Google]] recipe search support of hRecipe. These are: summary, author, published and nutrition&lt;br /&gt;
&lt;br /&gt;
=== h-resume ===&lt;br /&gt;
{{main|h-resume}}&lt;br /&gt;
&lt;br /&gt;
The '''h-resume''' microformat is for marking up resumes. This is an update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-resume&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - overview of qualifications and objectives&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-contact&amp;lt;/code&amp;gt;''' - current contact info in an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-education&amp;lt;/code&amp;gt;''' - an education &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the school, location.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-experience&amp;lt;/code&amp;gt;''' - a job or other professional experience &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the organization, location, job-title.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-skill&amp;lt;/code&amp;gt;''' - a skill or ability, optionally including level and/or duration of experience&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-affiliation&amp;lt;/code&amp;gt;''' - an affiliation with an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; organization&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-resume&amp;quot; is found, don't look for an &amp;quot;hresume&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hresume&amp;quot;&amp;gt;hresume&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;contact&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;experience&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;affiliation&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: skill has a [[hresume-skill-brainstorm|proposed expansion into competency]] with explicit summary, rating and/or duration components. Based on existing real world adoption, we should consider an h-competency vocabulary with p-summary, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
=== h-review ===&lt;br /&gt;
{{main|h-review}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review''' microformat is for marking up reviews. This is an update to [[hReview]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt;''' - person who authored the review &lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt;''' - date time of when the review was written&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hreview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview&amp;quot;&amp;gt;hreview&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== h-review-aggregate ===&lt;br /&gt;
{{main|h-review-aggregate}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review-aggregate''' microformat is for marking up aggregate reviews of a single item. This is an update to [[hreview-aggregate]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review-aggregate&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review-aggregate&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item (h-item).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating average rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-count&amp;lt;/code&amp;gt;'''  - number of reviews aggregated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-votes&amp;lt;/code&amp;gt;'''  - number of reviewers who have rated the product, thus contributing to the average rating.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review-aggregate&amp;quot; is found, don't look for an &amp;quot;hreview-aggregate&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;votes&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab notes ===&lt;br /&gt;
Notes: &lt;br /&gt;
* All v2 vocabularies are defined as flat lists of properties of an object/item, and thus can be used in microformats-2 syntax as shown, or in microdata items, or RDFa. The microformats-2 property parsing prefixes &amp;quot;p-&amp;quot;, &amp;quot;u-&amp;quot;, &amp;quot;dt-&amp;quot;, &amp;quot;e-&amp;quot; are omitted when using defined properties in microdata itemprop and RDFa property as those syntaxes have their own element-specific parsing rules.&lt;br /&gt;
* Profile URLs are provided for use with the HTML4 &amp;lt;code&amp;gt;profile&amp;lt;/code&amp;gt; attribute, microdata &amp;lt;code&amp;gt;itemtype&amp;lt;/code&amp;gt; attribute, and RDFa &amp;lt;code&amp;gt;vocab&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;typeof&amp;lt;/code&amp;gt; attributes (though the latter requires slicing off the trailing segment of the profile for the typeof attribute, and leaving the rest in vocab). &lt;br /&gt;
* microformats 2 properties may also be explicitly bound as URIs using [[rel-profile]], the [[html5-profile]] attribute proposal, or an HTML5 'vocab' attribute instead. If URI bound terms are important to you, please express interest on [[rel-profile]], [[html5-profile]], or contribute to an [[html5-vocab]] draft.&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab to-do ===&lt;br /&gt;
To do: &lt;br /&gt;
* write a simple tutorial for creating/getting started with microformats-2 markup for new content&lt;br /&gt;
* examples in each h-* spec listed above of how to embed other microformats in them&lt;br /&gt;
* actual profile documents at &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-*&amp;lt;/nowiki&amp;gt; URLs mentioned above.&lt;br /&gt;
* Provide any necessary microdata-specific language as needed (e.g. to be comparably understandable to the [http://www.whatwg.org/specs/web-apps/current-work/#vcard sample vCard4/hCard1 microdata vocabulary]. Also provide any necessary RDFa-specific language as needed. Both preferably in a generic vocabulary-independent way.&lt;br /&gt;
* write a porting guide mapping v1 property -&amp;gt; v2 property&lt;br /&gt;
** use-case: simple search/replace in templates (e.g. in case web author doesn't remember existing microformats vocabs and where they used them).&lt;br /&gt;
** advise using *both* in existing templates (e.g. in case some CSS depends on the existing microformats)&lt;br /&gt;
* analyzie/document how well the microformats2 model and vocabularies satisfy the [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html use-cases used to design/create microdata].&lt;br /&gt;
&lt;br /&gt;
== combining microformats ==&lt;br /&gt;
Since microformats 2 uses simple flat sets of properties for each microformat, multiple microformats are combined to indicate additional structure.&lt;br /&gt;
&lt;br /&gt;
=== h-event location h-card ===&lt;br /&gt;
Events commonly have venue information with additional structure, like address information. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-event&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://indiewebcamp.com/2012&amp;quot;&amp;gt;&lt;br /&gt;
    IndieWebCamp 2012&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
  from &amp;lt;time class=&amp;quot;dt-start&amp;quot;&amp;gt;2012-06-30&amp;lt;/time&amp;gt; &lt;br /&gt;
  to &amp;lt;time class=&amp;quot;dt-end&amp;quot;&amp;gt;2012-07-01&amp;lt;/time&amp;gt; at &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-location h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-name p-org u-url&amp;quot; href=&amp;quot;http://geoloqi.com/&amp;quot;&amp;gt;&lt;br /&gt;
      Geoloqi&lt;br /&gt;
    &amp;lt;/a&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;920 SW 3rd Ave. Suite 400&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Portland&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;p-region&amp;quot; title=&amp;quot;Oregon&amp;quot;&amp;gt;OR&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nested h-card used to structure the p-location of the h-event is represented as a structured value for &amp;quot;location&amp;quot; in the JSON, which has an additional key, &amp;quot;value&amp;quot; that represents the plain text version parsed from the p-location.&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-event&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;IndieWebCamp 2012&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://indiewebcamp.com/2012&amp;quot;],&lt;br /&gt;
      &amp;quot;start&amp;quot;: [&amp;quot;2012-06-30&amp;quot;],&lt;br /&gt;
      &amp;quot;end&amp;quot;: [&amp;quot;2012-07-01&amp;quot;],&lt;br /&gt;
      &amp;quot;location&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Geoloqi&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;org&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://geoloqi.com/&amp;quot;],&lt;br /&gt;
          &amp;quot;street-address&amp;quot;: [&amp;quot;920 SW 3rd Ave. Suite 400&amp;quot;],&lt;br /&gt;
          &amp;quot;locality&amp;quot;: [&amp;quot;Portland&amp;quot;],&lt;br /&gt;
          &amp;quot;region&amp;quot;: [&amp;quot;Oregon&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* Should the nested hCard be present also as a top-level item in the JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, how do we avoid expansion of the JSON geometrically proportional to the depth of microformat nesting? (Or do we not worry about it?)&lt;br /&gt;
* Should there be a canonical hierarchical JSON and a canonical flattened JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no, we stick with one canonical JSON for uf2 which is hierarchical. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, should the flattened JSON have references from properties to nested microformats that have been pushed to the top level per flattening? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
*** If so, what convention does/do JSON follow for such synthetic local reference identifiers? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 'location' value reflects the visible text of its element, including spaces and punctuation, as well as the state abbreviation 'OR'. The 'h-card' property values are only what is marked up, and thus include structure values without extra punctuation, and the state takes the expanded form from the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute of its &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
=== h-card org h-card ===&lt;br /&gt;
People often publish information general to their company rather than specific to them, in which case, they may wish to encapsulate that in separately nested microformat. E.g. here is a simple h-card example with org property:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] (Mozilla Foundation)&lt;br /&gt;
&lt;br /&gt;
with source:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes such organization affiliations are hyperlinked to the website of the organization:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] ([http://mozilla.org/ Mozilla Foundation])&lt;br /&gt;
&lt;br /&gt;
You can mark that up with a nested h-card:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
The nested 'h-card' could be marked up as an 'h-org' as well, which adds it to the nested microformat's type array, all as part of the property specified by the 'p-org'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card h-org&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;, &amp;quot;h-org&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Without a property class name like 'p-org' holding all the nested objects together, we need to introduce another array for nested children (similar to the existing DOM element notion of children) of a microformat that are not attached to a specific property:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;,&amp;quot;h-org&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there's no property class name on the element with classes 'h-card' and 'h-org', the microformat representing that element is collected into the children array.&lt;br /&gt;
&lt;br /&gt;
Such a nested microformat implies some relationship (containment, being related), but is not as useful as if the nested microformat was a specific property of its parent.&lt;br /&gt;
&lt;br /&gt;
For this reason it's recommended that authors should not publish nested microformats without a  property class name, and instead, when nesting microformats, authors should always specify a property class name (like 'p-org') on the same element as the root class name(s) of the nested microformat(s) (like 'h-card' and/or 'h-org').&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Or the nested object could be only marked up with 'h-card'. Source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TO DO: Add h-event h-card example and JSON, per real world publishing examples like [http://www.swingtime.co.uk/List/ClSouth.html Swing Time: Classes in Southern England].'''&lt;br /&gt;
&lt;br /&gt;
== authoring ==&lt;br /&gt;
=== minimal markup ===&lt;br /&gt;
The best way to use microformats-2 is with as little additional markup as possible. This keeps your code cleaner, improves its maintainability, and thus the quality and longevity of your microformats.&lt;br /&gt;
&lt;br /&gt;
One big advantage of microformats-2 over previous microformats (and others) is the ability to add one class name to an existing element to create a structured item.&lt;br /&gt;
&lt;br /&gt;
See the [[microformats-2#simple_microformats_2_examples|simple examples at the top]] for a start, e.g.&lt;br /&gt;
&lt;br /&gt;
Simple hCards work just by adding &amp;lt;code&amp;gt;class=&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img class=&amp;quot;h-card&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
     src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Tantek Çelik&amp;quot; src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tip: Inside an open tag, put the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute &amp;lt;em&amp;gt;first&amp;lt;/em&amp;gt;, then any human text content attributes (e.g. &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;), then URL attributes (e.g. &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;), and lastly other attributes (e.g. &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt;). Putting the class attribute first ties it closely to the element name/tag itself, makes it more obvious, and thus more likely to be kept up to date.&lt;br /&gt;
&lt;br /&gt;
=== backward compatible ===&lt;br /&gt;
If you depend on current microformats [[implementations]], while they're being updated to support [[microformats-2]], you can include both existing microformats and microformats-2 markup.&lt;br /&gt;
&lt;br /&gt;
In short: use both sets of class names simultaneously. &lt;br /&gt;
&lt;br /&gt;
When doing so, use them on the same element, with the microformats-2 class name first, followed immediately by the existing microformats class name.&lt;br /&gt;
&lt;br /&gt;
Here are the microformats-2 hCards from above with current [[hCard]] markup as well, which may require adding a wrapping element (e.g. a &amp;lt;code&amp;gt;&amp;amp;lt;span&amp;amp;gt;&amp;lt;/code&amp;gt;) to separate the root class name element from explicit property class name elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name fn u-url url&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
       src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-url url&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Tantek Çelik&amp;quot; &lt;br /&gt;
         src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* use the microformats-2 class name first, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;h-card vcard&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* and pair them when using an element for multiple properties, e.g.:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-photo photo&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* put microformats classes after classes for CSS (since page authors will likely interact more with their own classes for design than with microformats classes), e.g. as used on individual microformats [[events]] pages:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;event-page h-event vevent&amp;quot;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The prefixes (h-, p-, etc.) of microformats2 class names provide easier recognition, and when followed by the similarly named existing class name, they're more easily recognized as related and thus kept together when the markup is maintained over time.&lt;br /&gt;
&lt;br /&gt;
Related FAQ: [[microformats2-faq#when_using_both_h-card_and_vcard_which_should_be_first_and_why|When using both h-card and vcard which should be first and why?]]&lt;br /&gt;
&lt;br /&gt;
== validators ==&lt;br /&gt;
microformats2 validators:&lt;br /&gt;
&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
Barnaby Walters has a hosted version of the open source php-mf2 [[parser]] where you can enter your markup into a textarea and see how it's parsed:&lt;br /&gt;
* http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
&lt;br /&gt;
See the [[validators]] page for a longer list of validators.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Please add new examples in the wild of microformats-2 to the top of this list. When it gets too big we can move it to a separate page like [[microformats-2-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllan marks up her blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [https://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Hakan Demir marks up his Coupon and Voucher blog posts with h-entry and h-card on [http://www.gutscheinflagge.de/ gutscheinflagge.de]&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Eugen Busoiu marks up his web profile with h-card on [http://eugenbusoiu.com/#utm_source=microformats2&amp;amp;utm_medium=h-card&amp;amp;utm_campaign=Microformats eugenbusoiu.com]]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his blog posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* Emil Björklund marks up his blog posts with h-entry and h-card ([http://thatemil.com/blog/2013/09/16/webmentioning-adactio/ example])&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Sinolandquality marks up some of their content using h-feed and h-entry on [http://www.sinolandquality.com/Blog/?page_id=3516&amp;amp;utm_content=buffere4d40&amp;amp;utm_medium=social&amp;amp;utm_source=twitter.com&amp;amp;utm_campaign=buffer sinolandquality.com]&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-event for the main event, and h-card for all the speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card, h-event, and 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, and with [[rel-author]] to his home page with canonical hCard to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, h-card, h-entry and XFN markup on his [http://waterpigs.co.uk/notes notes page].&lt;br /&gt;
** 2013-01-25 Barnaby Walters: &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/articles/experimental-markup Experimental Markup]&amp;lt;/cite&amp;gt; - describes how he's using microformats2 vocabularies: &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;, and experimental vocabularies: &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; (embedded for update histories), [[activity-streams]] objects &amp;lt;code&amp;gt;h-as-article&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-collection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-update&amp;lt;/code&amp;gt;, as well as experimental properties: &amp;lt;code&amp;gt;u-alternate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-as-downstream-duplicate&amp;lt;/code&amp;gt; (links to POSSE copies), and &amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt; (links to content that the posts are in reply to). &lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with h-event and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats-2]] h-calendar and h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats-2]] h-calendar and h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats-2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats-2]] h-event markup with nested h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats-2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* The [http://pdx.esri.com/blog/2013/10/17/introducing-mapattack/ Esri PDX Blog] has h-entry markup on all blog posts (as of 2013-10-19), and h-product markup on [http://pdx.esri.com/projects/terraformer/ project pages]&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
=== Live Textarea Input ===&lt;br /&gt;
Use any of these to enter HTML+microformats2 markup and see the parsed result!&lt;br /&gt;
* http://glennjones.net/tools/microformats/&lt;br /&gt;
* https://pin13.net/mf2/ (where it says &amp;quot;Microformats Parser&amp;quot;)&lt;br /&gt;
* https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
=== Blogging tools ===&lt;br /&gt;
* '''Storytlr''' parses the 'target' from [http://indiewebcamp.com/pingback pingbacks] for [https://github.com/storytlr/storytlr/blob/master/protected/application/public/controllers/PingbackController.php#L63 h-entry with properties and nested h-card] for information to automatically display in the [http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html comments section on a post].&lt;br /&gt;
&lt;br /&gt;
=== Converters ===&lt;br /&gt;
* '''[https://github.com/snarfed/granary granary]''' is a library and REST API that converts between silo APIs, [[ActivityStreams]], [[microformats2]], and Atom (all directions). Supported silos include Facebook, Twitter, Instagram, Google+, and Flickr. Users include [http://brid.gy/ Bridgy], [http://reader.kylewm.com/ Woodwind], and [https://facebook-atom.appspot.com/ facebook-atom] and [https://twitter-atom.appspot.com/ twitter-atom], among others.&lt;br /&gt;
&lt;br /&gt;
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])&lt;br /&gt;
&lt;br /&gt;
* '''[https://xray.p3k.io XRay]''' ([https://github.com/aaronpk/XRay source code]) - Returns a normalized representation of the microformats data at a URL&lt;br /&gt;
&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Parsers, open source libraries, in alphabetical order by programming language:&lt;br /&gt;
&lt;br /&gt;
==== Parsers in production ====&lt;br /&gt;
The following parsers are of very high quality, in active development, and use on live sites on the web in production.&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* [[any23]] Apache Any23 (Anything to Triples)] a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents: http://any23.apache.org&lt;br /&gt;
&lt;br /&gt;
===== Javascript =====&lt;br /&gt;
* '''microformat-node''' Node.js microformats2 parser&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-node&lt;br /&gt;
** test suite: https://github.com/microformats/tests&lt;br /&gt;
** blog post: http://glennjones.net/2013/01/brand-new-microformats-2-parser/&lt;br /&gt;
** live: http://glennjones.net/tools/microformats/&lt;br /&gt;
** command line: https://github.com/JerrySievert/mf2&lt;br /&gt;
* '''microformat-shiv'''  - cross browser javascript microformats 2 parser which can also be used in browser extensions.&lt;br /&gt;
** http://microformatshiv.com/&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-shiv&lt;br /&gt;
&lt;br /&gt;
===== PHP =====&lt;br /&gt;
* '''&amp;lt;span id=&amp;quot;php-mf2&amp;quot;&amp;gt;php-mf2&amp;lt;/span&amp;gt;''' - PHP microformats2 parser&lt;br /&gt;
** github open source: https://github.com/indieweb/php-mf2&lt;br /&gt;
** Packagist: https://packagist.org/packages/mf2/mf2&lt;br /&gt;
** live: &lt;br /&gt;
*** textarea entry: http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
*** URL and textarea entry: https://pin13.net/mf2/&lt;br /&gt;
** [https://github.com/barnabywalters/php-mf-cleaner mf-cleaner]: functions for working with the raw mf2 data structure&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
* '''mf2py''' Python microformats2 parser&lt;br /&gt;
** main entry: [[mf2py]]&lt;br /&gt;
** github open source: https://github.com/tommorris/mf2py&lt;br /&gt;
** live: &lt;br /&gt;
*** URL entry: [https://mf2py.herokuapp.com/ mf2py.herokuapp.com]&lt;br /&gt;
*** textarea entry: https://kartikprabhu.com/connection/mfparser&lt;br /&gt;
*** another textarea: http://www.unmung.com/?html=&lt;br /&gt;
*** URL and/or textarea: https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
===== Ruby =====&lt;br /&gt;
* '''indieweb/microformats-ruby''' Ruby microformats parser&lt;br /&gt;
** github open source: https://github.com/indieweb/microformats-ruby&lt;br /&gt;
** live text entry: https://microformats-parser-ruby.herokuapp.com&lt;br /&gt;
&lt;br /&gt;
==== Development parsers ====&lt;br /&gt;
The following parsers are in-development and have key microformats2 functionality yet are incomplete, not fully tested, or have other limitations. Contributions welcome!&lt;br /&gt;
&lt;br /&gt;
===== Erlang =====&lt;br /&gt;
* '''hazybluedot/mf2erl''' Erlang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/hazybluedot/mf2erl&lt;br /&gt;
&lt;br /&gt;
===== Elixir =====&lt;br /&gt;
* '''ckruse/microformats-elixir''' Elixir microformats2 parser&lt;br /&gt;
** github open source: https://github.com/ckruse/microformats2-elixir&lt;br /&gt;
&lt;br /&gt;
===== Go =====&lt;br /&gt;
* '''andyleap/microformats''' Golang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/andyleap/microformats&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
===== Haskell =====&lt;br /&gt;
* '''myfreeweb/microformats2-parser''' Haskell microformats2 parser&lt;br /&gt;
** github open source: https://github.com/myfreeweb/microformats2-parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* '''Apache Any23''' a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents. Supports Microformats1 and 2.&lt;br /&gt;
** Download recent release: http://any23.apache.org/download.html&lt;br /&gt;
** live: http://any23-vm.apache.org/&lt;br /&gt;
** source: http://any23.apache.org/build-src.html&lt;br /&gt;
* '''mf2j''' An early-stage Java microformats2 parser&lt;br /&gt;
** github open source: https://github.com/kylewm/mf2j&lt;br /&gt;
** live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
==== Experiments ====&lt;br /&gt;
Experiments and other proof of concept microformat2 parsing support.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Outreach ===&lt;br /&gt;
* [https://github.com/mozilla/fathom/issues/42 Mozilla Fathom:  examples with nested classes, e.g. microformats2]&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
Presentations about microformats2:&lt;br /&gt;
* 2013-01-24 &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/presentations/microformats-2/ Microformats 2]&amp;lt;/cite&amp;gt; presentation by [[User:Barnabywalters|Barnaby Walters]] at the [[events/2013-01-24-exeter-web-meetup|Exeter Web Meetup]] in Devon, UK.&lt;br /&gt;
* 2012-09-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/09/microformats2/ microformats2 &amp;amp;amp; bits of HTML5: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-09-21-refreshlx|RefreshLX]] in Lisbon, Portugal.&lt;br /&gt;
* 2012-07-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-uf2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-21-cascadesf|Innovators of the Web conference]] in San Francisco, CA.&lt;br /&gt;
* 2012-07-14 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-microformats2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-14-open-web-camp-4|Open Web Camp IV]] in San Jose, CA.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;To prove the web standards community can come up with better standards than the SE’s, compare this: http://microformats.org/wiki/microformats-2 with schema . org &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298907685452124160 2013-02-05 13:35]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... I’m hoping SE’s will pick up microformats2. It’s SO much cleaner. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298911287117758464 2013-02-05 13:49]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... But damn Microformats2 are sexy. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298912179292344320 2013-02-05 13:53]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Brainstorm ==&lt;br /&gt;
The rest of this page is a brainstorm currently written in narrative / exploratory format, that is, acknowledging the success that microformats have had, why so, and then a walk through of known issues with microformats in general along with iteration of ways to address said issues, ending up with the current microformats 2 design as a conclusion.&lt;br /&gt;
&lt;br /&gt;
The proposals build on each other resulting in a solution that addresses the vast majority of general issues. The proposed changes merit a major version number increment, hence microformats 2.&lt;br /&gt;
&lt;br /&gt;
This mathematical proof/derivation style is used to explicitly encourage understanding (and double-checking) of the rational steps taken in the development of microformats 2. Reasons are documented, sometimes along with alternatives considered (and reasons for rejection of those alternatives).&lt;br /&gt;
&lt;br /&gt;
When the microformats 2 brainstorm has evolved sufficiently to demonstrate some degree of stability, usability, and implementability, it will be rewritten in a more declarative specification style, and this narrative/derivation will be archived to a background development page for historical purposes.&lt;br /&gt;
&lt;br /&gt;
— [[User:Tantek|Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
2004: In early February microformats were introduced as a concept at eTech, and in September [[hCard]] and [[hCalendar]] were proposed at FOO Camp.&lt;br /&gt;
&lt;br /&gt;
2010:&lt;br /&gt;
* 34% of webdevs use microformats ([http://www.webdirections.org/sotw10/markup/#semantics 2010 State of Web Development survey])&lt;br /&gt;
* 1.88 billion hCards (per [[Yahoo]] SearchMonkey)&lt;br /&gt;
* 36 million hCalendar events (ibid)&lt;br /&gt;
&lt;br /&gt;
* XFN -&amp;gt; Social Graph API -&amp;gt; Web as Social Network / Address Book&lt;br /&gt;
&lt;br /&gt;
== Addressing Issues ==&lt;br /&gt;
=== AUTHORS and PUBLISHING ===&lt;br /&gt;
Authors and publishers are perhaps the most important constituency in the microformats community. There are more of them than there are developers, programmers, parsers, etc. and they're the ones that solved the chicken-egg problem by publishing microformats even before tools were available for consuming them.&lt;br /&gt;
&lt;br /&gt;
Therefore we must first address author/publisher general issues with microformats.&lt;br /&gt;
&lt;br /&gt;
==== can we make the simplest case simpler ====&lt;br /&gt;
Issue: '''How can we make it easier for authors to publish microformats?'''&lt;br /&gt;
&lt;br /&gt;
Currently the simplest hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
    Chris Messina&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires 2 elements (nested, with perhaps at least one being pre-existing), and 2 class names.&lt;br /&gt;
&lt;br /&gt;
Web authors/designers are used to the simplicity of most HTML tags, e.g. to mark up a heading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires just 1 element.&lt;br /&gt;
&lt;br /&gt;
[http://zeldman.com/ Jeffrey Zeldman] pointed out this apparent perceived incremental complexity (2 elements vs 1) during a microformats workshop in 2009 in New York City.&lt;br /&gt;
&lt;br /&gt;
'''How can we make microformats just as easy?'''&lt;br /&gt;
&lt;br /&gt;
'''Proposal: allow root class name only.'''&lt;br /&gt;
&lt;br /&gt;
This would enable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;vcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requiring only 1 class name for the simplest case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== renaming for usability ====&lt;br /&gt;
Otherwise known as, choosing one form of consistency over another.&lt;br /&gt;
&lt;br /&gt;
'''Can we do even better?'''&lt;br /&gt;
&lt;br /&gt;
One of the most common questions asked about hCard is:&lt;br /&gt;
&lt;br /&gt;
[[hcard-faq#Why_does_hCard_use_vcard_as_the_root_class_name|Why does hCard use vcard as the root class name?]]&lt;br /&gt;
&lt;br /&gt;
This slight inconsistency between the name of the format and the name of the root class name consistently causes confusion in a large percentage of newcomers to microformats.&lt;br /&gt;
* See [[issues#hcard-vs-vcard-name]] for details/links.&lt;br /&gt;
&lt;br /&gt;
Though in microformats we believe very strongly in the [[principle]] of [[reuse]], we have to admit that in this case experience/evidence has shown that this may be a case where we re-used something too far beyond it's original meaning. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: use root class name &amp;quot;hcard&amp;quot; instead of &amp;quot;vcard&amp;quot; for future hCards.'''&lt;br /&gt;
&lt;br /&gt;
This would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
making the simple case even simpler:&lt;br /&gt;
&lt;br /&gt;
Just 1 additional class name, named the same as the format you're adding.  Think hCard, markup class=&amp;quot;hcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At a minimum for compatibility we should document that parsers should accept &amp;quot;hcard&amp;quot; as an alternative to &amp;quot;vcard&amp;quot; as the root class name for hCard 1.0, and similarly for hCalendar 1.0: &amp;quot;hcalendar&amp;quot; in addition to &amp;quot;vcalendar&amp;quot;, &amp;quot;hevent&amp;quot; in addition to &amp;quot;vevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, for [[microformats-2]] we are going to distinguish root class names further by using an &amp;quot;h-&amp;quot; prefix (e.g. &amp;quot;h-card&amp;quot;). Read on to understand why.&lt;br /&gt;
&lt;br /&gt;
==== simplifying to only needing one element ====&lt;br /&gt;
It's very important for the simple case to be as simple as possible, to enable the maximum number of people to get started with minimum effort. (The idea of using a single class name for a microformat was proposed by Ryan Cannon in 2006 specifically [[hcard-implied|for hCard]], and rediscovered by [[User:Tantek|Tantek]] in 2010 and subsequently generalized to all microformats.)&lt;br /&gt;
&lt;br /&gt;
From there on, it's ok to require incremental effort for incremental return.&lt;br /&gt;
&lt;br /&gt;
E.g. to add any additional information about a person, add explicit property names.&lt;br /&gt;
&lt;br /&gt;
'''How does this simple root-only case work?'''&lt;br /&gt;
&lt;br /&gt;
* root class name reflects name of the microformat&lt;br /&gt;
* every microformat must require at most 1 property (preferably 0)&lt;br /&gt;
** admit that requiring a field in an application just results in noise (the 90210 problem - apps which require zip code get lots of false 90210 entries), and specify that any application use cases which appear to &amp;quot;require&amp;quot; specific properties must instead define how to imply sensible defaults for them.&lt;br /&gt;
* when only a root class name is specified, imply the entire text contents of the element as the value of the primary property of the microformat. e.g.&lt;br /&gt;
** &amp;quot;hcard&amp;quot; implies &amp;quot;fn&amp;quot;&lt;br /&gt;
** hcalendar event - &amp;quot;hevent&amp;quot; - implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hreview&amp;quot; implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hentry&amp;quot; implies &amp;quot;entry-summary&amp;quot; (perhaps collapse into &amp;quot;summary&amp;quot; - in practice they're not sufficiently semantically distinct to require separate property names)&lt;br /&gt;
** '''OR''' instead of making the one implied property be vocabulary specific, introduce a new generic (applicable to all vocabularies) 'p-name' property (subsuming hCard's 'fn'). See [[microformats-2-brainstorming#further_simplifications|microformats 2 brainstorming: further simplifications]] for latest thoughts along these lines, including the following specific mark-up implied generic properties across all microformats (based on existing published markup use-cases)&lt;br /&gt;
*** 'p-name'&lt;br /&gt;
*** 'u-url'&lt;br /&gt;
*** 'u-photo'&lt;br /&gt;
&lt;br /&gt;
==== flat sets of properties ====&lt;br /&gt;
'''What more can we simplify about microformats?'''&lt;br /&gt;
&lt;br /&gt;
Numerous individuals have provided the feedback that whenever there is more than one level of hierarchy in a microformat, many (most?) developers get confused - in particular Kavi Goel of Google / Rich Snippets provided this feedback at a microformats dinner.  Thus depending on multiple levels of hierarchy is likely resulting in a loss of authorability, perhaps even accuracy as confusion undoubtedly leads to more errors. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: simplify all microformats to flat sets of properties. '''&lt;br /&gt;
&lt;br /&gt;
What this means:&lt;br /&gt;
* all microformats are simply an object with a set of properties with values.&lt;br /&gt;
* no more subproperties- drop the notion of subproperties.&lt;br /&gt;
* use composition of multiple microformats for any further hierarchy, e.g. the &amp;quot;location&amp;quot; of an hCalendar event can be an hCard, or the &amp;quot;agent&amp;quot; of one hCard can be another hCard.&lt;br /&gt;
&lt;br /&gt;
For example for hCard this would mean the following specific changes to keep relevant functionality:&lt;br /&gt;
* drop &amp;quot;n&amp;quot;, promote all &amp;quot;n&amp;quot; subproperties to full properties&lt;br /&gt;
** given-name, family-name, additional-name, honorific-prefix, honorific-suffix&lt;br /&gt;
* treat &amp;quot;geo&amp;quot; as a nested microformat&lt;br /&gt;
* treat &amp;quot;adr&amp;quot; as a nested microformat (what to do about adr's &amp;quot;type&amp;quot;?)&lt;br /&gt;
* treat &amp;quot;org&amp;quot; as a flat string and drop &amp;quot;organization-name&amp;quot; and &amp;quot;organization-unit&amp;quot; (in practice rarely used, also not revealed or ignored in contact management user interfaces - e.g. Address Book)&lt;br /&gt;
&lt;br /&gt;
Example: add a middle initial to the previous example Chris Messina's name, and markup each name component:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
# use of an explicit span with &amp;quot;fn&amp;quot; to markup his entire formatted name&lt;br /&gt;
# use of the abbr element to explicitly indicate the semantic that &amp;quot;R.&amp;quot; is merely an abbreviation for his additional-name.&lt;br /&gt;
&lt;br /&gt;
==== distinguishing properties from other classes ====&lt;br /&gt;
Current microformats properties re-use generic terms like &amp;quot;summary&amp;quot;, &amp;quot;photo&amp;quot;, &amp;quot;updated&amp;quot; both for ease of use and understanding.&lt;br /&gt;
&lt;br /&gt;
However, through longer term experience, we've seen sites that accidentally drop (or break) their microformats support (e.g. Upcoming.org, Facebook) because web authors sometimes rewrite all their class names, and either are unaware that microformats were in the page, or couldn't easily distinguish microformats property class names from other site-specific class names.&lt;br /&gt;
&lt;br /&gt;
This issue has been reported by a number of web authors.&lt;br /&gt;
* See: [[issues#class-collisions]]&lt;br /&gt;
&lt;br /&gt;
Thus microformats 2 uses ''prefixes'' for property class names, e.g.:&lt;br /&gt;
* '''p-summary''' instead of ''summary''&lt;br /&gt;
* '''u-photo''' instead of ''photo'' &lt;br /&gt;
* '''dt-updated''' instead of ''updated''&lt;br /&gt;
&lt;br /&gt;
Such prefixing of all microformats class names was first suggested by Scott Isaacs of Microsoft to Tantek on a visit to Microsoft sometime in 2006/2007, but specifically aimed at making microformats easier to parse. At the time the suggestion was rejected since microformats were focused on web authors rather than parsers.&lt;br /&gt;
&lt;br /&gt;
However, since experience has shown that distinguishing property class names is an issue for '''both web authors and parser developers''', this is a key change that microformats 2 is adopting. See the next section for details.&lt;br /&gt;
&lt;br /&gt;
=== COMMUNITY and TOOLS ===&lt;br /&gt;
The second most important constituency in the microformats community are the developers, programmers, tool-makers.&lt;br /&gt;
&lt;br /&gt;
A non-trivial number of them have been sufficiently frustrated with some general issues with microformats that they've done the significant extra work to support very different and less friendly alternatives (microdata, RDFa). Based on this real-world data (market behavior), it behooves us to address these general issues with microformats for this constituency.&lt;br /&gt;
&lt;br /&gt;
==== existing microformats parsing requirements ====&lt;br /&gt;
COMMUNITY and TOOLS (that) USE MICROFORMATS &lt;br /&gt;
* parser / parsing&lt;br /&gt;
* structured&lt;br /&gt;
* getting the data out&lt;br /&gt;
* json - 1:1 mapping&lt;br /&gt;
&lt;br /&gt;
[[parsing]] microformats currently requires&lt;br /&gt;
# a list of root class names of each microformat to be parsed&lt;br /&gt;
# a list of properties for each specific microformats, along with knowledge of the type of each property in order to parse their data from potentially different portions of the HTML markup&lt;br /&gt;
# some number of format-specific specific rules (markup/content optimizations)&lt;br /&gt;
&lt;br /&gt;
This has meant that whenever a new microformat is drafted/specificied/adopted, parsers need to updated to handle it correctly, at a minimum to parse them when inside other microformats and avoid errantly implying properties from one to the other (containment, [[mfo]] problem).&lt;br /&gt;
&lt;br /&gt;
==== naming conventions for generic parsing ====&lt;br /&gt;
I think there is a fairly simple solution to #1 and #2 from the above list, and we can make progress towards minimizing #3.  In short:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: a set of naming conventions for microformat root class names and properties that make it obvious when:'''&lt;br /&gt;
* a class name represents a microformat root class name&lt;br /&gt;
* a class name represents a microformat property name&lt;br /&gt;
* a class name represents a microformat property that needs special parsing (specific type of property).&lt;br /&gt;
&lt;br /&gt;
In particular - derived from the real world examples of existing proven microformats (rather than any abstraction of what a schema should have)&lt;br /&gt;
* '''&amp;quot;h-*&amp;quot; for root class names''', e.g. &amp;quot;h-card&amp;quot;, &amp;quot;h-event&amp;quot;, &amp;quot;h-entry&amp;quot;&lt;br /&gt;
** The 'h-' prefix is based on the existing microformats naming pattern of starting with 'h'.&lt;br /&gt;
* '''&amp;quot;p-*&amp;quot; for simple (text) properties''', e.g. &amp;quot;p-fn&amp;quot;, &amp;quot;p-summary&amp;quot;&lt;br /&gt;
** vocabulary generic parsing, element text in general, treat certain HTML element/attribute combination as special and use those first, e.g. img/alt, abbr/title.&lt;br /&gt;
** The 'p-' prefix is based on the word &amp;quot;property&amp;quot; starting with 'p'.&lt;br /&gt;
* '''&amp;quot;u-*&amp;quot; for URL properties''', e.g. &amp;quot;u-url&amp;quot;, &amp;quot;u-photo&amp;quot;, &amp;quot;u-logo&amp;quot;&lt;br /&gt;
** special parsing required: prefer a/href, img/src, object/data etc. attributes to element contents.&lt;br /&gt;
** The 'u-' prefix is based on URL/URI starting with the letter 'u', which is the type of most of these related properties.&lt;br /&gt;
* '''&amp;quot;dt-*&amp;quot; for datetime properties''', e.g. &amp;quot;dt-start&amp;quot;, &amp;quot;dt-end&amp;quot;, &amp;quot;dt-bday&amp;quot;&lt;br /&gt;
** special parsing required: [[value-class-pattern]], in particular separate date time value parsing for better human readabillity / DRY balance.&lt;br /&gt;
** The 'dt-' prefix is based on &amp;quot;date time&amp;quot; having the initials &amp;quot;dt&amp;quot; and the preponderance of existing date time properties starting with &amp;quot;dt&amp;quot;, e.g. dtstart, dtend, dtstamp, dtreviewed.&lt;br /&gt;
* '''&amp;quot;e-*&amp;quot; for element tree properties''' where the entire contained element hierarchy is the value, e.g. &amp;quot;e-content&amp;quot; (formerly &amp;quot;entry-content&amp;quot;) for [[hAtom]]. The 'e-' prefix can also be mnemonically remembered as &amp;quot;element tree&amp;quot;, &amp;quot;embedded markup&amp;quot;, or &amp;quot;encapsulated markup&amp;quot;.&lt;br /&gt;
** special parsing required: follow the [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments HTML spec: Serializing HTML Fragments algorithm] to create a serialization.&lt;br /&gt;
&lt;br /&gt;
This provides a simpler transition/education story for existing microformats authors/publishers: &lt;br /&gt;
* &amp;quot;h*&amp;quot; to &amp;quot;h-*&amp;quot;, &amp;quot;dt*&amp;quot; to &amp;quot;dt-*&amp;quot;, url-like properties to &amp;quot;u-*&amp;quot;, entire embedded markup to &amp;quot;e-*&amp;quot;, and &amp;quot;p-*&amp;quot; for all &amp;quot;plain text&amp;quot; properties.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-prefixes]] for further thoughts and discussions on these and other class prefixes.&lt;br /&gt;
&lt;br /&gt;
Example: taking that simple heading hCard example forward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As part of microformats 2 we would immediately define root class names and property names for all existing microformats and drafts consistent with this naming convention, and require support thereof from all new implementations, as well as strongly encouraging existing implementations to adopt the simplified microformats 2 syntax and mechanism. Question: which microformats deserve explicit backward compatibility?&lt;br /&gt;
&lt;br /&gt;
As a community we would continue to use the microformats [[process]] both for researching and determining the need for new microformats, and for naming new microformat property names for maximum re-use and interoperability of a shared vocabulary.&lt;br /&gt;
&lt;br /&gt;
If it turns out we need a new property type in the future, we can use one of the remaining single-letter-prefixes to add it to microformats 2. This would require updating of parsers of course, but in practice the number of different types of properties has grown very slowly, and we know from other schema/programming languages that there's always some small limited number of scalar/atomic property types that you need, and using those you can create compound types/objects that represent richer / more complicated types of data. See [[microformats-2-prefixes]] for documentation of existing single-letter class name prefixes in practice.&lt;br /&gt;
&lt;br /&gt;
=== ADVANTAGES ===&lt;br /&gt;
This has numerous advantages:&lt;br /&gt;
* '''better maintainability''' - much more obvious to web authors/designers/publishers which class names are for/from microformats.&lt;br /&gt;
* '''no chance of collision''' - for all practical purposes with existing class names and thus avoiding any need to add more complex CSS style rules to prevent unintended styling effects.&lt;br /&gt;
* '''simpler parsing''' - parsers can now do a simple stream-parse (or in-order DOM tree walk) and parse out '''all''' microformat objects, properties, and values, without having to know anything about any specific microformats.&lt;br /&gt;
* '''separation of syntax and vocabulary''' - by abstracting microformats 2 syntax independent of any vocabulary, it allows and encourages development of shared vocabularies  that can work in alternative syntaxes.&lt;br /&gt;
&lt;br /&gt;
More examples: here is that same heading example with name components:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;p-fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with a hyperlink to Chris's URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== COMPATIBILITY ===&lt;br /&gt;
&lt;br /&gt;
microformats 2 is backwards compatible in that in permits content authors to markup with both old and new class names for compatibility with old tools.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Chris Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a microformats 2 parser would see the class name &amp;quot;h-card&amp;quot; and imply the one required property from the contents, while a microformats 1.0 parser would find the class name &amp;quot;vcard&amp;quot; and then look for the class name &amp;quot;fn&amp;quot;. no data duplication is required. this is a very important continuing application of the &amp;lt;abbr title=&amp;quot;don't repeat yourself&amp;quot;&amp;gt;DRY&amp;lt;/abbr&amp;gt; [[principle]].&lt;br /&gt;
&lt;br /&gt;
And the above hyperlinked example with both sets of class names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url n fn url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VENDOR EXTENSIONS ===&lt;br /&gt;
&lt;br /&gt;
(this section was only discussed verbally and not written up during discussions - capturing here as it is topical)&lt;br /&gt;
&lt;br /&gt;
Proprietary extensions to formats have typically been shortlived experimental failures with one big recent exception.&lt;br /&gt;
&lt;br /&gt;
Proprietary or experimental CSS3 property implementations have been very successful.&lt;br /&gt;
&lt;br /&gt;
There has been much use of border radius properties and animations/transitions which use CSS properties with vendor-specific prefixes like:&lt;br /&gt;
&lt;br /&gt;
* -moz-border-radius&lt;br /&gt;
* -webkit-border-radius&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
Note that these are merely string '''prefixes''', not bound to any URL, and thus not namespaces in any practical sense of the word.  This is quite an important distinction, as avoiding the need to bind to a URL has made them easier to support and use.&lt;br /&gt;
&lt;br /&gt;
This use of vendor specific CSS properties has in recent years allowed the larger web design/development/implementor communities to experiment and iterate on new CSS features while the features were being developed and standardized.&lt;br /&gt;
&lt;br /&gt;
The benefits have been two-fold:&lt;br /&gt;
* designers have been able to make more attractive sites sooner (at least in some browsers)&lt;br /&gt;
* features have been market / real-world tested before being fully standardized, thus resulting in better features&lt;br /&gt;
&lt;br /&gt;
Implementers have used/introduced &amp;quot;x-&amp;quot; prefixes for IETF MIME/content-types for experimental content-types, MIME parameter extensions, and HTTP header extensions, per RFC 2045 Section 6.3, RFC 3798 section 3.3, and [https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_header_fields#Common_non-standard_headers Wikipedia: HTTP header fields - non-standard headers] (could use RFC reference instead) respectively, like:&lt;br /&gt;
&lt;br /&gt;
* application/x-latex (per [https://secure.wikimedia.org/wikipedia/en/wiki/Internet_media_type#Type_x Wikipedia Internet media type: Type x])&lt;br /&gt;
* x-spam-score (in email headers)&lt;br /&gt;
* X-Pingback (per [http://en.wikipedia.org/wiki/Pingback Wikipedia:Pingback])&lt;br /&gt;
&lt;br /&gt;
Some standard types started as experimental &amp;quot;x-&amp;quot; types, thus demonstrating this experiment first, standardize later approach has worked for at least some cases:&lt;br /&gt;
&lt;br /&gt;
* image/x-png (standardized as image/png, both per [http://tools.ietf.org/html/rfc2083 RFC2083])&lt;br /&gt;
&lt;br /&gt;
There have been times when specific sites have wanted to extend microformats beyond what the set of properties in the microformat, and currently lack any '''experimental''' way to do so - to try and see if a feature (or even a whole format) is interesting in the real world before bothering to pursue researching and walking it through the microformats process.  Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal:'''&lt;br /&gt;
* '*-x-' + '-' + meaningful name for root and property class names&lt;br /&gt;
** where &amp;quot;*&amp;quot; indicates the single-character-prefix as defined above&lt;br /&gt;
** where &amp;quot;x&amp;quot; indicates a literal 'x' for an experimental extension OR&lt;br /&gt;
** OR &amp;quot;x&amp;quot; indicates a vendor prefix (more than one character, e.g. like CSS vendor extension abbreviations, or some stock symbols, avoiding first words/phrases/abbreviations of microformats properties like dt-)&lt;br /&gt;
** e.g.&lt;br /&gt;
** &amp;quot;h-bigco-one-ring&amp;quot; - a hypothetical &amp;quot;bigco&amp;quot; vendor-specific &amp;quot;one-ring&amp;quot; microformat root class name.&lt;br /&gt;
** &amp;quot;p-goog-preptime&amp;quot; - to represent [http://www.google.com/support/webmasters/bin/answer.py?answer=173379 Google's &amp;quot;preptime&amp;quot; property extension] to [[hRecipe]] (aside: &amp;quot;duration&amp;quot; may be another property type to consider separate from &amp;quot;datetime&amp;quot; as it may be subject to different parsing rules.)&lt;br /&gt;
** &amp;quot;p-x-prep-time&amp;quot; - a possible experimental property name to be added to hRecipe upon consideration/documentation of real-world usage/uptake.&lt;br /&gt;
&lt;br /&gt;
Background - this proposal is a composition of the following (at least somewhat) successful vendor extension syntaxes&lt;br /&gt;
* [http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords CSS 2.1 4.1.2.1 Vendor-specific extensions]&lt;br /&gt;
* IETF MIME/content-type &amp;quot;x-*&amp;quot; extensions per RFC 2045 Section 6.3. [http://en.wikipedia.org/wiki/Internet_media_type]&lt;br /&gt;
* IETF MIME experimental fields (e.g. x-spam-score)&lt;br /&gt;
* HTTP header extensions (e.g. x-pingback)&lt;br /&gt;
* note also [http://www.mnot.net/blog/2009/02/18/x- some critical thoughts from mnot]&lt;br /&gt;
&lt;br /&gt;
=== USERS ===&lt;br /&gt;
Need more tools and interfaces that:&lt;br /&gt;
* publish&lt;br /&gt;
* copy/paste&lt;br /&gt;
* right-click on a microformat&lt;br /&gt;
* share&lt;br /&gt;
* search results&lt;br /&gt;
&lt;br /&gt;
discussed some existing like: [[H2VX]] converts hCard to vCard, hCalendar to iCalendar&lt;br /&gt;
&lt;br /&gt;
how would we re-implement Live Clipboard today, making it easier for publishers and developers?&lt;br /&gt;
&lt;br /&gt;
=== SEE ALSO ===&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-brainstorming]] - moving more experimental / undeveloped / and rejected thoughts ideas here to simplify/progress *this* page further.&lt;br /&gt;
* [[microformats2-experimental-properties]] - listing experimental (-x- prefixed) properties and their use&lt;br /&gt;
* [[microformats2-prefixes]]&lt;br /&gt;
* [[microformats2-faq]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* 2010-05-02 [[events/2010-05-02-microformats-2-0|microformats 2.0 discussion session at FOO East]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=microformats2&amp;diff=66359</id>
		<title>microformats2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=microformats2&amp;diff=66359"/>
		<updated>2017-05-19T14:31:44Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Implementations */  move ruby to production parser&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
Welcome to the microformats2 home page.&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
Microformats2 is the simplest way to markup structured information in HTML. Microformats2 improves ease of use and implementation for &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; authors (publishers) and developers ([[microformats2-parsing|parser]] implementers).&lt;br /&gt;
&lt;br /&gt;
Microformats2 replaces and supersedes both classic microformats, as well as incorporates lessons learned from [[microdata]] and [[RDFa]].&lt;br /&gt;
&lt;br /&gt;
=== simple microformats 2 examples ===&lt;br /&gt;
Here are a few simple microformats2 examples along with canonical [[JSON]].&lt;br /&gt;
&lt;br /&gt;
==== person example ====&lt;br /&gt;
* Simple person reference:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Frances Berriman&amp;quot;] &lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person ====&lt;br /&gt;
* Simple hyperlinked person reference&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Ben Ward&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://benward.me&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== hyperlinked person image ====&lt;br /&gt;
* Simple hyperlinked person image&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://rohit.khare.org/&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Rohit Khare&amp;quot;&lt;br /&gt;
      src=&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Rohit Khare&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://rohit.khare.org/&amp;quot;],&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://s3.amazonaws.com/twitter_production/profile_images/53307499/180px-Rohit-sq_bigger.jpg&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional simple cases details in [[microformats-2-implied-properties]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== detailed person example ====&lt;br /&gt;
* More detailed person&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; alt=&amp;quot;photo of Mitchell&amp;quot;&lt;br /&gt;
       src=&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt;&lt;br /&gt;
 (&amp;lt;a class=&amp;quot;u-url&amp;quot; &lt;br /&gt;
     href=&amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
    &amp;gt;@MitchellBaker&amp;lt;/a&amp;gt;)&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-note&amp;quot;&amp;gt;&lt;br /&gt;
    Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Strategy&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-category&amp;quot;&amp;gt;Leadership&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;photo&amp;quot;: [&amp;quot;https://webfwd.org/content/about-experts/300.mitchellbaker/mentor_mbaker.jpg&amp;quot;],&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&lt;br /&gt;
        &amp;quot;http://blog.lizardwrangler.com/&amp;quot;,&lt;br /&gt;
        &amp;quot;https://twitter.com/MitchellBaker&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
      &amp;quot;note&amp;quot;: [&amp;quot;Mitchell is responsible for setting the direction and scope of the Mozilla Foundation and its activities.&amp;quot;],&lt;br /&gt;
      &amp;quot;category&amp;quot;: [&lt;br /&gt;
        &amp;quot;Strategy&amp;quot;,&lt;br /&gt;
        &amp;quot;Leadership&amp;quot;&lt;br /&gt;
      ]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Notes: &lt;br /&gt;
# The JSON &amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt; uses the full microformat root class name (e.g. &amp;lt;code&amp;gt;&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt;) for consistent identification.&lt;br /&gt;
# all properties are optional and syntactically plural with parsed values provided in document order; particular microformats (and applications there-of) may apply specific/singular semantics to first value of a property.&lt;br /&gt;
&lt;br /&gt;
=== microformats2 design ===&lt;br /&gt;
&lt;br /&gt;
microformats2 has the following key design aspects:&lt;br /&gt;
&lt;br /&gt;
; Prefixes for class names&lt;br /&gt;
: All microformats class names use prefixes. Prefixes are '''syntax independent from vocabularies''', which are developed separately.&lt;br /&gt;
* &amp;lt;code&amp;gt;h-*&amp;lt;/code&amp;gt; for root class names (e.g. &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; for plain text properties (e.g. &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; for URL properties (e.g. &amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;dt-*&amp;lt;/code&amp;gt; for date/time properties (e.g. &amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; for embedded markup properties (e.g. &amp;lt;code&amp;gt;e-note&amp;lt;/code&amp;gt;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[microformats2#naming_conventions_for_generic_parsing|prefix naming conventions]] for more details.&lt;br /&gt;
&lt;br /&gt;
; Flat sets of optional properties&lt;br /&gt;
: All microformats consist of a root, and a collection of properties. Hierarchical data is represented with nested microformats, typically as property values themselves. Properties are all optional and potentially multivalued (applications needing a singular semantic may use first instance).&lt;br /&gt;
&lt;br /&gt;
; Single class markup for common uses&lt;br /&gt;
: Common simple markup patterns require only a single microformat root class name, which parsers use to find a few generic properties: &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;. The simple microformats2 examples above demonstrate these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Parsing each prefix (including generating canonical JSON) is detailed step-by-step in:&lt;br /&gt;
* The '''[[microformats2-parsing|microformats2 parsing specification]]'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Most properties are specified and used with a single specific prefix (or occasionally two or three) that is self-evident from context. However, any parsing prefix can be used with any property, especially if you find a good reason to do so!&lt;br /&gt;
&lt;br /&gt;
== v2 vocabularies ==&lt;br /&gt;
Status: '''&amp;lt;span id=&amp;quot;draft_v2_vocabularies&amp;quot;&amp;gt;draft&amp;lt;/span&amp;gt;'''. Please review and provide feedback in [[IRC]].&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-item]]&lt;br /&gt;
* [[h-listing]]&lt;br /&gt;
* [[h-product]]&lt;br /&gt;
* [[h-recipe]]&lt;br /&gt;
* [[h-resume]]&lt;br /&gt;
* [[h-review]]&lt;br /&gt;
* [[h-review-aggregate]]&lt;br /&gt;
&lt;br /&gt;
See below for vocabulary summaries.&lt;br /&gt;
&lt;br /&gt;
=== h-adr ===&lt;br /&gt;
{{main|h-adr}}&lt;br /&gt;
&lt;br /&gt;
The '''h-adr''' microformat is for marking up structured locations such as addresses, physical and/or postal. This is an update to [[adr]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-adr&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL) - new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;adr&amp;quot;&amp;gt;adr&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;post-office-box&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-card ===&lt;br /&gt;
{{main|h-card}}&lt;br /&gt;
&lt;br /&gt;
The '''h-card''' microformat is for marking up people and organizations. This is an update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-card&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''' with a RFC 5870 geo: URL, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - previously 'title' in hCard, disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC 4770, new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;''' new in [[vCard4]] ([[RFC6350]])&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved properties: (properties not used much (if at all) in practice)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Note: use of 'value' within 'tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== h-entry ===&lt;br /&gt;
{{main|h-entry}}&lt;br /&gt;
&lt;br /&gt;
The '''h-entry''' microformat is for marking up syndicatable content such as blog posts, notes, articles, comments, photos and similar. This is an update to [[hAtom]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-entry&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' (was p-entry-title, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' (was p-entry-summary, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' (was e-entry-content, see issues)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hAtom]]. &lt;br /&gt;
&lt;br /&gt;
Brainstorming:&lt;br /&gt;
&lt;br /&gt;
The following properties are proposed additions to h-entry above and beyond what hAtom (or Atom) provides, based on various existing link preview markup conventions:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - consider special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - for links to other posts that this post is a reply to (comment regarding, etc.)&lt;br /&gt;
&lt;br /&gt;
Backward compatibility: &lt;br /&gt;
&lt;br /&gt;
(*)hAtom-specific implementations that perform custom display or translation (e.g. to Atom XML) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For hAtom backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-entry&amp;quot; is found, don't look for a &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;h-entry-faq&amp;quot;&amp;gt;FAQ:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
*** '''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 &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
* ...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolved Issues:&lt;br /&gt;
* 2012-245 Resolved. See [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-120 2012-243 IRC discussion/consensus] for:&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;p-entry-summary&amp;lt;/code&amp;gt;'''. The historical semantic of &amp;quot;entry-summary&amp;quot; is not different from &amp;quot;summary&amp;quot; in any significant (or discernible way). Collapsing the two will simplify the overall microformats2 vocabularies further. In microformats2, entry-summary is no more.&lt;br /&gt;
** Use '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;e-entry-content&amp;lt;/code&amp;gt;'''. Same point and advantage. In microformats2, entry-content is no more.&lt;br /&gt;
** '''drop &amp;lt;code&amp;gt;p-entry-title&amp;lt;/code&amp;gt;'''. Unnecessary and subsumed by &amp;quot;p-name&amp;quot;. Would consider move to backward compat only if cases are presented - known publishing uses are expected to be updated shortly.&lt;br /&gt;
&lt;br /&gt;
=== h-event ===&lt;br /&gt;
{{main|h-event}}&lt;br /&gt;
&lt;br /&gt;
The '''h-event''' microformat is for marking up events. This is an update to [[hCalendar]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-event&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''(*)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
This is an update to [[hCalendar]]. &lt;br /&gt;
&lt;br /&gt;
(*)hCalendar-specific implementations that perform custom display or translation (e.g. to iCalendar .ics) {{should}} prefer &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;, and use &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt; value(s) as a fallback if there is no &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-event&amp;quot; is found, don't look for a &amp;quot;vevent&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;vevent&amp;quot;&amp;gt;vevent&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtstart&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-start&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;dtend&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-end&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;location&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, and compat root &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== h-geo ===&lt;br /&gt;
{{main|h-geo}}&lt;br /&gt;
&lt;br /&gt;
The '''h-geo''' microformat is for marking up WGS84 geophysical coordinates. This is an update to [[geo]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-geo&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - new in [[vCard4]] ([[RFC6350]] from RFC 5870)&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-geo&amp;quot; is found, don't look for an &amp;quot;geo&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;geo&amp;quot;&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== h-item ===&lt;br /&gt;
{{main|h-item}}&lt;br /&gt;
&lt;br /&gt;
The '''h-item''' microformat is for marking up the item of an [[h-review]] or [[h-product]]. This is an update to part of [[hReview]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-item&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Note: in practice, due to the microformats2 implied property rules, it is expected that most uses of &amp;quot;h-item&amp;quot; won't require any explicit properties at all (since microformats2 parsers will infer name, photo, and url properties from the structure of the element with &amp;quot;h-item&amp;quot; and its contained content/elements if any).&lt;br /&gt;
&lt;br /&gt;
=== h-product ===&lt;br /&gt;
{{main|h-product}}&lt;br /&gt;
&lt;br /&gt;
The '''h-product''' microformat is for marking up products. This is an update to [[hProduct]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-product&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-product&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - photo of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-brand&amp;lt;/code&amp;gt;''' - manufacturer, can also be a nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the product&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-identifier&amp;lt;/code&amp;gt;''' - includes type (e.g. mpn, upc, isbn, issn, sn, vin, sku etc.) and value.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-review&amp;lt;/code&amp;gt;''' - a review of the product, can also be a nested &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-price&amp;lt;/code&amp;gt;''' - retail price of the product&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-product&amp;quot; is found, don't look for an &amp;quot;hproduct&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hproduct&amp;quot;&amp;gt;hproduct&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;brand&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;identifier&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;review&amp;lt;/code&amp;gt; - including compat root class &amp;lt;code&amp;gt;hreview&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;price&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hProduct]] has at least one experimental property which has real world adoption due to [[Google]] and [[Bing]] search support of hProduct. Currently this is: '''price'''&lt;br /&gt;
&lt;br /&gt;
=== h-recipe ===&lt;br /&gt;
{{main|h-recipe}}&lt;br /&gt;
&lt;br /&gt;
The '''h-recipe''' microformat is for marking up food recipes. This is an update to [[hRecipe]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-recipe&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-recipe&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - the name of the recipe&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-ingredient&amp;lt;/code&amp;gt;''' - describes one or more ingredients used in the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-yield&amp;lt;/code&amp;gt;''' - Specifies the quantity produced by the recipe, like how many persons it satisfyies &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-instructions&amp;lt;/code&amp;gt;''' - the method of the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-duration&amp;lt;/code&amp;gt;''' - the time it takes to prepare the meal described by the recipe.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - an accompanying image&lt;br /&gt;
&lt;br /&gt;
Experimental properties with wide adoption&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''  - provides a short summary or introduction &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - the person who wrote the recipe with &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - the date the recipe was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nutrition&amp;lt;/code&amp;gt;''' - nutritional information like calories, fat, dietary fiber etc.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-recipe&amp;quot; is found, don't look for an &amp;quot;hrecipe&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hrecipe&amp;quot;&amp;gt;hrecipe&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;ingredient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yield&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;instructions&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;duration&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;  - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nutrition&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: [[hRecipe]] has a number of experimental properties which have real world adoption due to [[Google]] recipe search support of hRecipe. These are: summary, author, published and nutrition&lt;br /&gt;
&lt;br /&gt;
=== h-resume ===&lt;br /&gt;
{{main|h-resume}}&lt;br /&gt;
&lt;br /&gt;
The '''h-resume''' microformat is for marking up resumes. This is an update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-resume&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - overview of qualifications and objectives&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-contact&amp;lt;/code&amp;gt;''' - current contact info in an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-education&amp;lt;/code&amp;gt;''' - an education &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the school, location.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-experience&amp;lt;/code&amp;gt;''' - a job or other professional experience &amp;lt;code&amp;gt;h-calendar&amp;lt;/code&amp;gt; event, years, nested &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; of the organization, location, job-title.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-skill&amp;lt;/code&amp;gt;''' - a skill or ability, optionally including level and/or duration of experience&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-affiliation&amp;lt;/code&amp;gt;''' - an affiliation with an &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; organization&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-resume&amp;quot; is found, don't look for an &amp;quot;hresume&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hresume&amp;quot;&amp;gt;hresume&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;contact&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;education&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;experience&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vevent&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;affiliation&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: skill has a [[hresume-skill-brainstorm|proposed expansion into competency]] with explicit summary, rating and/or duration components. Based on existing real world adoption, we should consider an h-competency vocabulary with p-summary, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
=== h-review ===&lt;br /&gt;
{{main|h-review}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review''' microformat is for marking up reviews. This is an update to [[hReview]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt;''' - person who authored the review &lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt;''' - date time of when the review was written&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hreview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview&amp;quot;&amp;gt;hreview&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== h-review-aggregate ===&lt;br /&gt;
{{main|h-review-aggregate}}&lt;br /&gt;
&lt;br /&gt;
The '''h-review-aggregate''' microformat is for marking up aggregate reviews of a single item. This is an update to [[hreview-aggregate]]. See also [[h-item]].&lt;br /&gt;
&lt;br /&gt;
root class name: '''&amp;lt;code&amp;gt;h-review-aggregate&amp;lt;/code&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
profile/itemtype: &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-review-aggregate&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
properties:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed i.e. business or person (h-card), event (h-event), place (h-adr or h-geo), product (h-product), website, url, or other item (h-item).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating average rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-count&amp;lt;/code&amp;gt;'''  - number of reviews aggregated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-votes&amp;lt;/code&amp;gt;'''  - number of reviewers who have rated the product, thus contributing to the average rating.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - URL of the review&lt;br /&gt;
&lt;br /&gt;
For backward compatibility, microformats 2 parsers {{should}} detect the following root class name and property names. A microformats 2 parser may use existing microformats [[parsers]] to extract these properties. If an &amp;quot;h-review-aggregate&amp;quot; is found, don't look for an &amp;quot;hreview-aggregate&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
compat root class name: &amp;lt;code id=&amp;quot;hreview-aggregate&amp;quot;&amp;gt;hreview-aggregate&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;votes&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;tag&amp;quot;&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab notes ===&lt;br /&gt;
Notes: &lt;br /&gt;
* All v2 vocabularies are defined as flat lists of properties of an object/item, and thus can be used in microformats-2 syntax as shown, or in microdata items, or RDFa. The microformats-2 property parsing prefixes &amp;quot;p-&amp;quot;, &amp;quot;u-&amp;quot;, &amp;quot;dt-&amp;quot;, &amp;quot;e-&amp;quot; are omitted when using defined properties in microdata itemprop and RDFa property as those syntaxes have their own element-specific parsing rules.&lt;br /&gt;
* Profile URLs are provided for use with the HTML4 &amp;lt;code&amp;gt;profile&amp;lt;/code&amp;gt; attribute, microdata &amp;lt;code&amp;gt;itemtype&amp;lt;/code&amp;gt; attribute, and RDFa &amp;lt;code&amp;gt;vocab&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;typeof&amp;lt;/code&amp;gt; attributes (though the latter requires slicing off the trailing segment of the profile for the typeof attribute, and leaving the rest in vocab). &lt;br /&gt;
* microformats 2 properties may also be explicitly bound as URIs using [[rel-profile]], the [[html5-profile]] attribute proposal, or an HTML5 'vocab' attribute instead. If URI bound terms are important to you, please express interest on [[rel-profile]], [[html5-profile]], or contribute to an [[html5-vocab]] draft.&lt;br /&gt;
&lt;br /&gt;
=== v2 vocab to-do ===&lt;br /&gt;
To do: &lt;br /&gt;
* write a simple tutorial for creating/getting started with microformats-2 markup for new content&lt;br /&gt;
* examples in each h-* spec listed above of how to embed other microformats in them&lt;br /&gt;
* actual profile documents at &amp;lt;nowiki&amp;gt;http://microformats.org/profile/h-*&amp;lt;/nowiki&amp;gt; URLs mentioned above.&lt;br /&gt;
* Provide any necessary microdata-specific language as needed (e.g. to be comparably understandable to the [http://www.whatwg.org/specs/web-apps/current-work/#vcard sample vCard4/hCard1 microdata vocabulary]. Also provide any necessary RDFa-specific language as needed. Both preferably in a generic vocabulary-independent way.&lt;br /&gt;
* write a porting guide mapping v1 property -&amp;gt; v2 property&lt;br /&gt;
** use-case: simple search/replace in templates (e.g. in case web author doesn't remember existing microformats vocabs and where they used them).&lt;br /&gt;
** advise using *both* in existing templates (e.g. in case some CSS depends on the existing microformats)&lt;br /&gt;
* analyzie/document how well the microformats2 model and vocabularies satisfy the [http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019681.html use-cases used to design/create microdata].&lt;br /&gt;
&lt;br /&gt;
== combining microformats ==&lt;br /&gt;
Since microformats 2 uses simple flat sets of properties for each microformat, multiple microformats are combined to indicate additional structure.&lt;br /&gt;
&lt;br /&gt;
=== h-event location h-card ===&lt;br /&gt;
Events commonly have venue information with additional structure, like address information. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-event&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://indiewebcamp.com/2012&amp;quot;&amp;gt;&lt;br /&gt;
    IndieWebCamp 2012&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
  from &amp;lt;time class=&amp;quot;dt-start&amp;quot;&amp;gt;2012-06-30&amp;lt;/time&amp;gt; &lt;br /&gt;
  to &amp;lt;time class=&amp;quot;dt-end&amp;quot;&amp;gt;2012-07-01&amp;lt;/time&amp;gt; at &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-location h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-name p-org u-url&amp;quot; href=&amp;quot;http://geoloqi.com/&amp;quot;&amp;gt;&lt;br /&gt;
      Geoloqi&lt;br /&gt;
    &amp;lt;/a&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;920 SW 3rd Ave. Suite 400&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Portland&amp;lt;/span&amp;gt;, &lt;br /&gt;
    &amp;lt;abbr class=&amp;quot;p-region&amp;quot; title=&amp;quot;Oregon&amp;quot;&amp;gt;OR&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nested h-card used to structure the p-location of the h-event is represented as a structured value for &amp;quot;location&amp;quot; in the JSON, which has an additional key, &amp;quot;value&amp;quot; that represents the plain text version parsed from the p-location.&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-event&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;IndieWebCamp 2012&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://indiewebcamp.com/2012&amp;quot;],&lt;br /&gt;
      &amp;quot;start&amp;quot;: [&amp;quot;2012-06-30&amp;quot;],&lt;br /&gt;
      &amp;quot;end&amp;quot;: [&amp;quot;2012-07-01&amp;quot;],&lt;br /&gt;
      &amp;quot;location&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Geoloqi&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;org&amp;quot;: [&amp;quot;Geoloqi&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://geoloqi.com/&amp;quot;],&lt;br /&gt;
          &amp;quot;street-address&amp;quot;: [&amp;quot;920 SW 3rd Ave. Suite 400&amp;quot;],&lt;br /&gt;
          &amp;quot;locality&amp;quot;: [&amp;quot;Portland&amp;quot;],&lt;br /&gt;
          &amp;quot;region&amp;quot;: [&amp;quot;Oregon&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Questions:&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* Should the nested hCard be present also as a top-level item in the JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, how do we avoid expansion of the JSON geometrically proportional to the depth of microformat nesting? (Or do we not worry about it?)&lt;br /&gt;
* Should there be a canonical hierarchical JSON and a canonical flattened JSON? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
** My current (2012-243) leaning is no, we stick with one canonical JSON for uf2 which is hierarchical. - [[User:Tantek|Tantek]] 18:53, 30 August 2012 (UTC)&lt;br /&gt;
** If so, should the flattened JSON have references from properties to nested microformats that have been pushed to the top level per flattening? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
*** If so, what convention does/do JSON follow for such synthetic local reference identifiers? - [[User:Tantek|Tantek]] 02:02, 19 June 2012 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* The 'location' value reflects the visible text of its element, including spaces and punctuation, as well as the state abbreviation 'OR'. The 'h-card' property values are only what is marked up, and thus include structure values without extra punctuation, and the state takes the expanded form from the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute of its &amp;lt;code&amp;gt;&amp;amp;lt;abbr&amp;amp;gt;&amp;lt;/code&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
=== h-card org h-card ===&lt;br /&gt;
People often publish information general to their company rather than specific to them, in which case, they may wish to encapsulate that in separately nested microformat. E.g. here is a simple h-card example with org property:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] (Mozilla Foundation)&lt;br /&gt;
&lt;br /&gt;
with source:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;span class=&amp;quot;p-org&amp;quot;&amp;gt;Mozilla Foundation&amp;lt;/span&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes such organization affiliations are hyperlinked to the website of the organization:&lt;br /&gt;
&lt;br /&gt;
[http://blog.lizardwrangler.com Mitchell Baker] ([http://mozilla.org/ Mozilla Foundation])&lt;br /&gt;
&lt;br /&gt;
You can mark that up with a nested h-card:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
The nested 'h-card' could be marked up as an 'h-org' as well, which adds it to the nested microformat's type array, all as part of the property specified by the 'p-org'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card h-org&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;, &amp;quot;h-org&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Without a property class name like 'p-org' holding all the nested objects together, we need to introduce another array for nested children (similar to the existing DOM element notion of children) of a microformat that are not attached to a specific property:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;,&amp;quot;h-org&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since there's no property class name on the element with classes 'h-card' and 'h-org', the microformat representing that element is collected into the children array.&lt;br /&gt;
&lt;br /&gt;
Such a nested microformat implies some relationship (containment, being related), but is not as useful as if the nested microformat was a specific property of its parent.&lt;br /&gt;
&lt;br /&gt;
For this reason it's recommended that authors should not publish nested microformats without a  property class name, and instead, when nesting microformats, authors should always specify a property class name (like 'p-org') on the same element as the root class name(s) of the nested microformat(s) (like 'h-card' and/or 'h-org').&lt;br /&gt;
&lt;br /&gt;
'''FOR PARSERS ONLY:'''&lt;br /&gt;
&lt;br /&gt;
Or the nested object could be only marked up with 'h-card'. Source:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;children&amp;quot;: [{&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
      }  &lt;br /&gt;
    }]&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''TO DO: Add h-event h-card example and JSON, per real world publishing examples like [http://www.swingtime.co.uk/List/ClSouth.html Swing Time: Classes in Southern England].'''&lt;br /&gt;
&lt;br /&gt;
== authoring ==&lt;br /&gt;
=== minimal markup ===&lt;br /&gt;
The best way to use microformats-2 is with as little additional markup as possible. This keeps your code cleaner, improves its maintainability, and thus the quality and longevity of your microformats.&lt;br /&gt;
&lt;br /&gt;
One big advantage of microformats-2 over previous microformats (and others) is the ability to add one class name to an existing element to create a structured item.&lt;br /&gt;
&lt;br /&gt;
See the [[microformats-2#simple_microformats_2_examples|simple examples at the top]] for a start, e.g.&lt;br /&gt;
&lt;br /&gt;
Simple hCards work just by adding &amp;lt;code&amp;gt;class=&amp;quot;h-card&amp;quot;&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img class=&amp;quot;h-card&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
     src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img alt=&amp;quot;Tantek Çelik&amp;quot; src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Tip: Inside an open tag, put the &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; attribute &amp;lt;em&amp;gt;first&amp;lt;/em&amp;gt;, then any human text content attributes (e.g. &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt;), then URL attributes (e.g. &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt;), and lastly other attributes (e.g. &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt;). Putting the class attribute first ties it closely to the element name/tag itself, makes it more obvious, and thus more likely to be kept up to date.&lt;br /&gt;
&lt;br /&gt;
=== backward compatible ===&lt;br /&gt;
If you depend on current microformats [[implementations]], while they're being updated to support [[microformats-2]], you can include both existing microformats and microformats-2 markup.&lt;br /&gt;
&lt;br /&gt;
In short: use both sets of class names simultaneously. &lt;br /&gt;
&lt;br /&gt;
When doing so, use them on the same element, with the microformats-2 class name first, followed immediately by the existing microformats class name.&lt;br /&gt;
&lt;br /&gt;
Here are the microformats-2 hCards from above with current [[hCard]] markup as well, which may require adding a wrapping element (e.g. a &amp;lt;code&amp;gt;&amp;amp;lt;span&amp;amp;gt;&amp;lt;/code&amp;gt;) to separate the root class name element from explicit property class name elements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Frances Berriman&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name fn u-url url&amp;quot; href=&amp;quot;http://benward.me&amp;quot;&amp;gt;Ben Ward&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Sally Ride&amp;quot; &lt;br /&gt;
       src=&amp;quot;http://upload.wikimedia.org/wikipedia/commons/a/a4/Ride-s.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-url url&amp;quot; href=&amp;quot;http://tantek.com&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img class=&amp;quot;p-name fn u-photo photo&amp;quot; alt=&amp;quot;Tantek Çelik&amp;quot; &lt;br /&gt;
         src=&amp;quot;http://ttk.me/logo.jpg&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* use the microformats-2 class name first, e.g.&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;h-card vcard&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* and pair them when using an element for multiple properties, e.g.:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-url url&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;p-name fn u-photo photo&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* put microformats classes after classes for CSS (since page authors will likely interact more with their own classes for design than with microformats classes), e.g. as used on individual microformats [[events]] pages:&lt;br /&gt;
** &amp;lt;code&amp;gt;class=&amp;quot;event-page h-event vevent&amp;quot;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The prefixes (h-, p-, etc.) of microformats2 class names provide easier recognition, and when followed by the similarly named existing class name, they're more easily recognized as related and thus kept together when the markup is maintained over time.&lt;br /&gt;
&lt;br /&gt;
Related FAQ: [[microformats2-faq#when_using_both_h-card_and_vcard_which_should_be_first_and_why|When using both h-card and vcard which should be first and why?]]&lt;br /&gt;
&lt;br /&gt;
== validators ==&lt;br /&gt;
microformats2 validators:&lt;br /&gt;
&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
* https://pin13.net/mf2/&lt;br /&gt;
&lt;br /&gt;
Barnaby Walters has a hosted version of the open source php-mf2 [[parser]] where you can enter your markup into a textarea and see how it's parsed:&lt;br /&gt;
* http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
&lt;br /&gt;
See the [[validators]] page for a longer list of validators.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Please add new examples in the wild of microformats-2 to the top of this list. When it gets too big we can move it to a separate page like [[microformats-2-examples-in-wild]].&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllan marks up her blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [https://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Hakan Demir marks up his Coupon and Voucher blog posts with h-entry and h-card on [http://www.gutscheinflagge.de/ gutscheinflagge.de]&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Eugen Busoiu marks up his web profile with h-card on [http://eugenbusoiu.com/#utm_source=microformats2&amp;amp;utm_medium=h-card&amp;amp;utm_campaign=Microformats eugenbusoiu.com]]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his blog posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* Emil Björklund marks up his blog posts with h-entry and h-card ([http://thatemil.com/blog/2013/09/16/webmentioning-adactio/ example])&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Sinolandquality marks up some of their content using h-feed and h-entry on [http://www.sinolandquality.com/Blog/?page_id=3516&amp;amp;utm_content=buffere4d40&amp;amp;utm_medium=social&amp;amp;utm_source=twitter.com&amp;amp;utm_campaign=buffer sinolandquality.com]&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-event for the main event, and h-card for all the speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card, h-event, and 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, and with [[rel-author]] to his home page with canonical hCard to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, h-card, h-entry and XFN markup on his [http://waterpigs.co.uk/notes notes page].&lt;br /&gt;
** 2013-01-25 Barnaby Walters: &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/articles/experimental-markup Experimental Markup]&amp;lt;/cite&amp;gt; - describes how he's using microformats2 vocabularies: &amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-event&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-geo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;, and experimental vocabularies: &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; (embedded for update histories), [[activity-streams]] objects &amp;lt;code&amp;gt;h-as-article&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-collection&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-note&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h-as-update&amp;lt;/code&amp;gt;, as well as experimental properties: &amp;lt;code&amp;gt;u-alternate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-as-downstream-duplicate&amp;lt;/code&amp;gt; (links to POSSE copies), and &amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt; (links to content that the posts are in reply to). &lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with h-event and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats-2]] h-calendar and h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats-2]] h-calendar and h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats-2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats-2]] h-event markup with nested h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats-2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* The [http://pdx.esri.com/blog/2013/10/17/introducing-mapattack/ Esri PDX Blog] has h-entry markup on all blog posts (as of 2013-10-19), and h-product markup on [http://pdx.esri.com/projects/terraformer/ project pages]&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
{{new}} Test your microformatted web page with: &lt;br /&gt;
=== Live Textarea Input ===&lt;br /&gt;
Use any of these to enter HTML+microformats2 markup and see the parsed result!&lt;br /&gt;
* http://glennjones.net/tools/microformats/&lt;br /&gt;
* https://pin13.net/mf2/ (where it says &amp;quot;Microformats Parser&amp;quot;)&lt;br /&gt;
* https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
=== Blogging tools ===&lt;br /&gt;
* '''Storytlr''' parses the 'target' from [http://indiewebcamp.com/pingback pingbacks] for [https://github.com/storytlr/storytlr/blob/master/protected/application/public/controllers/PingbackController.php#L63 h-entry with properties and nested h-card] for information to automatically display in the [http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html comments section on a post].&lt;br /&gt;
&lt;br /&gt;
=== Converters ===&lt;br /&gt;
* '''[https://github.com/snarfed/granary granary]''' is a library and REST API that converts between silo APIs, [[ActivityStreams]], [[microformats2]], and Atom (all directions). Supported silos include Facebook, Twitter, Instagram, Google+, and Flickr. Users include [http://brid.gy/ Bridgy], [http://reader.kylewm.com/ Woodwind], and [https://facebook-atom.appspot.com/ facebook-atom] and [https://twitter-atom.appspot.com/ twitter-atom], among others.&lt;br /&gt;
&lt;br /&gt;
* '''[http://pipes.yahoo.com/pipes/pipe.info?_id=afc5568b4e8643bfb05436b1caaf91bc microformats to RSS]''' - a Yahoo! pipe that converts a URL containing an [[h-feed]] containing h-entries, into an [[RSS]] feed ([http://waterpigs.co.uk/notes/4SeNi5/ 2013-10-21 blog post announcing])&lt;br /&gt;
&lt;br /&gt;
* '''[https://xray.p3k.io XRay]''' ([https://github.com/aaronpk/XRay source code]) - Returns a normalized representation of the microformats data at a URL&lt;br /&gt;
&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Parsers, open source libraries, in alphabetical order by programming language:&lt;br /&gt;
&lt;br /&gt;
==== Parsers in production ====&lt;br /&gt;
The following parsers are of very high quality, in active development, and use on live sites on the web in production.&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* [[any23]] Apache Any23 (Anything to Triples)] a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents: http://any23.apache.org&lt;br /&gt;
&lt;br /&gt;
===== Javascript =====&lt;br /&gt;
* '''microformat-node''' Node.js microformats2 parser&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-node&lt;br /&gt;
** test suite: https://github.com/microformats/tests&lt;br /&gt;
** blog post: http://glennjones.net/2013/01/brand-new-microformats-2-parser/&lt;br /&gt;
** live: http://glennjones.net/tools/microformats/&lt;br /&gt;
** command line: https://github.com/JerrySievert/mf2&lt;br /&gt;
* '''microformat-shiv'''  - cross browser javascript microformats 2 parser which can also be used in browser extensions.&lt;br /&gt;
** http://microformatshiv.com/&lt;br /&gt;
** github open source: https://github.com/glennjones/microformat-shiv&lt;br /&gt;
&lt;br /&gt;
===== PHP =====&lt;br /&gt;
* '''&amp;lt;span id=&amp;quot;php-mf2&amp;quot;&amp;gt;php-mf2&amp;lt;/span&amp;gt;''' - PHP microformats2 parser&lt;br /&gt;
** github open source: https://github.com/indieweb/php-mf2&lt;br /&gt;
** Packagist: https://packagist.org/packages/mf2/mf2&lt;br /&gt;
** live: &lt;br /&gt;
*** textarea entry: http://waterpigs.co.uk/php-mf2/&lt;br /&gt;
*** URL and textarea entry: https://pin13.net/mf2/&lt;br /&gt;
** [https://github.com/barnabywalters/php-mf-cleaner mf-cleaner]: functions for working with the raw mf2 data structure&lt;br /&gt;
&lt;br /&gt;
===== Python =====&lt;br /&gt;
* '''mf2py''' Python microformats2 parser&lt;br /&gt;
** main entry: [[mf2py]]&lt;br /&gt;
** github open source: https://github.com/tommorris/mf2py&lt;br /&gt;
** live: &lt;br /&gt;
*** URL entry: [https://mf2py.herokuapp.com/ mf2py.herokuapp.com]&lt;br /&gt;
*** textarea entry: https://kartikprabhu.com/connection/mfparser&lt;br /&gt;
*** another textarea: http://www.unmung.com/?html=&lt;br /&gt;
*** URL and/or textarea: https://kylewm.com/services/mf2&lt;br /&gt;
&lt;br /&gt;
===== Ruby =====&lt;br /&gt;
* '''indieweb/microformats-ruby''' Ruby microformats parser&lt;br /&gt;
** github open source: https://github.com/indieweb/microformats-ruby&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Development parsers ====&lt;br /&gt;
The following parsers are in-development and have key microformats2 functionality yet are incomplete, not fully tested, or have other limitations. Contributions welcome!&lt;br /&gt;
&lt;br /&gt;
===== Erlang =====&lt;br /&gt;
* '''hazybluedot/mf2erl''' Erlang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/hazybluedot/mf2erl&lt;br /&gt;
&lt;br /&gt;
===== Elixir =====&lt;br /&gt;
* '''ckruse/microformats-elixir''' Elixir microformats2 parser&lt;br /&gt;
** github open source: https://github.com/ckruse/microformats2-elixir&lt;br /&gt;
&lt;br /&gt;
===== Go =====&lt;br /&gt;
* '''andyleap/microformats''' Golang microformats2 parser&lt;br /&gt;
** github open source: https://github.com/andyleap/microformats&lt;br /&gt;
** live textarea entry: http://mf2.vendaria.net&lt;br /&gt;
&lt;br /&gt;
===== Haskell =====&lt;br /&gt;
* '''myfreeweb/microformats2-parser''' Haskell microformats2 parser&lt;br /&gt;
** github open source: https://github.com/myfreeweb/microformats2-parser&lt;br /&gt;
** live textarea entry: https://unrelenting.technology/mf2/&lt;br /&gt;
&lt;br /&gt;
===== Java =====&lt;br /&gt;
* '''Apache Any23''' a library, a web service and a command line tool that extracts structured data in RDF format from a variety of Web documents. Supports Microformats1 and 2.&lt;br /&gt;
** Download recent release: http://any23.apache.org/download.html&lt;br /&gt;
** live: http://any23-vm.apache.org/&lt;br /&gt;
** source: http://any23.apache.org/build-src.html&lt;br /&gt;
* '''mf2j''' An early-stage Java microformats2 parser&lt;br /&gt;
** github open source: https://github.com/kylewm/mf2j&lt;br /&gt;
** live: https://mf2j.herokuapp.com/?url={http://example.com}&lt;br /&gt;
&lt;br /&gt;
==== Experiments ====&lt;br /&gt;
Experiments and other proof of concept microformat2 parsing support.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Outreach ===&lt;br /&gt;
* [https://github.com/mozilla/fathom/issues/42 Mozilla Fathom:  examples with nested classes, e.g. microformats2]&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
Presentations about microformats2:&lt;br /&gt;
* 2013-01-24 &amp;lt;cite&amp;gt;[http://waterpigs.co.uk/presentations/microformats-2/ Microformats 2]&amp;lt;/cite&amp;gt; presentation by [[User:Barnabywalters|Barnaby Walters]] at the [[events/2013-01-24-exeter-web-meetup|Exeter Web Meetup]] in Devon, UK.&lt;br /&gt;
* 2012-09-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/09/microformats2/ microformats2 &amp;amp;amp; bits of HTML5: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-09-21-refreshlx|RefreshLX]] in Lisbon, Portugal.&lt;br /&gt;
* 2012-07-21 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-uf2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-21-cascadesf|Innovators of the Web conference]] in San Francisco, CA.&lt;br /&gt;
* 2012-07-14 &amp;lt;cite&amp;gt;[http://tantek.com/presentations/2012/07/html5-microformats2/ HTML5 and microformats2: The Evolution Of Web Data]&amp;lt;/cite&amp;gt; presentation by [[User:Tantek|Tantek Çelik]] ([http://twitter.com/t @t]) at [[events/2012-07-14-open-web-camp-4|Open Web Camp IV]] in San Jose, CA.&lt;br /&gt;
&lt;br /&gt;
== Testimonials ==&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;To prove the web standards community can come up with better standards than the SE’s, compare this: http://microformats.org/wiki/microformats-2 with schema . org &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298907685452124160 2013-02-05 13:35]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... I’m hoping SE’s will pick up microformats2. It’s SO much cleaner. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298911287117758464 2013-02-05 13:49]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
* &amp;lt;blockquote class=&amp;quot;twitter-tweet&amp;quot;&amp;gt;... But damn Microformats2 are sexy. &amp;amp;mdash; Joost de Valk (@yoast) [https://twitter.com/yoast/status/298912179292344320 2013-02-05 13:53]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About This Brainstorm ==&lt;br /&gt;
The rest of this page is a brainstorm currently written in narrative / exploratory format, that is, acknowledging the success that microformats have had, why so, and then a walk through of known issues with microformats in general along with iteration of ways to address said issues, ending up with the current microformats 2 design as a conclusion.&lt;br /&gt;
&lt;br /&gt;
The proposals build on each other resulting in a solution that addresses the vast majority of general issues. The proposed changes merit a major version number increment, hence microformats 2.&lt;br /&gt;
&lt;br /&gt;
This mathematical proof/derivation style is used to explicitly encourage understanding (and double-checking) of the rational steps taken in the development of microformats 2. Reasons are documented, sometimes along with alternatives considered (and reasons for rejection of those alternatives).&lt;br /&gt;
&lt;br /&gt;
When the microformats 2 brainstorm has evolved sufficiently to demonstrate some degree of stability, usability, and implementability, it will be rewritten in a more declarative specification style, and this narrative/derivation will be archived to a background development page for historical purposes.&lt;br /&gt;
&lt;br /&gt;
— [[User:Tantek|Tantek]]&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
2004: In early February microformats were introduced as a concept at eTech, and in September [[hCard]] and [[hCalendar]] were proposed at FOO Camp.&lt;br /&gt;
&lt;br /&gt;
2010:&lt;br /&gt;
* 34% of webdevs use microformats ([http://www.webdirections.org/sotw10/markup/#semantics 2010 State of Web Development survey])&lt;br /&gt;
* 1.88 billion hCards (per [[Yahoo]] SearchMonkey)&lt;br /&gt;
* 36 million hCalendar events (ibid)&lt;br /&gt;
&lt;br /&gt;
* XFN -&amp;gt; Social Graph API -&amp;gt; Web as Social Network / Address Book&lt;br /&gt;
&lt;br /&gt;
== Addressing Issues ==&lt;br /&gt;
=== AUTHORS and PUBLISHING ===&lt;br /&gt;
Authors and publishers are perhaps the most important constituency in the microformats community. There are more of them than there are developers, programmers, parsers, etc. and they're the ones that solved the chicken-egg problem by publishing microformats even before tools were available for consuming them.&lt;br /&gt;
&lt;br /&gt;
Therefore we must first address author/publisher general issues with microformats.&lt;br /&gt;
&lt;br /&gt;
==== can we make the simplest case simpler ====&lt;br /&gt;
Issue: '''How can we make it easier for authors to publish microformats?'''&lt;br /&gt;
&lt;br /&gt;
Currently the simplest hCard:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
    Chris Messina&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires 2 elements (nested, with perhaps at least one being pre-existing), and 2 class names.&lt;br /&gt;
&lt;br /&gt;
Web authors/designers are used to the simplicity of most HTML tags, e.g. to mark up a heading:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requires just 1 element.&lt;br /&gt;
&lt;br /&gt;
[http://zeldman.com/ Jeffrey Zeldman] pointed out this apparent perceived incremental complexity (2 elements vs 1) during a microformats workshop in 2009 in New York City.&lt;br /&gt;
&lt;br /&gt;
'''How can we make microformats just as easy?'''&lt;br /&gt;
&lt;br /&gt;
'''Proposal: allow root class name only.'''&lt;br /&gt;
&lt;br /&gt;
This would enable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;vcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
requiring only 1 class name for the simplest case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== renaming for usability ====&lt;br /&gt;
Otherwise known as, choosing one form of consistency over another.&lt;br /&gt;
&lt;br /&gt;
'''Can we do even better?'''&lt;br /&gt;
&lt;br /&gt;
One of the most common questions asked about hCard is:&lt;br /&gt;
&lt;br /&gt;
[[hcard-faq#Why_does_hCard_use_vcard_as_the_root_class_name|Why does hCard use vcard as the root class name?]]&lt;br /&gt;
&lt;br /&gt;
This slight inconsistency between the name of the format and the name of the root class name consistently causes confusion in a large percentage of newcomers to microformats.&lt;br /&gt;
* See [[issues#hcard-vs-vcard-name]] for details/links.&lt;br /&gt;
&lt;br /&gt;
Though in microformats we believe very strongly in the [[principle]] of [[reuse]], we have to admit that in this case experience/evidence has shown that this may be a case where we re-used something too far beyond it's original meaning. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: use root class name &amp;quot;hcard&amp;quot; instead of &amp;quot;vcard&amp;quot; for future hCards.'''&lt;br /&gt;
&lt;br /&gt;
This would result in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
making the simple case even simpler:&lt;br /&gt;
&lt;br /&gt;
Just 1 additional class name, named the same as the format you're adding.  Think hCard, markup class=&amp;quot;hcard&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
At a minimum for compatibility we should document that parsers should accept &amp;quot;hcard&amp;quot; as an alternative to &amp;quot;vcard&amp;quot; as the root class name for hCard 1.0, and similarly for hCalendar 1.0: &amp;quot;hcalendar&amp;quot; in addition to &amp;quot;vcalendar&amp;quot;, &amp;quot;hevent&amp;quot; in addition to &amp;quot;vevent&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
However, for [[microformats-2]] we are going to distinguish root class names further by using an &amp;quot;h-&amp;quot; prefix (e.g. &amp;quot;h-card&amp;quot;). Read on to understand why.&lt;br /&gt;
&lt;br /&gt;
==== simplifying to only needing one element ====&lt;br /&gt;
It's very important for the simple case to be as simple as possible, to enable the maximum number of people to get started with minimum effort. (The idea of using a single class name for a microformat was proposed by Ryan Cannon in 2006 specifically [[hcard-implied|for hCard]], and rediscovered by [[User:Tantek|Tantek]] in 2010 and subsequently generalized to all microformats.)&lt;br /&gt;
&lt;br /&gt;
From there on, it's ok to require incremental effort for incremental return.&lt;br /&gt;
&lt;br /&gt;
E.g. to add any additional information about a person, add explicit property names.&lt;br /&gt;
&lt;br /&gt;
'''How does this simple root-only case work?'''&lt;br /&gt;
&lt;br /&gt;
* root class name reflects name of the microformat&lt;br /&gt;
* every microformat must require at most 1 property (preferably 0)&lt;br /&gt;
** admit that requiring a field in an application just results in noise (the 90210 problem - apps which require zip code get lots of false 90210 entries), and specify that any application use cases which appear to &amp;quot;require&amp;quot; specific properties must instead define how to imply sensible defaults for them.&lt;br /&gt;
* when only a root class name is specified, imply the entire text contents of the element as the value of the primary property of the microformat. e.g.&lt;br /&gt;
** &amp;quot;hcard&amp;quot; implies &amp;quot;fn&amp;quot;&lt;br /&gt;
** hcalendar event - &amp;quot;hevent&amp;quot; - implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hreview&amp;quot; implies &amp;quot;summary&amp;quot;&lt;br /&gt;
** &amp;quot;hentry&amp;quot; implies &amp;quot;entry-summary&amp;quot; (perhaps collapse into &amp;quot;summary&amp;quot; - in practice they're not sufficiently semantically distinct to require separate property names)&lt;br /&gt;
** '''OR''' instead of making the one implied property be vocabulary specific, introduce a new generic (applicable to all vocabularies) 'p-name' property (subsuming hCard's 'fn'). See [[microformats-2-brainstorming#further_simplifications|microformats 2 brainstorming: further simplifications]] for latest thoughts along these lines, including the following specific mark-up implied generic properties across all microformats (based on existing published markup use-cases)&lt;br /&gt;
*** 'p-name'&lt;br /&gt;
*** 'u-url'&lt;br /&gt;
*** 'u-photo'&lt;br /&gt;
&lt;br /&gt;
==== flat sets of properties ====&lt;br /&gt;
'''What more can we simplify about microformats?'''&lt;br /&gt;
&lt;br /&gt;
Numerous individuals have provided the feedback that whenever there is more than one level of hierarchy in a microformat, many (most?) developers get confused - in particular Kavi Goel of Google / Rich Snippets provided this feedback at a microformats dinner.  Thus depending on multiple levels of hierarchy is likely resulting in a loss of authorability, perhaps even accuracy as confusion undoubtedly leads to more errors. Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: simplify all microformats to flat sets of properties. '''&lt;br /&gt;
&lt;br /&gt;
What this means:&lt;br /&gt;
* all microformats are simply an object with a set of properties with values.&lt;br /&gt;
* no more subproperties- drop the notion of subproperties.&lt;br /&gt;
* use composition of multiple microformats for any further hierarchy, e.g. the &amp;quot;location&amp;quot; of an hCalendar event can be an hCard, or the &amp;quot;agent&amp;quot; of one hCard can be another hCard.&lt;br /&gt;
&lt;br /&gt;
For example for hCard this would mean the following specific changes to keep relevant functionality:&lt;br /&gt;
* drop &amp;quot;n&amp;quot;, promote all &amp;quot;n&amp;quot; subproperties to full properties&lt;br /&gt;
** given-name, family-name, additional-name, honorific-prefix, honorific-suffix&lt;br /&gt;
* treat &amp;quot;geo&amp;quot; as a nested microformat&lt;br /&gt;
* treat &amp;quot;adr&amp;quot; as a nested microformat (what to do about adr's &amp;quot;type&amp;quot;?)&lt;br /&gt;
* treat &amp;quot;org&amp;quot; as a flat string and drop &amp;quot;organization-name&amp;quot; and &amp;quot;organization-unit&amp;quot; (in practice rarely used, also not revealed or ignored in contact management user interfaces - e.g. Address Book)&lt;br /&gt;
&lt;br /&gt;
Example: add a middle initial to the previous example Chris Messina's name, and markup each name component:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;hcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
# use of an explicit span with &amp;quot;fn&amp;quot; to markup his entire formatted name&lt;br /&gt;
# use of the abbr element to explicitly indicate the semantic that &amp;quot;R.&amp;quot; is merely an abbreviation for his additional-name.&lt;br /&gt;
&lt;br /&gt;
==== distinguishing properties from other classes ====&lt;br /&gt;
Current microformats properties re-use generic terms like &amp;quot;summary&amp;quot;, &amp;quot;photo&amp;quot;, &amp;quot;updated&amp;quot; both for ease of use and understanding.&lt;br /&gt;
&lt;br /&gt;
However, through longer term experience, we've seen sites that accidentally drop (or break) their microformats support (e.g. Upcoming.org, Facebook) because web authors sometimes rewrite all their class names, and either are unaware that microformats were in the page, or couldn't easily distinguish microformats property class names from other site-specific class names.&lt;br /&gt;
&lt;br /&gt;
This issue has been reported by a number of web authors.&lt;br /&gt;
* See: [[issues#class-collisions]]&lt;br /&gt;
&lt;br /&gt;
Thus microformats 2 uses ''prefixes'' for property class names, e.g.:&lt;br /&gt;
* '''p-summary''' instead of ''summary''&lt;br /&gt;
* '''u-photo''' instead of ''photo'' &lt;br /&gt;
* '''dt-updated''' instead of ''updated''&lt;br /&gt;
&lt;br /&gt;
Such prefixing of all microformats class names was first suggested by Scott Isaacs of Microsoft to Tantek on a visit to Microsoft sometime in 2006/2007, but specifically aimed at making microformats easier to parse. At the time the suggestion was rejected since microformats were focused on web authors rather than parsers.&lt;br /&gt;
&lt;br /&gt;
However, since experience has shown that distinguishing property class names is an issue for '''both web authors and parser developers''', this is a key change that microformats 2 is adopting. See the next section for details.&lt;br /&gt;
&lt;br /&gt;
=== COMMUNITY and TOOLS ===&lt;br /&gt;
The second most important constituency in the microformats community are the developers, programmers, tool-makers.&lt;br /&gt;
&lt;br /&gt;
A non-trivial number of them have been sufficiently frustrated with some general issues with microformats that they've done the significant extra work to support very different and less friendly alternatives (microdata, RDFa). Based on this real-world data (market behavior), it behooves us to address these general issues with microformats for this constituency.&lt;br /&gt;
&lt;br /&gt;
==== existing microformats parsing requirements ====&lt;br /&gt;
COMMUNITY and TOOLS (that) USE MICROFORMATS &lt;br /&gt;
* parser / parsing&lt;br /&gt;
* structured&lt;br /&gt;
* getting the data out&lt;br /&gt;
* json - 1:1 mapping&lt;br /&gt;
&lt;br /&gt;
[[parsing]] microformats currently requires&lt;br /&gt;
# a list of root class names of each microformat to be parsed&lt;br /&gt;
# a list of properties for each specific microformats, along with knowledge of the type of each property in order to parse their data from potentially different portions of the HTML markup&lt;br /&gt;
# some number of format-specific specific rules (markup/content optimizations)&lt;br /&gt;
&lt;br /&gt;
This has meant that whenever a new microformat is drafted/specificied/adopted, parsers need to updated to handle it correctly, at a minimum to parse them when inside other microformats and avoid errantly implying properties from one to the other (containment, [[mfo]] problem).&lt;br /&gt;
&lt;br /&gt;
==== naming conventions for generic parsing ====&lt;br /&gt;
I think there is a fairly simple solution to #1 and #2 from the above list, and we can make progress towards minimizing #3.  In short:&lt;br /&gt;
&lt;br /&gt;
'''Proposal: a set of naming conventions for microformat root class names and properties that make it obvious when:'''&lt;br /&gt;
* a class name represents a microformat root class name&lt;br /&gt;
* a class name represents a microformat property name&lt;br /&gt;
* a class name represents a microformat property that needs special parsing (specific type of property).&lt;br /&gt;
&lt;br /&gt;
In particular - derived from the real world examples of existing proven microformats (rather than any abstraction of what a schema should have)&lt;br /&gt;
* '''&amp;quot;h-*&amp;quot; for root class names''', e.g. &amp;quot;h-card&amp;quot;, &amp;quot;h-event&amp;quot;, &amp;quot;h-entry&amp;quot;&lt;br /&gt;
** The 'h-' prefix is based on the existing microformats naming pattern of starting with 'h'.&lt;br /&gt;
* '''&amp;quot;p-*&amp;quot; for simple (text) properties''', e.g. &amp;quot;p-fn&amp;quot;, &amp;quot;p-summary&amp;quot;&lt;br /&gt;
** vocabulary generic parsing, element text in general, treat certain HTML element/attribute combination as special and use those first, e.g. img/alt, abbr/title.&lt;br /&gt;
** The 'p-' prefix is based on the word &amp;quot;property&amp;quot; starting with 'p'.&lt;br /&gt;
* '''&amp;quot;u-*&amp;quot; for URL properties''', e.g. &amp;quot;u-url&amp;quot;, &amp;quot;u-photo&amp;quot;, &amp;quot;u-logo&amp;quot;&lt;br /&gt;
** special parsing required: prefer a/href, img/src, object/data etc. attributes to element contents.&lt;br /&gt;
** The 'u-' prefix is based on URL/URI starting with the letter 'u', which is the type of most of these related properties.&lt;br /&gt;
* '''&amp;quot;dt-*&amp;quot; for datetime properties''', e.g. &amp;quot;dt-start&amp;quot;, &amp;quot;dt-end&amp;quot;, &amp;quot;dt-bday&amp;quot;&lt;br /&gt;
** special parsing required: [[value-class-pattern]], in particular separate date time value parsing for better human readabillity / DRY balance.&lt;br /&gt;
** The 'dt-' prefix is based on &amp;quot;date time&amp;quot; having the initials &amp;quot;dt&amp;quot; and the preponderance of existing date time properties starting with &amp;quot;dt&amp;quot;, e.g. dtstart, dtend, dtstamp, dtreviewed.&lt;br /&gt;
* '''&amp;quot;e-*&amp;quot; for element tree properties''' where the entire contained element hierarchy is the value, e.g. &amp;quot;e-content&amp;quot; (formerly &amp;quot;entry-content&amp;quot;) for [[hAtom]]. The 'e-' prefix can also be mnemonically remembered as &amp;quot;element tree&amp;quot;, &amp;quot;embedded markup&amp;quot;, or &amp;quot;encapsulated markup&amp;quot;.&lt;br /&gt;
** special parsing required: follow the [http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#serializing-html-fragments HTML spec: Serializing HTML Fragments algorithm] to create a serialization.&lt;br /&gt;
&lt;br /&gt;
This provides a simpler transition/education story for existing microformats authors/publishers: &lt;br /&gt;
* &amp;quot;h*&amp;quot; to &amp;quot;h-*&amp;quot;, &amp;quot;dt*&amp;quot; to &amp;quot;dt-*&amp;quot;, url-like properties to &amp;quot;u-*&amp;quot;, entire embedded markup to &amp;quot;e-*&amp;quot;, and &amp;quot;p-*&amp;quot; for all &amp;quot;plain text&amp;quot; properties.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-prefixes]] for further thoughts and discussions on these and other class prefixes.&lt;br /&gt;
&lt;br /&gt;
Example: taking that simple heading hCard example forward:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;Chris Messina&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As part of microformats 2 we would immediately define root class names and property names for all existing microformats and drafts consistent with this naming convention, and require support thereof from all new implementations, as well as strongly encouraging existing implementations to adopt the simplified microformats 2 syntax and mechanism. Question: which microformats deserve explicit backward compatibility?&lt;br /&gt;
&lt;br /&gt;
As a community we would continue to use the microformats [[process]] both for researching and determining the need for new microformats, and for naming new microformat property names for maximum re-use and interoperability of a shared vocabulary.&lt;br /&gt;
&lt;br /&gt;
If it turns out we need a new property type in the future, we can use one of the remaining single-letter-prefixes to add it to microformats 2. This would require updating of parsers of course, but in practice the number of different types of properties has grown very slowly, and we know from other schema/programming languages that there's always some small limited number of scalar/atomic property types that you need, and using those you can create compound types/objects that represent richer / more complicated types of data. See [[microformats-2-prefixes]] for documentation of existing single-letter class name prefixes in practice.&lt;br /&gt;
&lt;br /&gt;
=== ADVANTAGES ===&lt;br /&gt;
This has numerous advantages:&lt;br /&gt;
* '''better maintainability''' - much more obvious to web authors/designers/publishers which class names are for/from microformats.&lt;br /&gt;
* '''no chance of collision''' - for all practical purposes with existing class names and thus avoiding any need to add more complex CSS style rules to prevent unintended styling effects.&lt;br /&gt;
* '''simpler parsing''' - parsers can now do a simple stream-parse (or in-order DOM tree walk) and parse out '''all''' microformat objects, properties, and values, without having to know anything about any specific microformats.&lt;br /&gt;
* '''separation of syntax and vocabulary''' - by abstracting microformats 2 syntax independent of any vocabulary, it allows and encourages development of shared vocabularies  that can work in alternative syntaxes.&lt;br /&gt;
&lt;br /&gt;
More examples: here is that same heading example with name components:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;p-fn&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with a hyperlink to Chris's URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== COMPATIBILITY ===&lt;br /&gt;
&lt;br /&gt;
microformats 2 is backwards compatible in that in permits content authors to markup with both old and new class names for compatibility with old tools.&lt;br /&gt;
&lt;br /&gt;
Here is a simple example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;fn&amp;quot;&amp;gt;Chris Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a microformats 2 parser would see the class name &amp;quot;h-card&amp;quot; and imply the one required property from the contents, while a microformats 1.0 parser would find the class name &amp;quot;vcard&amp;quot; and then look for the class name &amp;quot;fn&amp;quot;. no data duplication is required. this is a very important continuing application of the &amp;lt;abbr title=&amp;quot;don't repeat yourself&amp;quot;&amp;gt;DRY&amp;lt;/abbr&amp;gt; [[principle]].&lt;br /&gt;
&lt;br /&gt;
And the above hyperlinked example with both sets of class names:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;h1 class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;p-fn u-url n fn url&amp;quot; href=&amp;quot;http://factoryjoe.com/&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-given-name given-name&amp;quot;&amp;gt;Chris&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;abbr class=&amp;quot;p-additional-name additional-name&amp;quot;&amp;gt;R.&amp;lt;/abbr&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-family-name family-name&amp;quot;&amp;gt;Messina&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VENDOR EXTENSIONS ===&lt;br /&gt;
&lt;br /&gt;
(this section was only discussed verbally and not written up during discussions - capturing here as it is topical)&lt;br /&gt;
&lt;br /&gt;
Proprietary extensions to formats have typically been shortlived experimental failures with one big recent exception.&lt;br /&gt;
&lt;br /&gt;
Proprietary or experimental CSS3 property implementations have been very successful.&lt;br /&gt;
&lt;br /&gt;
There has been much use of border radius properties and animations/transitions which use CSS properties with vendor-specific prefixes like:&lt;br /&gt;
&lt;br /&gt;
* -moz-border-radius&lt;br /&gt;
* -webkit-border-radius&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
Note that these are merely string '''prefixes''', not bound to any URL, and thus not namespaces in any practical sense of the word.  This is quite an important distinction, as avoiding the need to bind to a URL has made them easier to support and use.&lt;br /&gt;
&lt;br /&gt;
This use of vendor specific CSS properties has in recent years allowed the larger web design/development/implementor communities to experiment and iterate on new CSS features while the features were being developed and standardized.&lt;br /&gt;
&lt;br /&gt;
The benefits have been two-fold:&lt;br /&gt;
* designers have been able to make more attractive sites sooner (at least in some browsers)&lt;br /&gt;
* features have been market / real-world tested before being fully standardized, thus resulting in better features&lt;br /&gt;
&lt;br /&gt;
Implementers have used/introduced &amp;quot;x-&amp;quot; prefixes for IETF MIME/content-types for experimental content-types, MIME parameter extensions, and HTTP header extensions, per RFC 2045 Section 6.3, RFC 3798 section 3.3, and [https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_header_fields#Common_non-standard_headers Wikipedia: HTTP header fields - non-standard headers] (could use RFC reference instead) respectively, like:&lt;br /&gt;
&lt;br /&gt;
* application/x-latex (per [https://secure.wikimedia.org/wikipedia/en/wiki/Internet_media_type#Type_x Wikipedia Internet media type: Type x])&lt;br /&gt;
* x-spam-score (in email headers)&lt;br /&gt;
* X-Pingback (per [http://en.wikipedia.org/wiki/Pingback Wikipedia:Pingback])&lt;br /&gt;
&lt;br /&gt;
Some standard types started as experimental &amp;quot;x-&amp;quot; types, thus demonstrating this experiment first, standardize later approach has worked for at least some cases:&lt;br /&gt;
&lt;br /&gt;
* image/x-png (standardized as image/png, both per [http://tools.ietf.org/html/rfc2083 RFC2083])&lt;br /&gt;
&lt;br /&gt;
There have been times when specific sites have wanted to extend microformats beyond what the set of properties in the microformat, and currently lack any '''experimental''' way to do so - to try and see if a feature (or even a whole format) is interesting in the real world before bothering to pursue researching and walking it through the microformats process.  Thus:&lt;br /&gt;
&lt;br /&gt;
'''Proposal:'''&lt;br /&gt;
* '*-x-' + '-' + meaningful name for root and property class names&lt;br /&gt;
** where &amp;quot;*&amp;quot; indicates the single-character-prefix as defined above&lt;br /&gt;
** where &amp;quot;x&amp;quot; indicates a literal 'x' for an experimental extension OR&lt;br /&gt;
** OR &amp;quot;x&amp;quot; indicates a vendor prefix (more than one character, e.g. like CSS vendor extension abbreviations, or some stock symbols, avoiding first words/phrases/abbreviations of microformats properties like dt-)&lt;br /&gt;
** e.g.&lt;br /&gt;
** &amp;quot;h-bigco-one-ring&amp;quot; - a hypothetical &amp;quot;bigco&amp;quot; vendor-specific &amp;quot;one-ring&amp;quot; microformat root class name.&lt;br /&gt;
** &amp;quot;p-goog-preptime&amp;quot; - to represent [http://www.google.com/support/webmasters/bin/answer.py?answer=173379 Google's &amp;quot;preptime&amp;quot; property extension] to [[hRecipe]] (aside: &amp;quot;duration&amp;quot; may be another property type to consider separate from &amp;quot;datetime&amp;quot; as it may be subject to different parsing rules.)&lt;br /&gt;
** &amp;quot;p-x-prep-time&amp;quot; - a possible experimental property name to be added to hRecipe upon consideration/documentation of real-world usage/uptake.&lt;br /&gt;
&lt;br /&gt;
Background - this proposal is a composition of the following (at least somewhat) successful vendor extension syntaxes&lt;br /&gt;
* [http://www.w3.org/TR/CSS21/syndata.html#vendor-keywords CSS 2.1 4.1.2.1 Vendor-specific extensions]&lt;br /&gt;
* IETF MIME/content-type &amp;quot;x-*&amp;quot; extensions per RFC 2045 Section 6.3. [http://en.wikipedia.org/wiki/Internet_media_type]&lt;br /&gt;
* IETF MIME experimental fields (e.g. x-spam-score)&lt;br /&gt;
* HTTP header extensions (e.g. x-pingback)&lt;br /&gt;
* note also [http://www.mnot.net/blog/2009/02/18/x- some critical thoughts from mnot]&lt;br /&gt;
&lt;br /&gt;
=== USERS ===&lt;br /&gt;
Need more tools and interfaces that:&lt;br /&gt;
* publish&lt;br /&gt;
* copy/paste&lt;br /&gt;
* right-click on a microformat&lt;br /&gt;
* share&lt;br /&gt;
* search results&lt;br /&gt;
&lt;br /&gt;
discussed some existing like: [[H2VX]] converts hCard to vCard, hCalendar to iCalendar&lt;br /&gt;
&lt;br /&gt;
how would we re-implement Live Clipboard today, making it easier for publishers and developers?&lt;br /&gt;
&lt;br /&gt;
=== SEE ALSO ===&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-brainstorming]] - moving more experimental / undeveloped / and rejected thoughts ideas here to simplify/progress *this* page further.&lt;br /&gt;
* [[microformats2-experimental-properties]] - listing experimental (-x- prefixed) properties and their use&lt;br /&gt;
* [[microformats2-prefixes]]&lt;br /&gt;
* [[microformats2-faq]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* 2010-05-02 [[events/2010-05-02-microformats-2-0|microformats 2.0 discussion session at FOO East]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=code-tools&amp;diff=66289</id>
		<title>code-tools</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=code-tools&amp;diff=66289"/>
		<updated>2017-05-04T13:08:40Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: Undo revision 66286 by Rosannaberardi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Code &amp;amp; Tools&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
== Code Generators ==&lt;br /&gt;
There are a few tools available to help you generate microformatted code:&lt;br /&gt;
&lt;br /&gt;
* [http://microformats.org/code/hcard/creator hCard creator]&lt;br /&gt;
* [http://microformats.org/code/hcalendar/creator hCalendar creator]&lt;br /&gt;
* [http://microformats.org/code/hreview/creator hReview creator]&lt;br /&gt;
&lt;br /&gt;
The [http://gmpg.org/xfn/creator XFN creator] is a Web-based interface for quickly creating a link with the proper XFN values. It has been translated into the following languages:&lt;br /&gt;
* [http://gmpg.org/xfn/creator-fr French] as translated by Serge K. Keller&lt;br /&gt;
* [http://gmpg.org/xfn/creator-it Italian] as translated by Serge K. Keller and [http://www.caeciliana.ch/ Cécile Matthey]&lt;br /&gt;
* [http://gmpg.org/xfn/creator-es Spanish-Argentina] as translated by [http://ultimorender.com.ar/funkascript/ Manuel Razzari]&lt;br /&gt;
* [http://gmpg.org/xfn/creator-nl Dutch] as translated by [http://www.budts.be/weblog Jeroen Budts]&lt;br /&gt;
* [http://gmpg.org/xfn/creator-cs Czech] as translated by [http://www.zapisky.info/ Josef Petrák]&lt;br /&gt;
* [http://gmpg.org/xfn/creator-ja Japanese] as translated by [http://kidachi.kazuhi.to/ Kazuhito Kidachi]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Validation Testing Tools ==&lt;br /&gt;
{{main|validators}}&lt;br /&gt;
You can check how your markup will be parsed by using the [http://waterpigs.co.uk/php-mf2/ php-mf2] tool. It will take markup and show you the JSON interpretation.&lt;br /&gt;
&lt;br /&gt;
If you want to check markup as it is interpreted from your page you can check out the [http://microformat2-node.jit.su/ microformat-node] tool. It will grab your page and show you all found microformats that are supported by the tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[browsers]]&lt;br /&gt;
* [[search-engines]]&lt;br /&gt;
* [[validators]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2#Parsers]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=code-tools&amp;diff=66288</id>
		<title>code-tools</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=code-tools&amp;diff=66288"/>
		<updated>2017-05-04T13:08:07Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: Undo revision 66287 by Adamvoges (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Canadian Immigrating to USA&lt;br /&gt;
Berardi immigration provides the highest level of immigration services and respect to the clients. Our Immigration Law firm focuses on serving [http://www.berardiimmigrationlaw.com/services/us-immigration-for-canadians Canadians immigrating to USA]. Contact Berardi immigration law for helping the Canadians with the complex issues of Canadian immigrating to USA.&lt;br /&gt;
For more info, you can visit my site: http://www.berardiimmigrationlaw.com&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=h-review&amp;diff=66285</id>
		<title>h-review</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=h-review&amp;diff=66285"/>
		<updated>2017-05-01T13:43:23Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Backward Compatiblity */ correct name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;h-review&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;p-role role&amp;quot;&amp;gt;Editor&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;h-review&amp;lt;/dfn&amp;gt; is a simple, open format for publishing reviews on the web. h-review is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML/HTML5 on the web.&lt;br /&gt;
&lt;br /&gt;
h-review is the [[microformats2]] update to [[hReview]].&lt;br /&gt;
&lt;br /&gt;
{{cc0-owfa-license}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a simple review example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-review&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1 class=&amp;quot;p-name&amp;quot;&amp;gt;Microformats: is structured data worth it?&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;blockquote&amp;gt;&lt;br /&gt;
    &amp;lt;a class=&amp;quot;p-item h-item&amp;quot; href=&amp;quot;http://microformats.org&amp;quot;&amp;gt;Microformats&amp;lt;/a&amp;gt; are the simplest way to publish structured data on the web.&lt;br /&gt;
  &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;p&amp;gt;&lt;br /&gt;
    &amp;lt;data class=&amp;quot;p-rating&amp;quot; value=&amp;quot;5&amp;quot;&amp;gt;★★★★★&amp;lt;/data&amp;gt;&lt;br /&gt;
    Published &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2013-06-12 12:00:00&amp;quot;&amp;gt;12&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; June 2013&amp;lt;/time&amp;gt;&lt;br /&gt;
    by &amp;lt;a class=&amp;quot;p-author h-card&amp;quot; href=&amp;quot;http://example.com&amp;quot;&amp;gt;Joe Bloggs&amp;lt;/a&amp;gt;.&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;div class=&amp;quot;e-content&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        &amp;quot;h-review&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Microformats: is structured data worth it?&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;item&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Microformats&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: [&lt;br /&gt;
              &amp;quot;h-item&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
              &amp;quot;name&amp;quot;: [&lt;br /&gt;
                &amp;quot;Microformats&amp;quot;&lt;br /&gt;
              ],&lt;br /&gt;
              &amp;quot;url&amp;quot;: [&lt;br /&gt;
                &amp;quot;http://microformats.org&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;rating&amp;quot;: [&lt;br /&gt;
          &amp;quot;5&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;published&amp;quot;: [&lt;br /&gt;
          &amp;quot;2013-06-12 12:00:00&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;author&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Joe Bloggs&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: [&lt;br /&gt;
              &amp;quot;h-card&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
              &amp;quot;name&amp;quot;: [&lt;br /&gt;
                &amp;quot;Joe Bloggs&amp;quot;&lt;br /&gt;
              ],&lt;br /&gt;
              &amp;quot;url&amp;quot;: [&lt;br /&gt;
                &amp;quot;http://example.com&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).&amp;quot;,&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Yes, microformats are undoubtedly great. They are the simplest way to markup structured data in HTML and reap the benefits thereof, including using your web page as your API by automatic conversion to JSON. The alternatives of microdata/schema and RDFa are much more work, require more markup, and are more complicated (harder to get right, more likely to break).&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get started ===&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-review&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates the presence of an h-review.&lt;br /&gt;
&lt;br /&gt;
'''p-name''', '''p-item''', '''p-rating''', '''dt-published''', '''p-author''', '''e-content''' and the other property class names listed below defined elements as ''properties'' of the h-review.&lt;br /&gt;
&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-item&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates an embedded '''[[h-item]]''' for the p-item property.&lt;br /&gt;
&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates an embedded '''[[h-card]]''' for the p-author property.&lt;br /&gt;
&lt;br /&gt;
See [[microformats2-parsing]] to learn more about property class names.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
h-review properties, inside an element with class '''h-review''':&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - name of the review&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-item&amp;lt;/code&amp;gt;''' - thing been reviewed, including embedded microformat for e.g. business or person ([[h-card]]), event ([[h-event]]), place ([[h-adr]] or [[h-geo]]), product ([[h-product]]), website, url, or other item ([[h-item]]).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - person who authored the review, optionally with an embedded [[h-card]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - date time of when the review was written and published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-rating&amp;lt;/code&amp;gt;''' - value from 1-5 indicating a rating for the item (5 best).&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-best&amp;lt;/code&amp;gt;'''  - define best rating value. can be numerically lower than worst.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-worst&amp;lt;/code&amp;gt;'''  - define worst rating value. can be numerically higher than best. &lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' - the full text written evaluation and opinion of the reviewer&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - freeform categories or tags applied to the item by the reviewer &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - review permalink URL&lt;br /&gt;
&lt;br /&gt;
All properties are optional.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''h-review''' is a microformats.org draft specification. Public discussion on h-review takes place on [[h-review-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
h-review is ready to use.&lt;br /&gt;
&lt;br /&gt;
== Property Details ==&lt;br /&gt;
(stub, add any property explanations here)&lt;br /&gt;
&lt;br /&gt;
== Examples in the Wild ==&lt;br /&gt;
* … add any h-review examples you find in the wild&lt;br /&gt;
* https://cleverdevil.io/2015/blood-rites-book-six-of-the-dresden-files&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
* [https://github.com/cleverdevil/Known-Reviews Reviews plugin for Known CMS] by [https://cleverdevil.io Jonathan LaCour].&lt;br /&gt;
** [https://github.com/cleverdevil/Known-Reviews/pull/4 pending pull request to sync with spec update 2016-05-29] -t&lt;br /&gt;
&lt;br /&gt;
== Validating ==&lt;br /&gt;
{{h-spec-section-validating}}&lt;br /&gt;
&lt;br /&gt;
== Backward Compatibility ==&lt;br /&gt;
=== Publisher Compatibility ===&lt;br /&gt;
For backward compatibility, you may wish to use classic [[hReview]] classnames on an h-review permalink page in addition to the more future-proof h-review properties, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-review hreview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1 class=&amp;quot;p-name fn&amp;quot;&amp;gt;My great review&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parser Compatibility ===&lt;br /&gt;
Microformats parsers should detect classic properties and parse them as microformats 2 properties. If an &amp;quot;h-review&amp;quot; is found, don't look for an &amp;quot;hReview&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
Compatibility root class name: hreview&lt;br /&gt;
&lt;br /&gt;
Properties: (parsed as p- plain text unless otherwise specified)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; (without vcard, vevent, hproduct) - parse as '''p-item h-item''' including backcompat nested properties:&lt;br /&gt;
** &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''p-name''' of the item being reviewed (p-item h-item p-name)&lt;br /&gt;
** &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-photo''' of the item being reviewed (p-item h-item u-photo)&lt;br /&gt;
** &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-url''' of the item being reviewed (p-item h-item u-url)&lt;br /&gt;
* &amp;lt;code&amp;gt;item vcard&amp;lt;/code&amp;gt; - parse as '''p-item h-card''' including backcompat [[hCard]] parsing&lt;br /&gt;
* &amp;lt;code&amp;gt;item vevent&amp;lt;/code&amp;gt; - parse as '''p-item h-event''' including backcompat [[hCalendar]] vevent property parsing&lt;br /&gt;
* &amp;lt;code&amp;gt;item hproduct&amp;lt;/code&amp;gt; - parse as '''p-item h-product''' including backcompat [[hProduct]] parsing&lt;br /&gt;
* &amp;lt;code&amp;gt;reviewer&amp;lt;/code&amp;gt;  - parse as '''p-author''', including compat root vcard in the absence of h-card&lt;br /&gt;
* &amp;lt;code&amp;gt;dtreviewed&amp;lt;/code&amp;gt; - parse as '''dt-published'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rating&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;best&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;worst&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; - parse as '''e-content'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=tag&amp;lt;/code&amp;gt; - parse as '''p-category'''&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=&amp;quot;self bookmark&amp;quot;&amp;lt;/code&amp;gt; - parse as '''u-url'''. note that &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute value is treated as a space separated set, thus any presence of &amp;quot;self&amp;quot; and &amp;quot;bookmark&amp;quot; within such a set in a rel value is accepted.&lt;br /&gt;
&lt;br /&gt;
Note: The [[hReview]] format has three properties which make use of &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt; attribute, these are &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt;, permalink (via the &amp;lt;code&amp;gt;self&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;bookmark&amp;lt;/code&amp;gt; values) and &amp;lt;code&amp;gt;license&amp;lt;/code&amp;gt;. Microformats 2 parsers {{should}} map these URLs into the page scoped rel collection.&lt;br /&gt;
&lt;br /&gt;
=== prior property names ===&lt;br /&gt;
There may be a handful of h-reviews out there (only one known so far) that use prior h-review property names. Parsers encountering these *may* interpret them as follows:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;dt-reviewed&amp;lt;/code&amp;gt; treat as a fallback for '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;e-description&amp;lt;/code&amp;gt; treat as a fallback for '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;p-reviewer&amp;lt;/code&amp;gt; treat as a fallback for '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
h-review is based on the existing [[hReview]] specification.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[h-event]]&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[h-product]] can all be embedded in h-review as the p-item&lt;br /&gt;
* [[h-item]] is a minimal microformat in case none of the others suitably represent the item being reviewed&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=h-adr&amp;diff=66284</id>
		<title>h-adr</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=h-adr&amp;diff=66284"/>
		<updated>2017-05-01T13:31:52Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Backward Compatiblity */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;h-adr&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;p-role role&amp;quot;&amp;gt;Editor&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;h-adr&amp;lt;/dfn&amp;gt; is a simple, open format for publishing structured locations such as addresses, physical and/or postal. h-adr is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML/HTML5 on the web.&lt;br /&gt;
&lt;br /&gt;
h-adr is the [[microformats-2]] update to [[adr]]. It is most commonly used as part of an [[h-card]] or [[h-event]].&lt;br /&gt;
&lt;br /&gt;
For named addresses, e.g. people or venues, use [[h-card]].&lt;br /&gt;
&lt;br /&gt;
{{cc0-owfa-license}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a simple postal address example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;h-adr&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;17 Austerstræti&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Reykjavík&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-country-name&amp;quot;&amp;gt;Iceland&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-postal-code&amp;quot;&amp;gt;107&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        &amp;quot;h-adr&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;street-address&amp;quot;: [&lt;br /&gt;
          &amp;quot;17 Austerstræti&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;locality&amp;quot;: [&lt;br /&gt;
          &amp;quot;Reykjavík&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;country-name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Iceland&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;postal-code&amp;quot;: [&lt;br /&gt;
          &amp;quot;107&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&lt;br /&gt;
          &amp;quot;17 Austerstræti Reykjavík Iceland 107&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The implicit &amp;quot;name&amp;quot; property that is generated from parsing an h-adr is there for consuming applications to have a simple flattened string representation of an h-adr.&lt;br /&gt;
&lt;br /&gt;
For an explicitly named address (such as a mailing address to a specific person), use [[h-card]].&lt;br /&gt;
&lt;br /&gt;
=== Get started ===&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-adr&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates the presence of an h-adr.&lt;br /&gt;
&lt;br /&gt;
'''p-street-address''', '''p-locality''', '''p-country-name''', '''p-postal-code''' and all the other h-adr property class names listed below define properties of the h-adr.&lt;br /&gt;
&lt;br /&gt;
See [[microformats-2-parsing]] to learn more about property class names.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
h-adr properties, inside an element with class '''h-adr''':&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;''' - house/apartment number, floor, street name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;''' - additional street details&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;''' - post office mailbox&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;''' - city/town/village&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;''' - state/county/province&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;''' - postal code, e.g. ZIP in the US&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;''' - should be full name of country, country code ok&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;''' - a mailing label, plain text, perhaps with preformatting&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' (or u-geo with a RFC 5870 geo: URL), optionally embedded [[h-geo]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - decimal latitude&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - decimal longitude&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - decimal altitude - new in vCard4 (RFC6350)&lt;br /&gt;
&lt;br /&gt;
All properties are optional.&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - there is no &amp;quot;p-name&amp;quot; property in h-adr. If your address has an explicit name, it's likely a venue, and you should use [[h-card]] instead.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''h-adr''' is a microformats.org draft specification. Public discussion on h-adr takes place on [[h-adr-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
h-adr is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-adrs up with classic [[adr]] classnames.&lt;br /&gt;
&lt;br /&gt;
== Property Details ==&lt;br /&gt;
(stub, add any property explanations here)&lt;br /&gt;
&lt;br /&gt;
== Examples in the Wild ==&lt;br /&gt;
* … add any h-adr examples you find in the wild&lt;br /&gt;
&lt;br /&gt;
== Validating ==&lt;br /&gt;
{{h-spec-section-validating}}&lt;br /&gt;
&lt;br /&gt;
== Backward Compatibility ==&lt;br /&gt;
=== Publisher Compatibility ===&lt;br /&gt;
For backward compatibility, you may wish to use classic [[adr]] classnames in addition to the more future-proof h-adr properties, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;h-adr adr&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-street-address street-address&amp;quot;&amp;gt;123 Main St.&amp;lt;/span&amp;gt;, &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-locality locality&amp;quot;&amp;gt;Pleasantville&amp;lt;/span&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;''' is a ''backward compatible root class name'' that indicates the presence of an [[adr]].&lt;br /&gt;
&lt;br /&gt;
'''street-address''', '''locality''', and all the other backward compatibility adr property class names are listed below.&lt;br /&gt;
&lt;br /&gt;
=== Parser Compatibility ===&lt;br /&gt;
Microformats parsers should detect classic properties only if a classic root class name is found and parse them as microformats2 properties. &lt;br /&gt;
&lt;br /&gt;
If an &amp;quot;h-adr&amp;quot; is found, don't look for an &amp;quot;adr&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
Compatibility root class name: adr&lt;br /&gt;
&lt;br /&gt;
Properties: (parsed as p- plain text unless otherwise specified)&lt;br /&gt;
&lt;br /&gt;
* post-office-box&lt;br /&gt;
* extended-address&lt;br /&gt;
* street-address&lt;br /&gt;
* locality&lt;br /&gt;
* region&lt;br /&gt;
* postal-code&lt;br /&gt;
* country-name&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== What about country codes ===&lt;br /&gt;
Q: When marking up an address, can p-country-name be used to markup two letter country codes like &amp;quot;UK&amp;quot;? Or others like 3 letter Olympic country codes?&lt;br /&gt;
&lt;br /&gt;
A: In short yes. You can do:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-country-name&amp;quot;&amp;gt;UK&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
However it's better if you mark it up with the &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt; element and provide the full name as well, e.g.&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;p-country-name&amp;quot; title=&amp;quot;United Kingdom&amp;quot;&amp;gt;UK&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consuming applications may interpret any 2-3 character country-name per the table of 2-3 character [http://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements country codes in ISO3166].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
h-adr is based on the existing [[adr]] specification, which was extracted from [[hCard]] in order to allow it to be used for applications other than contact information.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[h-geo]] can be embedded in h-adr&lt;br /&gt;
* [[h-card]] and [[h-event]] often contain h-adr&lt;br /&gt;
* [[vcard]] (most recently vCard4 RFC6350) vocabulary is re-used by h-adr.&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=microformats2-parsing-faq&amp;diff=66283</id>
		<title>microformats2-parsing-faq</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=microformats2-parsing-faq&amp;diff=66283"/>
		<updated>2017-05-01T13:30:18Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* which backcompat root classes */ broken section links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2-parsing-faq&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page documents answers to frequently (or expected to be) asked questions about [[microformats2-parsing]].&lt;br /&gt;
&lt;br /&gt;
For questions about [[microformats2]] in general, see [[microformats2-faq]].&lt;br /&gt;
&lt;br /&gt;
== questions ==&lt;br /&gt;
=== which backcompat root classes ===&lt;br /&gt;
Q: Which backcompat root classes should a [[microformats2]] parser support?&lt;br /&gt;
&lt;br /&gt;
A: The microformats2 specification lists [[microformats2#v2_vocabularies|which microformats2 vocabularies are ready for use]], and each of those lists their classic microformat (if any) that has sufficiently broad use and support to be included in the set of backcompat root classes that a [[microformats2]] parser should support. Here they are in a list: (each is linked to the backcompat parsing section in its respective microformats2 vocabulary specification)&lt;br /&gt;
&lt;br /&gt;
* [[h-adr#Backward_Compatibility|adr]]&lt;br /&gt;
* [[h-geo#Backward_Compatibility|geo]]&lt;br /&gt;
* [[h-entry#Backward_Compatibility|hentry]]&lt;br /&gt;
* [[h-product#Backward_Compatibility|hproduct]]&lt;br /&gt;
* [[h-recipe#Backward_Compatibility|hrecipe]]&lt;br /&gt;
* [[h-resume#Backward_Compatibility|hresume]]&lt;br /&gt;
* [[h-review#Backward_Compatibility|hreview]]&lt;br /&gt;
* [[h-review-aggregate#Backward_Compatibility|hreview-aggregate]]&lt;br /&gt;
* [[h-card#Backward_Compatibility|vcard]]&lt;br /&gt;
* [[h-event#Backward_Compatibility|vevent]]&lt;br /&gt;
&lt;br /&gt;
=== normalizing u-* property values ===&lt;br /&gt;
Q: In the [[microformats2-parsing#parsing_a_u-_property|Parsing u-* section]], shouldn't item 5 (if there is a gotten value…) be at the end of the section? Shouldn't normalizing apply wherever the value comes from? (question from IRC, 2012-296).&lt;br /&gt;
&lt;br /&gt;
A: Normalizing u-* property values occurs exactly where necessary and no more. In particular, normalizing only when present in URL attributes follows the semantics of those attributes (normalization to absolute URLs) per the [[HTML5]] specification, whereas when the value is present in a title attribute or in text, the expectation, in both normal usage and in the browser, is that such values are displayed and used as is without any normalization.&lt;br /&gt;
&lt;br /&gt;
=== checking for explicit properties before implying ===&lt;br /&gt;
Q: When checking for whether or not to look for implied properties, should the parser look for an explicit &amp;quot;p-name&amp;quot; in particular or &amp;quot;*-name&amp;quot; in the list of parsed property names?&lt;br /&gt;
&lt;br /&gt;
A: Before implying a &amp;quot;name&amp;quot; property, look for the unprefixed property, e.g. &amp;quot;name&amp;quot;, not &amp;quot;p-name&amp;quot; nor &amp;quot;*-name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In the JSON set of parsed property names, there are no prefixes (e.g. see the &amp;quot;Parsed JSON&amp;quot; examples in [[microformats2]]).&lt;br /&gt;
&lt;br /&gt;
The order of operations in the parsing algorithm is explicit about this: parsers only imply properties ''after'' parsing an element for all explicit properties, per [[microformats2-parsing#parse_an_element_for_microformats|parse an element for microformats]].&lt;br /&gt;
&lt;br /&gt;
Parsing for implied properties specifically refers to &amp;quot;name&amp;quot;, &amp;quot;photo&amp;quot;, and &amp;quot;url&amp;quot;: [[microformats2-parsing#parsing_for_implied_properties|parsing for implied properties]] - all unprefixed versions of the property names.&lt;br /&gt;
&lt;br /&gt;
The p- u- dt- e- prefixes are basically parse-time directives that are dropped once parsing is done and you collect the properties/values into your JSON parse tree.&lt;br /&gt;
&lt;br /&gt;
=== empty property values ===&lt;br /&gt;
Q: [[microformats2-parsing]] lists many selectors of the form &amp;quot;abbr.p-x[title]&amp;quot;.  Is this intended to also match attributes with empty values?&lt;br /&gt;
&lt;br /&gt;
A: Yes, the assumption is that the inclusion of an empty attribute value was a deliberate action by the author.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== add another question topic here ===&lt;br /&gt;
Q: What's the question?&lt;br /&gt;
&lt;br /&gt;
A: We have an answer.&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* [[microformats2-parsing-brainstorming]]&lt;br /&gt;
* [[microformats2-faq]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=citation-irc-notes-2006-04-09&amp;diff=66282</id>
		<title>citation-irc-notes-2006-04-09</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=citation-irc-notes-2006-04-09&amp;diff=66282"/>
		<updated>2017-04-30T13:56:01Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: Undo revision 66281 by Cvkitssupplise (Talk) link spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[citation-irc-meetup|An irc discussion was held]].&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
A citation microformat needs to cover four uses:&lt;br /&gt;
&lt;br /&gt;
# full, bibliographic citations, eg &amp;quot;The Title Of An Article. Smith J. Journal Title (1987). 46:1; 23-35.&amp;quot;  This is the main citation microformat and should contain all the information necessary to locate the item and create a text citation in all the common formats (MLA, APA, etc).&lt;br /&gt;
# minimal, inline citations in text, eg (Smith, 1987). These generally link to an item in the bibliography using a fragment identifier.&lt;br /&gt;
# full, inline citations in text, eg following a blockquote.&lt;br /&gt;
# description of the current item/page, including title, creator, date etc.&lt;br /&gt;
&lt;br /&gt;
* I disagree with this last requirement (description of the current item/page).  A citation is IMHO a reference to a work *somewhere-else*.  It is a reference to a work from *another* work.  This is quite a different case than a work describing itself.  For info about a work in the work itself, see for example [[blog-description-examples]]. -Tantek&lt;br /&gt;
** [http://rbach.priv.at/Microformats-IRC/2006-04-09#T192302 the SELF description was discussed] in the meet-up. The idea behind encoding all the attributes for the current page/item was to allow OTHERS to extract citation data from your page for their own use. Why should i re-key all the data about the article if i can simple convert the article to a citation itself! This should require no additional work or fields - their will be no properties unique to the SELF that are already not expressed in the base citation microformat. -[http://suda.co.uk/ brian]&lt;br /&gt;
*** I understand the desire to help automate this, but that means that it would be nice to have a transform from the self-description of a work, to a citation of the work.  That transform doesn't necessarily have to be the identity transform, hence the last requirement shouldn't be a requirement. -Tantek&lt;br /&gt;
**** Your point that a citation is a reference to an outside source is right Tantek, but that doesn't mean that the description of self should be ANY different than that of an extraneous document, save for the fact that we call it a &amp;quot;citation.&amp;quot; I think this may well have been why Ed bruoght up the idea of an hDC, where we end up thinking of hCite as more-or-less a sort of wrapper for other microformats (hCard, hCal, etc.). -Bruce&lt;br /&gt;
***** But we are not talking about &amp;quot;should be ANY different&amp;quot;.  We are talking about &amp;quot;should be SAME&amp;quot;.  My point is that it should NOT be a *requirement* for *citations* per se.  The recognition that people will want to cite works is a good one, and thus when working on any &amp;quot;description&amp;quot; type format for a work describing itself, *that* work should look to the citation microformat and be sure to specify a transform, i.e. how to create a citation from a description. The easiest thing *might* be to simply embed a citation, but that is up to the description format, not up to the citation format, and thus should NOT be a requirement for the citation format.  My guess is that most description formats will be a superset of what a general purpose citation has in it.&lt;br /&gt;
****** Consider the example of an article that contains within the page something along the lines of &amp;quot;Please cite this article as: The Title Of An Article. Smith J. Journal Title (1987). 46:1; 23-35.&amp;quot;. That's both a citation and a description of the current page, and it should be marked up as such. --AlfEaton&lt;br /&gt;
******* Alf, that's a theoretical example, so we should not consider it as a requirement.  If you can find 80/20 examples in the real world (published on the Web) that contain such a &amp;quot;suggested citation&amp;quot;, please add those examples to [[citation-examples]]. &lt;br /&gt;
******** Sigh, this is all sounding a bit patronizing Tantek. It's not a &amp;quot;theoretical example&amp;quot;; just Google for the phrase &amp;quot;please cite this article.&amp;quot; But I'll add an example or two to the examples page.  -- bruce&lt;br /&gt;
* In addition, naming a document &amp;quot;-recommendation&amp;quot; at this point is quite premature, especially when there is much work to be done in both doing the work and cleaning up of [[citation-examples]], [[citation-formats]], and [[citation-brainstorming]]. If this is meant to be a record of notes or a summary of a discussion, then it should be a notes page, e.g. see for example [[geo-bof-2005-06-30]].  Thanks,  -Tantek&lt;br /&gt;
** I will write-up the notes for the irc-meeting shortly and post them to the appropriate place. In the mean-time the general consenus was that we have closed on the exploration phase of the citation microformat. We have solid goals and are moving to implementation. Admittably the citation pages need some serious clean-up, but there is no need to halt progress in the development/itteration phase for those who are helping to move forward the format. -[http://suda.co.uk/ brian]&lt;br /&gt;
*** Considering any &amp;quot;exploration&amp;quot; &amp;quot;closed&amp;quot; regarding a microformat makes no sense at all when the work to complete the necessary pages per the [[process]] has yet to happen.  I'm moving this page to a name more reflecting of its consideration within the process, just notes. -Tantek&lt;br /&gt;
&lt;br /&gt;
== Notes from the Meetup ==&lt;br /&gt;
NOTES for the 2006-04-09 IRC Citation meetup&lt;br /&gt;
&lt;br /&gt;
ATTENDEES:&lt;br /&gt;
* briansuda&lt;br /&gt;
* bretonslivka&lt;br /&gt;
* darcusb&lt;br /&gt;
* dchud&lt;br /&gt;
* edsu&lt;br /&gt;
* fresco&lt;br /&gt;
* rsinger&lt;br /&gt;
&lt;br /&gt;
=== Discussion Topics: ===&lt;br /&gt;
==== What is a citation? ====&lt;br /&gt;
&lt;br /&gt;
Before launching into building a citation microformat, everyone should be on the same page as to what we are trying to define. So our working definition of a citation is:&lt;br /&gt;
&lt;br /&gt;
citation: a short description that points to a fuller description elsewhere, either in a note or a reference list&lt;br /&gt;
&lt;br /&gt;
reference item: a fuller description; also called a bibliographic entry or item&lt;br /&gt;
&lt;br /&gt;
bibliography: a collection of citations&lt;br /&gt;
&lt;br /&gt;
see: http://wiki.services.openoffice.org/wiki/Bibliographic_Project%27s_Developer_Page#Terminology&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Scope of this microformat  ====&lt;br /&gt;
3 Areas discussed:&lt;br /&gt;
&lt;br /&gt;
1. citation information about the current page&lt;br /&gt;
&lt;br /&gt;
2. citation information about a cited reference&lt;br /&gt;
&lt;br /&gt;
3. inline citations, a form of #2&lt;br /&gt;
&lt;br /&gt;
(these are 3 views of the same data)&lt;br /&gt;
&lt;br /&gt;
Reuse of existing microformats, hCard for authors and publishers, hCalendar for dates and times.&lt;br /&gt;
&lt;br /&gt;
Not a flat model.&lt;br /&gt;
&lt;br /&gt;
==== Formats discussed: ====&lt;br /&gt;
* DC &lt;br /&gt;
** Not strong enough by itself&lt;br /&gt;
** Most basic properties&lt;br /&gt;
&lt;br /&gt;
* DC+DCQ &lt;br /&gt;
** can be used for the locators (pages, volumes, etc.).&lt;br /&gt;
** The primary things from DCQ is the date stuff and the crucial isPartOf relation&lt;br /&gt;
&lt;br /&gt;
* OpenURL&lt;br /&gt;
** openurl uses community profiles, each with their own schema some of which borrow vocabulary from each other, each their own standalone document&lt;br /&gt;
** Openurl is good for getting granularity, whether or not openurl is used or not isn't all that important as long as the microformat creates a model that's 'compatible' with openurl&lt;br /&gt;
&lt;br /&gt;
* OpenDocument&lt;br /&gt;
** OpenDocument, there has been talk of adding an extensible metadata system based around modules, with default ones for DC and DCQ.&lt;br /&gt;
&lt;br /&gt;
* PRISM&lt;br /&gt;
** One problem with PRISM is the that the &amp;quot;number&amp;quot; property is problematic. It should distinguish issue and document numbers&lt;br /&gt;
&lt;br /&gt;
* MODS&lt;br /&gt;
&lt;br /&gt;
==== Other ideas: ====&lt;br /&gt;
The core set of properties should account for the following basic structures:&lt;br /&gt;
* References&lt;br /&gt;
* Collections&lt;br /&gt;
* Events (this can be handled by hCalendar)&lt;br /&gt;
* Agents (this can be handled by hCard)&lt;br /&gt;
&lt;br /&gt;
Collection includes subclasses like Periodical (and in turn Journal and such) and Series.&lt;br /&gt;
http://purl.org/net/biblio&lt;br /&gt;
&lt;br /&gt;
=== Conclusion: ===&lt;br /&gt;
Start a draft model for everyone to look into, another straw proposal&lt;br /&gt;
&lt;br /&gt;
== Current problems ==&lt;br /&gt;
&lt;br /&gt;
* Bibliographies published in HTML generally just use plain text (a URL is often included), but are sometimes produced from fully marked-up data, which is lost.&lt;br /&gt;
* inline citations often link to bibliography items, but use named anchors rather than fragment identifiers.&lt;br /&gt;
* There are multiple ways of adding self-descriptive data to web pages, such as meta tags -- with or without Dublin Core -- or embedded RDF.&lt;br /&gt;
** meta tags are nearly useless since their content is invisible. -Tantek&lt;br /&gt;
** I think there is some agreement that there may be some elements in a citation that are useful and probably ''should'' be included in the spec that are best left non-visible.  'Machine readable' is not nearly useless.  The problem with metatags isn't that they're useless, it's that they are hard to relate to specific content in a web page. --ross&lt;br /&gt;
&lt;br /&gt;
== Straw Proposals ==&lt;br /&gt;
'''These straw thoughts/proposals should be on the [[citation-brainstorming]] page, not here, along with some citation (so to speak ;) of the proposer. -Tantek'''&lt;br /&gt;
&lt;br /&gt;
=== Microformat for inline citations ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cite&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#ref-1&amp;quot;&amp;gt;1&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/cite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;cite&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;#ref-1&amp;quot;&amp;gt;Smith, 2002&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/cite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Microformat for a generic bibliography citation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;li class=&amp;quot;citation&amp;quot; id=&amp;quot;ref-1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://dx.doi.org/[DOI]&amp;quot;&amp;gt;[item title]&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;creator vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;n&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;[surname]&amp;lt;/span&amp;gt;, &lt;br /&gt;
  &amp;lt;abbr title=&amp;quot;[given-name]&amp;quot; class=&amp;quot;given-name&amp;quot;&amp;gt;[initial]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;creator vcard&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;n&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;family-name&amp;quot;&amp;gt;[surname]&amp;lt;/span&amp;gt;, &lt;br /&gt;
  &amp;lt;abbr title=&amp;quot;[given-name]&amp;quot; class=&amp;quot;given-name&amp;quot;&amp;gt;[initial]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;date-published&amp;quot; title=&amp;quot;YYYY-MM-DDTHH:MM:SS+ZZ:ZZ&amp;quot;&amp;gt;[year]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: for an full inline citation, the &amp;lt;pre&amp;gt;&amp;lt;li class=&amp;quot;citation&amp;quot; id=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/pre&amp;gt; would be replaced by &amp;lt;pre&amp;gt;&amp;lt;cite&amp;gt;&amp;lt;/cite&amp;gt;&amp;lt;/pre&amp;gt; and there would not be a link to a local fragment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: for a self citation, the &amp;lt;pre&amp;gt;&amp;lt;li class=&amp;quot;citation&amp;quot; id=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/pre&amp;gt; would be replaced by &amp;lt;pre&amp;gt;&amp;lt;span|div class=&amp;quot;citation self&amp;quot;&amp;gt;&amp;lt;/span|div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional elements for a journal article citation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class=&amp;quot;citation article&amp;quot;&lt;br /&gt;
&amp;lt;span class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://dx.doi.org/[doi]&amp;quot;&amp;gt;[journal title]&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;date-published&amp;quot; title=&amp;quot;YYYY-MM-DDTHH:MM:SS+ZZ:ZZ&amp;quot;&amp;gt;[year]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;volume&amp;quot;&amp;gt;[volume no.]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;issue&amp;quot;&amp;gt;[issue no.]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;uri&amp;quot; title=&amp;quot;urn:issn/[issn]&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pages&amp;quot;&amp;gt;[start-page]-[end-page]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;abbr class=&amp;quot;uri&amp;quot; title=&amp;quot;info:pmid/[PMID]&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* I changed &amp;quot;number&amp;quot; to &amp;quot;issue&amp;quot;. I also think that all of that content ought likely be moved out of the &amp;quot;container&amp;quot; wrapper into the root level. Finally, should not the container include another type class (&amp;quot;periodical&amp;quot; or &amp;quot;journal&amp;quot;)? -- bruce&lt;br /&gt;
** I thought you wanted the model not to be flat, ie the container should have its own attributes? --alf&lt;br /&gt;
*** I am not referring to things like titles, but rather only to the locator information (volume, issue, pages), and this is primarily for practical reasons. Those in fact are not characteristics of the container (periodical), but rather of the relationship between the article and issue, and then the issue and the periodical. E.g. to model it &amp;quot;properly&amp;quot; would suggest three levels (root, container/issue, collection/periodical), each with their own respective locators. So I was just thinking for those reasons to in general say these locators ought to be associated with the root. What do you think? -- bruce. Why not do three levels? -- alf.&lt;br /&gt;
**** It might be useful to define which elements would appear at each level.  If there are &amp;quot;universals&amp;quot; that would appear in any of kind of citation (although might have a different label/connotation based on context), what would they be?  Title?  Creator?  What else?  Then we can start figuring out the special elements for each &amp;quot;type&amp;quot; of citation. --ross&lt;br /&gt;
***** Titles is the obvious one that applies across the board: chapters, books, photographs, legal cases, court reporters, webpages, series, etc. all have titles. Likewise, they all have different kinds of contributors (including in many cases creators). But that's it I think.  -- bruce&lt;br /&gt;
***** See the generic format above: title, creator and date are pretty universal. --alf&lt;br /&gt;
&lt;br /&gt;
=== Additional elements for a book citation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class=&amp;quot;citation book&amp;quot;&lt;br /&gt;
&amp;lt;span class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;url&amp;quot; href=&amp;quot;http://dx.doi.org/[doi]&amp;quot;&amp;gt;[book title]&amp;lt;/a&amp;gt;&lt;br /&gt;
 &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;subtitle&amp;quot;&amp;gt;[book subtitle]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;publisher vcard&amp;quot;&amp;gt;[publisher]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;editor vcard&amp;quot;&amp;gt;[editor]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;date-published&amp;quot; title=&amp;quot;YYYY-MM-DDTHH:MM:SS+ZZ:ZZ&amp;quot;&amp;gt;[year]&amp;lt;/abbr&amp;gt;&lt;br /&gt;
 &amp;lt;abbr class=&amp;quot;uri&amp;quot; title=&amp;quot;urn:isbn:[isbn]&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;pages&amp;quot;&amp;gt;[start-page]-[end-page]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
BDarcus: this looks good. I wonder, though, about two issues.&lt;br /&gt;
&lt;br /&gt;
1. why not just title and abbreviatedTitle instead of title and subtitle?&lt;br /&gt;
&lt;br /&gt;
2. date-published with books in particular is a can of worms. My book, for example, has a copyright date of 2006 (which is what one would include in the citation) but an actual publication date sometime in late-2005. The specificity of date-published is thus misleading. What we're really talking about is a copyright date. I wonder if the above might not be better with two classes: date and copyright? So then these classes of dates: date, copyright, issued (more generic than published).  That slso fits dc and qualified dc.&lt;br /&gt;
*This seems complicated (of course, it's ''all'' complicated) because there's an assumption that the citation creator will actually know which of these the date actually is.  It seems like a generic date field that can be qualified with &amp;quot;published&amp;quot; or &amp;quot;copyright&amp;quot; or &amp;quot;actual year the conference happened&amp;quot;, etc. would be more user-friendly.&lt;br /&gt;
** Ross, yes, that's what I had in mind (but didn't explain very well). A generic &amp;quot;date&amp;quot; class ought to work for most cases, but leave room to add further qualfiers if necessary. -- bruce&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=h-card&amp;diff=65816</id>
		<title>h-card</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=h-card&amp;diff=65816"/>
		<updated>2016-12-19T19:17:18Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Implementations */ adding a few implementations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;h-card&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt; (&amp;lt;span class=&amp;quot;p-role role&amp;quot;&amp;gt;Editor&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;h-card&amp;lt;/dfn&amp;gt; is a simple, open format for publishing people and organisations on the web. h-card is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML/HTML5.&lt;br /&gt;
&lt;br /&gt;
h-card is the [[microformats2]] update to [[hCard]].&lt;br /&gt;
&lt;br /&gt;
{{cc0-owfa-license}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a simple minimal person example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;a class=&amp;quot;h-card&amp;quot; href=&amp;quot;http://example.com&amp;quot;&amp;gt;Joe Bloggs&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON: &lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        &amp;quot;h-card&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Joe Bloggs&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&lt;br /&gt;
          &amp;quot;http://example.com&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And a slightly more complete example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img class=&amp;quot;u-photo&amp;quot; src=&amp;quot;http://example.org/photo.png&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot; href=&amp;quot;http://example.org&amp;quot;&amp;gt;Joe Bloggs&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;u-email&amp;quot; href=&amp;quot;mailto:joebloggs@example.com&amp;quot;&amp;gt;joebloggs@example.com&amp;lt;/a&amp;gt;, &lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;17 Austerstræti&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Reykjavík&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-country-name&amp;quot;&amp;gt;Iceland&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        &amp;quot;h-card&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;photo&amp;quot;: [&lt;br /&gt;
          &amp;quot;http://example.org/photo.png&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Joe Bloggs&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;url&amp;quot;: [&lt;br /&gt;
          &amp;quot;http://example.org&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;email&amp;quot;: [&lt;br /&gt;
          &amp;quot;mailto:joebloggs@example.com&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;street-address&amp;quot;: [&lt;br /&gt;
          &amp;quot;17 Austerstræti&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;locality&amp;quot;: [&lt;br /&gt;
          &amp;quot;Reykjavík&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;country-name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Iceland&amp;quot;&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nested h-card example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;p-name u-url&amp;quot;&lt;br /&gt;
     href=&amp;quot;http://blog.lizardwrangler.com/&amp;quot; &lt;br /&gt;
    &amp;gt;Mitchell Baker&amp;lt;/a&amp;gt; &lt;br /&gt;
  (&amp;lt;a class=&amp;quot;p-org h-card&amp;quot; &lt;br /&gt;
      href=&amp;quot;http://mozilla.org/&amp;quot;&lt;br /&gt;
     &amp;gt;Mozilla Foundation&amp;lt;/a&amp;gt;)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [{ &lt;br /&gt;
    &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
    &amp;quot;properties&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: [&amp;quot;Mitchell Baker&amp;quot;],&lt;br /&gt;
      &amp;quot;url&amp;quot;: [&amp;quot;http://blog.lizardwrangler.com/&amp;quot;],&lt;br /&gt;
      &amp;quot;org&amp;quot;: [{&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mozilla Foundation&amp;quot;,&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Mozilla Foundation&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;http://mozilla.org/&amp;quot;]&lt;br /&gt;
        }&lt;br /&gt;
      }]&lt;br /&gt;
    }&lt;br /&gt;
  }]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the nested h-card has implied 'name' and 'url' properties, just like any other root-class-name-only h-card on an &amp;lt;code&amp;gt;&amp;amp;lt;a href&amp;amp;gt;&amp;lt;/code&amp;gt; would.&lt;br /&gt;
&lt;br /&gt;
=== Get started ===&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates the presence of an h-card.&lt;br /&gt;
&lt;br /&gt;
For minimal examples where at most &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt; are required (such as the first given above), only the root class name is needed — see [[microformats-2-implied-properties|implied properties]].&lt;br /&gt;
&lt;br /&gt;
For more complex examples, the root class name must be placed on an element which encloses all the desired properties, and then the properties themselves marked up using the classnames given below.&lt;br /&gt;
&lt;br /&gt;
See [[microformats2-parsing]] to learn more about property classnames.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
h-card properties, inside an element with class '''h-card''':&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - The full/formatted name of the person or organisation&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-prefix&amp;lt;/code&amp;gt;''' - e.g. Mrs., Mr. or Dr.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-given-name&amp;lt;/code&amp;gt;''' - given (often first) name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-additional-name&amp;lt;/code&amp;gt;''' - other/middle name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-family-name&amp;lt;/code&amp;gt;''' - family (often last) name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sort-string&amp;lt;/code&amp;gt;''' - string to sort by&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-honorific-suffix&amp;lt;/code&amp;gt;''' - e.g. Ph.D, Esq.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-nickname&amp;lt;/code&amp;gt;''' - nickname/alias/handle&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-email&amp;lt;/code&amp;gt;''' - email address&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-logo&amp;lt;/code&amp;gt;''' - a logo representing the person or organisation&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-photo&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - home page&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;''' - universally unique identifier, typically canonical URL&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - category/tag&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt;''' - postal address, optionally embed an [[h-adr]] {{main|h-adr}}&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-post-office-box&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-extended-address&amp;lt;/code&amp;gt;''' - apartment/suite/room name/number if any&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-street-address&amp;lt;/code&amp;gt;''' - street number + name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-locality&amp;lt;/code&amp;gt;''' - city/town/village&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-region&amp;lt;/code&amp;gt;''' - state/county/province&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-postal-code&amp;lt;/code&amp;gt;''' - postal code, e.g. US ZIP&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-country-name&amp;lt;/code&amp;gt;''' - country name&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-label&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-geo&amp;lt;/code&amp;gt;''' or '''&amp;lt;code&amp;gt;u-geo&amp;lt;/code&amp;gt;''', optionally embed an [[h-geo]] {{main|h-geo}}&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - decimal latitude&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - decimal longitude&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-altitude&amp;lt;/code&amp;gt;''' - decimal altitude&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tel&amp;lt;/code&amp;gt;''' - telephone number&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-note&amp;lt;/code&amp;gt;''' - additional notes&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-bday&amp;lt;/code&amp;gt;''' - birth date&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-key&amp;lt;/code&amp;gt;''' - cryptographic public key e.g. SSH or GPG&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-org&amp;lt;/code&amp;gt;''' - affiliated organization, optionally embed an [[h-card]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-job-title&amp;lt;/code&amp;gt;''' - job title, previously 'title' in [[hCard]], disambiguated.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-role&amp;lt;/code&amp;gt;''' - description of role &lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-impp&amp;lt;/code&amp;gt;''' per RFC4770, new in vCard4 (RFC 6350)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-sex&amp;lt;/code&amp;gt;''' - biological sex, new in vCard4 (RFC 6350)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-gender-identity&amp;lt;/code&amp;gt;''' - gender identity, new in vCard4 (RFC 6350)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-anniversary&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
All properties are optional.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
'''h-card''' is a microformats.org draft specification. Public discussion on h-card takes place on [[h-card-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
h-card is ready to use and implemented in the wild, but for backwards compatibility you should also mark up top-level h-cards as classic [[hCard]]s.&lt;br /&gt;
&lt;br /&gt;
== Property Details ==&lt;br /&gt;
(stub, to be expanded)&lt;br /&gt;
&lt;br /&gt;
=== p-adr ===&lt;br /&gt;
&amp;lt;code&amp;gt;p-adr&amp;lt;/code&amp;gt; can optionally embed an [[h-adr]] to cluster associated structured address properties. E.g. adding &amp;quot;p-adr&amp;quot; to the example earlier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-card&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-name&amp;quot;&amp;gt;Joe Bloggs&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-adr h-adr&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-street-address&amp;quot;&amp;gt;17 Austerstræti&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-locality&amp;quot;&amp;gt;Reykjavík&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;p-country-name&amp;quot;&amp;gt;Iceland&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: Why would you use &amp;quot;p-adr&amp;quot; to cluster associated structured address properties?&lt;br /&gt;
&lt;br /&gt;
A: Because if you have more than one structured address, clustering which properties go with which address keeps them deterministically together, instead of depending on array indices or other heuristics.&lt;br /&gt;
&lt;br /&gt;
=== p-tel ===&lt;br /&gt;
Note: use of 'value' within 'p-tel' should be automatically handled by the support of the [[value-class-pattern]]. And for now, the former [[hCard]] 'type' subproperty of 'tel' is dropped/ignored. If there is demonstrable documented need for additional tel types (e.g. fax), we can introduce new flat properties as needed (e.g. p-tel-fax).&lt;br /&gt;
&lt;br /&gt;
=== dt-bday ===&lt;br /&gt;
Using truncated representations of dates for birth date is often good practice as noted in [https://tools.ietf.org/html/rfc6350#section-4.3.1 the vcard spec] eg&lt;br /&gt;
* &amp;lt;code&amp;gt;1985-04&amp;lt;/code&amp;gt; for April 1985&lt;br /&gt;
* &amp;lt;code&amp;gt;1985&amp;lt;/code&amp;gt; for the year 1985&lt;br /&gt;
* &amp;lt;code&amp;gt;--04-12&amp;lt;/code&amp;gt; for April 12th with no specified year&lt;br /&gt;
&lt;br /&gt;
=== Reserved properties ===&lt;br /&gt;
Reserved properties (not used much, if at all, in practice):&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-organization-unit&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-tz&amp;lt;/code&amp;gt;''' - timezone offset, e.g. &amp;lt;code&amp;gt;&amp;amp;lt;data class=&amp;quot;p-tz&amp;quot; value=&amp;quot;-0800&amp;quot;&amp;gt;PST&amp;amp;lt;/data&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-rev&amp;lt;/code&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Real world in the wild examples of sites and services that publish or consume h-card:&lt;br /&gt;
&lt;br /&gt;
* ... add uses of h-card you see in the wild here.&lt;br /&gt;
* App.net rolled out support for h-card and h-entry on all profile pages and permalink pages as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* Brett Comnes marks up his posts with h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* Ben Werdmuller marks up his homepage and posts with h-card [http://werd.io/view/51d5097fbed7ded0633a5956 example])&lt;br /&gt;
* Sandeep Shetty marks his homepage and posts up with h-card and h-entry ([sandeep.io/101 example])&lt;br /&gt;
* [http://eschnou.com/ Laurent Eschenauer] marks his homepage profile up using h-card&lt;br /&gt;
* [http://tommorris.org/ Tom Morris] marks himself up with h-card as well as venues he’s checked into ([http://tommorris.org/posts/8408 example])&lt;br /&gt;
* [http://www.w3.org/conf/ W3Conf 2013] uses h-card for all the event speakers and notable attendees. The h-cards make particularly good use of implied name, url, and photo properties.&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry and h-as-*&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card markup on their homepage and individual thoughts pages&lt;br /&gt;
* Tom Morris uses h-card and [[XFN]] to markup [http://tommorris.org/pages/blogroll his blogroll].&lt;br /&gt;
* Aaron Parecki uses h-card to markup both authorship and references to people in his notes permalinks, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [http://tantek.com/ Tantek Çelik] uses h-card  on his home page as well as within [[h-entry]]s on permalink pages to indicate authorship.&lt;br /&gt;
* [http://waterpigs.co.uk/ Barnaby Walters] uses h-card on his home page, as well as within h-entries for notes and articles, both to indicate authorship and also when mentioning people within the body of the notes.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/microformats microformats.org at 7 years] presentation with and h-card markup for people and organizations.&lt;br /&gt;
* [http://tantek.com/presentations/2012/06/pdf2012-indieweb.html Rise of the Indie Web hCards] (from Personal Democracy Forum 2012 #pdf12 #pdf2012) has [[microformats2]] h-card markup&lt;br /&gt;
* WebMaker by Mozilla has [[microformats2]] h-card on event search (e.g. [https://webmaker.org/en-US/events/near/?lat=45.5234515&amp;amp;lng=-122.6762071 search near Portland Oregon]) and event pages (e.g. [https://webmaker.org/en-US/events/192f56eb9/ IndieWebCamp 2012]).[https://twitter.com/microformats/status/212207925643587585]&lt;br /&gt;
* WebFWD by Mozilla has [[microformats2]] h-card markup on [https://webfwd.org/about/experts/ experts] and [https://webfwd.org/about/team/ team] pages&lt;br /&gt;
* [http://indiewebcamp.com IndieWebCamp] has [[microformats2]] h-event markup with embedded h-cards for the organizers and the location.&lt;br /&gt;
* [https://wiki.mozilla.org/Events Mozilla Events] page has [[microformats2]] h-event markup with attendees marked up with h-card.&lt;br /&gt;
* [https://tristanthomas.me Tristan Thomas] uses h-card on his home page&lt;br /&gt;
* [http://cold32.com/about-the-author-and-contact.htm Cold32.com] uses h-card (and h-geo) on its about-the-author-and-contact page&lt;br /&gt;
* [https://workfrom.co/ Workfrom.co] renders h-cards for venues (e.g. [https://workfrom.co/palio-dessert-and-espresso-house])&lt;br /&gt;
* [http://www.pcwdld.com/ PCWDLD.com] renders h-cards for download pages(e.g. [http://www.pcwdld.com/solarwinds-network-topology-mapper-review Download page example])&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with minimal h-cards inside h-entry&lt;br /&gt;
&lt;br /&gt;
== Validating ==&lt;br /&gt;
* '''[http://indiewebify.waterpigs.co.uk/validate-h-card/ indiewebify.me h-card validator]''' parses [[h-card]] markup and makes suggestions for things to add, with code samples&lt;br /&gt;
{{h-spec-section-validating}}&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
Software implementations that publish or consume h-card, including themes, plugins, or extensions:&lt;br /&gt;
&lt;br /&gt;
(This section is a stub that needs expansion! In practice, nearly every CMS on every [https://indieweb.org/ indie web] site supports publishing h-card by default.)&lt;br /&gt;
&lt;br /&gt;
When adding an implementation, please provide and link to its home page and open source repo if any.&lt;br /&gt;
* [https://gnu.io/social/ GNUsocial] [https://git.gnu.io/gnu/gnu-social/ source code]&lt;br /&gt;
* [https://hubzilla.org/hubzilla/ Hubzilla] [https://github.org/redmatrix/hubzilla source code]&lt;br /&gt;
* [http://friendica.com/ Friendica] [https://github.org/friendica/friendica source code]&lt;br /&gt;
* [http://github.com/dissolve/inkblot InkBlot]&lt;br /&gt;
* ...&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Backward Compatibility ==&lt;br /&gt;
=== Publisher Compatibility ===&lt;br /&gt;
For backward compatibility, you may wish to use classic [[hCard]] classnames in addition to the more future-proof h-card properties, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;Joe Bloggs&amp;lt;/span&amp;gt;,&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-org org&amp;quot;&amp;gt;Awesome Nonprofit&amp;lt;/span&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt;''' is a ''backward compatible root class name'' that indicates the presence of an [[hCard]].&lt;br /&gt;
&lt;br /&gt;
'''fn''', '''org''', and all the other backward compatibility hCard property class names are listed below.&lt;br /&gt;
&lt;br /&gt;
=== Parser Compatibility ===&lt;br /&gt;
Microformats parsers {{should}} detect classic properties only if a classic root class name is found and parse them as microformats2 properties. &lt;br /&gt;
&lt;br /&gt;
If an &amp;quot;h-card&amp;quot; is found, don't look for a &amp;quot;vcard&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
Compat. root class name: &amp;lt;code id=&amp;quot;vcard&amp;quot;&amp;gt;vcard&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Properties: (parsed as '''p-''' plain text unless otherwise specified)&lt;br /&gt;
* &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-prefix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;given-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;additional-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;family-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;honorific-suffix&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;nickname&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;logo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;uid&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-adr h-adr&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;adr&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;extended-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;locality&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;region&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-geo h-geo&amp;lt;/code&amp;gt;''' including compat root class &amp;lt;code&amp;gt;geo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bday&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; - parse as '''u-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;org&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-name&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;organization-unit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; - parse as '''p-job-title'''&lt;br /&gt;
* &amp;lt;code&amp;gt;role&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reserved: (backward compat properties that parsers {{may}} implement, if they do, they {{must}} implement in this way:&lt;br /&gt;
* &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rev&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
This work is based on the existing [[hCard]] and [[vcard]] specifications.&lt;br /&gt;
&lt;br /&gt;
== Design Principles ==&lt;br /&gt;
&lt;br /&gt;
(stub, expand)&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
We've tried very hard with h-card to stay compatible with the vCard4 vocabulary, and thus additions should be proposed on the vCard4 mailing list.&lt;br /&gt;
&lt;br /&gt;
However, you may still use this wiki to capture additions for h-card here:&lt;br /&gt;
* [[h-card-brainstorming]]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* [[h-adr]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[hCard]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=h-entry&amp;diff=65815</id>
		<title>h-entry</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=h-entry&amp;diff=65815"/>
		<updated>2016-12-19T19:15:27Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Implementations */ add a few implementations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;h-entry&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;h-entry&amp;lt;/dfn&amp;gt; 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]] standards suitable for embedding data in HTML/HTML5.&lt;br /&gt;
&lt;br /&gt;
h-entry is the [[microformats2]] update to [[hAtom]]'s &amp;quot;hentry&amp;quot;. For an update to &amp;quot;hfeed&amp;quot; see [[h-feed]].&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;span id=&amp;quot;Status&amp;quot;&amp;gt;Status&amp;lt;/span&amp;gt;&lt;br /&gt;
:This is a '''Living Specification''' yet mature enough to encourage additional implementations and [[h-entry-issues|feedback]]. This specification has portions that are stable, draft, and proposed. Features are stable unless explicitly labeled draft or proposed, or in draft or proposed sections. Draft and proposed features are likely to change substantively. While substantive changes to stable features are unexpected, it is a living specification subject to substantive change by issues and errata filed in response to implementation experience, requiring consensus among participating implementers as part of an explicit [[#change_control|change control]] process. &lt;br /&gt;
;Participate&lt;br /&gt;
:[https://github.com/microformats/h-entry/issues Open Issues]&lt;br /&gt;
:[[h-entry-issues|Resolved issues before 2012-246]]&lt;br /&gt;
:[[IRC]]: [irc://irc.freenode.net/microformats #microformats on Freenode]&lt;br /&gt;
&amp;lt;div class=&amp;quot;p-author h-card vcard&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;span class=&amp;quot;p-role role&amp;quot;&amp;gt;Editor&amp;lt;/span&amp;gt;&lt;br /&gt;
:&amp;lt;span class=&amp;quot;p-name fn&amp;quot;&amp;gt;[[User:Tantek|Tantek Çelik]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
;License&lt;br /&gt;
: {{cc0-owfa-license}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a simple blog post example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;article class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1 class=&amp;quot;p-name&amp;quot;&amp;gt;Microformats are amazing&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Published by &amp;lt;a class=&amp;quot;p-author h-card&amp;quot; href=&amp;quot;http://example.com&amp;quot;&amp;gt;W. Developer&amp;lt;/a&amp;gt;&lt;br /&gt;
     on &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2013-06-13 12:00:00&amp;quot;&amp;gt;13&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; June 2013&amp;lt;/time&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-summary&amp;quot;&amp;gt;In which I extoll the virtues of using microformats.&amp;lt;/p&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;div class=&amp;quot;e-content&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Blah blah blah&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/article&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parsed JSON:&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;type&amp;quot;: [&lt;br /&gt;
        &amp;quot;h-entry&amp;quot;&lt;br /&gt;
      ],&lt;br /&gt;
      &amp;quot;properties&amp;quot;: {&lt;br /&gt;
        &amp;quot;name&amp;quot;: [&lt;br /&gt;
          &amp;quot;Microformats are amazing&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;author&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;W. Developer&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: [&lt;br /&gt;
              &amp;quot;h-card&amp;quot;&lt;br /&gt;
            ],&lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
              &amp;quot;name&amp;quot;: [&lt;br /&gt;
                &amp;quot;W. Developer&amp;quot;&lt;br /&gt;
              ],&lt;br /&gt;
              &amp;quot;url&amp;quot;: [&lt;br /&gt;
                &amp;quot;http://example.com&amp;quot;&lt;br /&gt;
              ]&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;published&amp;quot;: [&lt;br /&gt;
          &amp;quot;2013-06-13 12:00:00&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;summary&amp;quot;: [&lt;br /&gt;
          &amp;quot;In which I extoll the virtues of using microformats.&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Blah blah blah&amp;quot;,&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Blah blah blah&amp;lt;/p&amp;gt;&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Get started ===&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates the presence of an h-entry.&lt;br /&gt;
&lt;br /&gt;
'''p-name''', '''p-author''', '''dt-published''' and the other h-entry property classnames listed below define properties of the h-entry.&lt;br /&gt;
&lt;br /&gt;
See [[microformats2-parsing]] to learn more about property classnames.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
h-entry properties, inside an element with class '''h-entry'''. All properties are optional.&lt;br /&gt;
&lt;br /&gt;
=== Core Properties ===&lt;br /&gt;
The following ''core'' h-entry properties have broad consensus and are broadly interoperably published and consumed:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - entry name/title&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - short entry summary&lt;br /&gt;
* '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;''' - full content of the entry&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;''' - when the entry was published&lt;br /&gt;
* '''&amp;lt;code&amp;gt;dt-updated&amp;lt;/code&amp;gt;''' - when the entry was updated&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-author&amp;lt;/code&amp;gt;''' - who wrote the entry, optionally embedded [[h-card]](s)&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' - entry categories/tags&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' - entry permalink URL&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-uid&amp;lt;/code&amp;gt;''' - universally unique identifier, typically canonical entry URL&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;''' - location the entry was posted from, optionally embed [[h-card]], [[h-adr]], or [[h-geo]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-syndication&amp;lt;/code&amp;gt;''' - URL(s) of syndicated copies of this post. The property equivalent of [[rel-syndication]] ([http://erinjo.is/2014/checked-into-rockit-colabs-23 example])&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-in-reply-to&amp;lt;/code&amp;gt;''' - the URL which the h-entry is considered reply to (i.e. doesn’t make sense without context, could show up in comment thread), optionally an embedded [[h-cite]] ([http://indiewebcamp.com/reply-context reply-context]) ([http://waterpigs.co.uk/notes/4V2DjG/ example])&lt;br /&gt;
* '''&amp;lt;code id=&amp;quot;p-rsvp&amp;quot;&amp;gt;p-rsvp&amp;lt;/code&amp;gt;''' (enum, use &amp;amp;lt;data&amp;gt; element or [[value-class-pattern]])&lt;br /&gt;
** &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, &amp;quot;maybe&amp;quot;, &amp;quot;interested&amp;quot;. Case-insensitive values, normalized to lowercase. Examples:&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;... &amp;lt;data class=&amp;quot;p-rsvp&amp;quot; value=&amp;quot;yes&amp;quot;&amp;gt;is going&amp;lt;/data&amp;gt; to ...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, or&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;... &amp;lt;data class=&amp;quot;p-rsvp&amp;quot; value=&amp;quot;maybe&amp;quot;&amp;gt;might go&amp;lt;/data&amp;gt; to ...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;... &amp;lt;data class=&amp;quot;p-rsvp&amp;quot; value=&amp;quot;no&amp;quot;&amp;gt;unable to go&amp;lt;/data&amp;gt; to ...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;... &amp;lt;data class=&amp;quot;p-rsvp&amp;quot; value=&amp;quot;interested&amp;quot;&amp;gt;am interested/tracking/watching&amp;lt;/data&amp;gt;  ...&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Draft Properties ===&lt;br /&gt;
The following draft properties are in use in the wild (published and consumed), and are under strong consideration, but are not yet part of the core:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code id=&amp;quot;p-comment&amp;quot;&amp;gt;p-comment&amp;lt;/code&amp;gt;''' - optionally embedded (or nested?) [[h-cite]](s), each of which is a comment on/reply to the parent h-entry. See [[comment-brainstorming]] ([http://waterpigs.co.uk/notes/4V2DjG/ example])&lt;br /&gt;
* '''&amp;lt;code id=&amp;quot;u-like-of&amp;quot;&amp;gt;u-like-of&amp;lt;/code&amp;gt;''' - the URL which the h-entry is considered a “like” (favorite, star) of. Optionally an embedded [[h-cite]] ([http://barryfrost.com/posts/11 example])&lt;br /&gt;
* '''&amp;lt;code id=&amp;quot;u-repost-of&amp;quot;&amp;gt;u-repost-of&amp;lt;/code&amp;gt;''' - the URL which the h-entry is considered a “repost” of. Optionally an embedded [[h-cite]].&lt;br /&gt;
* '''&amp;lt;code id=&amp;quot;u-photo&amp;quot;&amp;gt;u-photo&amp;lt;/code&amp;gt;''' - one or more photos that is/are considered the primary content of the entry, unless there is a &amp;lt;code&amp;gt;p-location h-card&amp;lt;/code&amp;gt;, which is still considered a &amp;quot;checkin&amp;quot; (i.e. with a photo). Otherwise the presence of a u-photo means the name of the entry should be interpreted as a caption on the photo, and the summary/content should be interpreted as a description of the photo.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-video&amp;lt;/code&amp;gt;''' - special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;video src&amp;gt; &amp;amp; &amp;amp;lt;source src&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Proposed Additions ===&lt;br /&gt;
The following properties are proposed additions based on various use-cases, such as existing [[link-preview-brainstorming|link preview]] markup conventions, but are awaiting citations of use across multiple sites in the wild, and at least one reader / real world consuming code example:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-audio&amp;lt;/code&amp;gt;''' - special u- parsing rules for &amp;lt;code&amp;gt;&amp;amp;lt;audio src&amp;gt; &amp;amp; &amp;amp;lt;source src&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-like&amp;lt;/code&amp;gt;''' - similar to p-comment, URL to a like post of the current post, e.g. in a responses list or facepile.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-repost&amp;lt;/code&amp;gt;''' - similar to u-like, URL to a repost of the current post, e.g. in a responses list or facepile.&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-featured&amp;lt;/code&amp;gt;''' - a representative photo or image for the entry, e.g. primary photo for an article or subject-cropped photo, suitable for use in a [[link-preview]].&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-latitude&amp;lt;/code&amp;gt;''' - latitude of the location of the entry&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-longitude&amp;lt;/code&amp;gt;''' - longitude of the location of the entry&lt;br /&gt;
&lt;br /&gt;
The following interpretation is also proposed addition:&lt;br /&gt;
* if the &amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt; is also an embedded [[h-card]], the entry is treated as a &amp;quot;checkin&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Property Details ==&lt;br /&gt;
This section is a stub.&lt;br /&gt;
=== p-location ===&lt;br /&gt;
'''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;''' has been re-used from [[h-event]].&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
=== p-name of a note ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''What is the &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt; of a [http://indiewebcamp.com/note note]?'''&lt;br /&gt;
** A few options, from simplest to most detailed.&lt;br /&gt;
*** '''same as the p-content/e-content''' property.&lt;br /&gt;
*** '''same as the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
*** '''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 &amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;. Similarly if only a portion of the content is syndicated to other sites, that portion can be marked up as the &amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== venue an entry was posted from ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''How do you indicate a named venue where an entry was posted from? Like a restaurant or park.'''&lt;br /&gt;
** Use an embedded [[h-card]] microformat on a &amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt; property value.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== address an entry was posted from ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''How do you indicate the address where an entry was posted from? Like a restaurant or park.'''&lt;br /&gt;
** If the address is just part of a named venue, see above, use an [[h-card]]&lt;br /&gt;
** Otherwise use an embedded [[h-adr]] microformat on a &amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt; property value.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== lat long an entry was posted from ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''How do you indicate the latitude and longitude of where an entry was posted from?'''&lt;br /&gt;
** If the location has a name in addition to latitude and longitude, see above, use an [[h-card]]&lt;br /&gt;
** Otherwise if there is an address in addition to latitude and longitude, see above, use an [[h-adr]]&lt;br /&gt;
** Otherwise use an embedded [[h-geo]] microformat on a &amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt; property value.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== dt-published property and HTML5 time element ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* '''Does the dt-published property need to be a time element?'''&lt;br /&gt;
** The &amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt; property should be a &amp;lt;code&amp;gt;&amp;amp;lt;time&amp;amp;gt;&amp;lt;/code&amp;gt; element so that you can take advantage of HTML5's &amp;quot;datetime&amp;quot; property.&lt;br /&gt;
** This lets you specify a human-readable date in the value of the attribute, and the ISO8601 machine-readable date in the &amp;quot;datetime&amp;quot; property.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== what is the bare minimum list of required properties on an h-entry ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* What is the bare minimum list of required properties on an h-entry?&lt;br /&gt;
** No properties are explicitly required, but in practice a h-entry should have the following properties at a minimum for consumers:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; (can be implied)&lt;br /&gt;
* &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt; (can be implied)&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; — if there is no &amp;quot;published&amp;quot; date for the &amp;quot;entry&amp;quot;, then reconsider whether it is correct (or worth) marking it up as an entry.&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* What properties should an h-entry have in addition to the bare minimum?&lt;br /&gt;
** Beyond the bare minimum, a typical h-entry should have the following as well:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;summary&amp;lt;/code&amp;gt; at least) - especially for structured content. For a plain text note, the content/summary (whichever is used) should be the same as the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, otherwise it will be implied from the text content of the root element.&lt;br /&gt;
* &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; - for explicitly named/titled entries. Otherwise the entry is assumed to be a &amp;quot;title-less&amp;quot; note (like a tweet).&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including a nested &amp;lt;code&amp;gt;[[h-card]]&amp;lt;/code&amp;gt; with author details like name, photo, url.&lt;br /&gt;
&lt;br /&gt;
== Examples in the wild ==&lt;br /&gt;
Real world in the wild examples of sites and services that publish or consume h-entry:&lt;br /&gt;
&lt;br /&gt;
* ... add uses of h-entry you see in the wild here.&lt;br /&gt;
* ind.ie mark up their [https://ind.ie/blog blog] listing and [https://ind.ie/blog/autumn-events-2014/ permalink] pages with h-entry&lt;br /&gt;
* David John Mead marks up his profile, blog posts and comments with h-card, h-entry and h-cite on [http://davidjohnmead.com davidjohnmead.com]&lt;br /&gt;
* [[User:Brian|Brian Suda]] marks up his blog posts up with h-entry and h-card on [http://optional.is/required/ optional.is]&lt;br /&gt;
* Ashton McAllen marks up his blog posts, reposts, comments and likes with h-entry, h-card and h-cite on [http://acegiak.net/ acegiak.net]&lt;br /&gt;
* Emma Kuo marks up her blog posts and notes with h-entry and h-card on [http://notenoughneon.com/ notenoughneon.com]&lt;br /&gt;
* Scott Jenson marks up his blog posts with h-entry and h-card on [http://jenson.org/ jenson.org]&lt;br /&gt;
* Emily McAllen marks up her blog posts with h-entry and h-card on [http://blackwoolholiday.com/ blackwoolholiday.com]&lt;br /&gt;
* Ryan Barrett marks up his blog posts, notes, replies and likes with h-entry and h-card on [https://snarfed.org/ snarfed.org]&lt;br /&gt;
* Barry Frost marks up his notes with h-entry, h-card and h-cite on [http://barryfrost.com/ barryfrost.com]&lt;br /&gt;
* Amber Case marks up her profile, blog posts, replies and notes with h-entry and h-card on [http://caseorganic.com/ caseorganic.com]&lt;br /&gt;
* Johannes Ernst marks up his blog posts with h-entry on [http://upon2020.com/blog/ upon2020.com]&lt;br /&gt;
* Michiel de Jong marks up his profile and notes with h-entry and h-card on [https://michielbdejong.com/ michielbdejong.com]&lt;br /&gt;
* Mike Taylor marks up his profile and blog posts with h-card and h-entry on [https://bear.im/bearlog/ bear.im]&lt;br /&gt;
* Erin Jo Ritchey marks up her profile, posts and comments using h-card, h-entry and h-cite with idno on [http://erinjo.is/ erinjo.is]&lt;br /&gt;
* Jeena Paradies marks up his profile, blog posts, notes and comments using h-card, h-entry and h-cite on [https://jeena.net/ jeena.net]&lt;br /&gt;
* Andy Sylvester marks up his profile, blog posts and comments using h-card and h-entry on [http://andysylvester.com/2014/03/01/howto-setting-up-the-selfoss-feed-reader-with-microformats-support/ andysylvester.com] (note: as of 2014-03-13 using h-entry for comments instead of correct h-cite --[[User:Barnabywalters|bw]] 14:44, 13 March 2014 (UTC))&lt;br /&gt;
* Chloe Weil marks up her blog posts with h-entry on [http://chloeweil.com/blog chloeweil.com]&lt;br /&gt;
* Christophe Ducamp marks up his blog posts and profile with h-entry and h-card on [http://christopheducamp.com/ christopheducamp.com]&lt;br /&gt;
* Glenn Jones marks up his blog posts, notes, replies, profile and comments with h-entry, h-card and h-cite on [http://glennjones.net/ glennjones.net]&lt;br /&gt;
* Marcus Povey marks up his blog posts and profile with h-entry and h-card on [http://www.marcus-povey.co.uk/ marcus-povey.co.uk]&lt;br /&gt;
* Matthias Pfefferle marks up his blog posts, comments and profile with h-card, h-cite and h-entry on [http://notizblog.org/ notizblog.org]&lt;br /&gt;
* Kyle Mahan marks up his profile and notes with h-card and h-entry on [http://kylewm.com/ kylewm.com]&lt;br /&gt;
* Okinawan-lyrics marks up his posts with h-entry and h-card ([http://www.okinawan-lyrics.com/ example])&lt;br /&gt;
* App.net marks up profile pages and permalink pages with h-entry as of 2013-08-06 ([https://alpha.app.net/voidfiles example])&lt;br /&gt;
* The Twitter archive browser UI uses h-entry and h-card internally, unfortunately it’s not exposed as HTML in static files anywhere&lt;br /&gt;
* Brett Comnes marks up his posts with h-entry and h-card ([http://bret.io/2013/06/29/getting-started-with-bower/ example])&lt;br /&gt;
* 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])&lt;br /&gt;
* 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])&lt;br /&gt;
* Laurent Eschenauer marks up his posts with h-entry ([http://eschnou.com/entry/first-autonomous-flight-of-my-nodecopter-62-24992.html example])&lt;br /&gt;
* Tom Morris marks up his posts using h-entry ([http://tommorris.org/posts/8417 example])&lt;br /&gt;
* Numerous newer W3C specs, e.g.&lt;br /&gt;
** [http://www.w3.org/TR/2013/CR-css3-values-20130404/ CSS Values and Units Module Level 3 - 2013-04-04]&lt;br /&gt;
** [http://www.w3.org/TR/2013/CR-css3-conditional-20130404/ CSS Conditional Rules Module Level 3 - 2013-04-04]&lt;br /&gt;
** [http://www.w3.org/TR/2013/WD-css3-page-20130314/ CSS Paged Media Module Level 3 - 2013-03-14]&lt;br /&gt;
** [http://www.w3.org/TR/2013/WD-css-counter-styles-3-20130221/ CSS Counter Styles Level 3 - 2013-02-21]&lt;br /&gt;
* [http://wordpress.org/extend/themes/sempress SemPress] is a WordPress theme that supports h-card, h-feed/h-entry.&lt;br /&gt;
* [http://the-pastry-box-project.net/ The Pastry Box Project] use h-card and h-entry markup on their homepage and individual thoughts pages&lt;br /&gt;
* Aaron Parecki uses h-entry to mark up notes, e.g. [http://aaronparecki.com/2012/230/reply/1 2012/230/reply/1].&lt;br /&gt;
* [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&lt;br /&gt;
* [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].&lt;br /&gt;
&lt;br /&gt;
=== offline ===&lt;br /&gt;
* spreadly marks up share permalink pages with h-entry, as well as minimal h-cards and experimental p-like properties&lt;br /&gt;
&lt;br /&gt;
== Validating ==&lt;br /&gt;
* '''[http://indiewebify.me/validate-h-entry/ indiewebify.me h-entry validator]''' parses [[h-entry]] markup, finds common errors and makes suggestions for things to add, with code samples&lt;br /&gt;
* '''[http://shrewdness.waterpigs.co.uk/test/ Shrewdness h-entry/h-feed validator]''' shows how shrewdness interprets+displays h-entries, with original source and interim formats, works for single h-entries and feed pages&lt;br /&gt;
&lt;br /&gt;
{{h-spec-section-validating}}&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
Software implementations that publish or consume h-entry, including themes, plugins, or extensions:&lt;br /&gt;
&lt;br /&gt;
(This section is a stub that needs expansion! In practice, nearly every CMS on every [https://indieweb.org/ indie web] site supports publishing h-entry by default.)&lt;br /&gt;
&lt;br /&gt;
When adding an implementation, please provide and link to its home page and open source repo if any.&lt;br /&gt;
* [https://gnu.io/social/ GNUsocial] [https://git.gnu.io/gnu/gnu-social/ source code]&lt;br /&gt;
* [https://hubzilla.org/hubzilla/ Hubzilla] [https://github.org/redmatrix/hubzilla source code]&lt;br /&gt;
* [http://friendica.com/ Friendica] [https://github.org/friendica/friendica source code]&lt;br /&gt;
* [http://github.com/dissolve/inkblot InkBlot]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== Backward Compatibility ==&lt;br /&gt;
=== Publisher Compatibility ===&lt;br /&gt;
For backward compatibility with legacy [[hAtom]] consuming implementations, use [[hAtom]] classnames (or rel values) in addition to the more future-proof h-entry properties, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry hentry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1 class=&amp;quot;p-name entry-title&amp;quot;&amp;gt;My great blog post&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list of equivalent [[hAtom]] classnames and rel values is provided below.&lt;br /&gt;
&lt;br /&gt;
=== Parser Compatibility ===&lt;br /&gt;
Microformats parsers {{should}} detect classic properties only if a classic root class name is found and parse them as microformats2 properties. &lt;br /&gt;
&lt;br /&gt;
If an &amp;quot;h-entry&amp;quot; is found, don't look for an &amp;quot;hentry&amp;quot; on the same element.&lt;br /&gt;
&lt;br /&gt;
Compat root class name: &amp;lt;code id=&amp;quot;hentry&amp;quot;&amp;gt;hentry&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Properties: (parsed as '''p-''' plain text unless otherwise specified):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-title&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-summary&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;entry-content&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;e-content&amp;lt;/code&amp;gt;'''&lt;br /&gt;
* &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;updated&amp;lt;/code&amp;gt; - parse as '''dt-'''&lt;br /&gt;
* &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; - including compat root &amp;lt;code&amp;gt;vcard&amp;lt;/code&amp;gt; in the absence of &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=bookmark&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;'''. While not a class name nor typical microformats property, rel=bookmark was the only way to indicate an hentry permalink. Thus parsers should look for rel=bookmark hyperlinks inside an hentry, and take their &amp;quot;href&amp;quot; value as a value for a '''&amp;lt;code&amp;gt;u-url&amp;lt;/code&amp;gt;''' property, including handling any relative URL resolution.&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=tag&amp;lt;/code&amp;gt; - parse as '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''. While not a class name nor typical microformats property, rel=tag was the typical way to tag an hentry. Thus parsers should look for rel=tag hyperlinks inside an hentry, and take the last path segment of their &amp;quot;href&amp;quot; value as a value for a '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;''' property.&lt;br /&gt;
&lt;br /&gt;
Proposed:&lt;br /&gt;
* &amp;lt;code&amp;gt;time.entry-date[datetime]&amp;lt;/code&amp;gt; - in the absence of &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt;, parse as '''&amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt;'''. parse for the first &amp;lt;code&amp;gt;&amp;amp;lt;time&amp;amp;gt;&amp;lt;/code&amp;gt; element with class name of &amp;lt;code&amp;gt;entry-date&amp;lt;/code&amp;gt; and non-empty &amp;lt;code&amp;gt;datetime&amp;lt;/code&amp;gt; attribute inside an hentry, if there is no &amp;lt;code&amp;gt;published&amp;lt;/code&amp;gt; property, use that time element's &amp;lt;code&amp;gt;datetime&amp;lt;/code&amp;gt; attribute value for the &amp;lt;code&amp;gt;dt-published&amp;lt;/code&amp;gt; property. Evidence: default WordPress themes 2011-2014([https://wp-themes.com/twentyeleven/][https://wp-themes.com/twentytwelve/][https://wp-themes.com/twentythirteen/][https://wp-themes.com/twentyfourteen/]).&lt;br /&gt;
* &amp;lt;code&amp;gt;rel=author&amp;lt;/code&amp;gt; - in the absence of &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt;, parse as '''&amp;lt;code&amp;gt;u-author&amp;lt;/code&amp;gt;'''. While not a class name nor typical microformats property, rel=author was commonly used to link to an author's URL. Thus parsers should look for rel=author hyperlinks inside an hentry (or even on the same page, preceding the hentry), use the absolute version of it as a value for the '''&amp;lt;code&amp;gt;u-author&amp;lt;/code&amp;gt;''' property if there is no &amp;quot;author&amp;quot; property. (citations to &amp;quot;hentry&amp;quot; examples in the wild that &amp;lt;em&amp;gt;depend&amp;lt;/em&amp;gt; on rel=author needed to accepted this proposal. Note: default WordPress themes twentyeleven, twentytwelve, twentythirteen, twentyfourteen all use rel=author but only inside class=&amp;quot;author vcard&amp;quot;, and thus rel=author can be ignored since authorship is already picked up by existing &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; backcompat parsing.)&lt;br /&gt;
&lt;br /&gt;
=== Compat FAQ ===&lt;br /&gt;
==== What about rel bookmark ====&lt;br /&gt;
Also asked as: ''Why use an h-entry u-url u-uid for permalinks when I have [[rel-bookmark|rel=bookmark]]?''&lt;br /&gt;
&lt;br /&gt;
A: tl;dr: use &amp;lt;code&amp;gt;class=&amp;quot;u-url u-uid&amp;quot;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;rel=bookmark&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
rel=bookmark was the old [[hAtom]] way of marking up permalinks. Since then two factors have contributed to reducing use of rel inside microformats:&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==== Why rename entry-title entry-summary entry-content ====&lt;br /&gt;
The &amp;lt;code&amp;gt;entry-*&amp;lt;/code&amp;gt; classnames in classic [[hAtom]] were prefixed as such due to concerns about vocabulary overlap with the title (as in job title, completely separate semantic) property in [[hCard]] and the summary property in [[hCalendar]] (see: [[hatom-faq#Could_hAtom_instead_use_title_content_and_summary|hAtom FAQ]]).&lt;br /&gt;
&lt;br /&gt;
Following the [[simplicity]] principle, in microformats2, the aforementioned vagueness of '''title''' is dealt with by removing it. As '''name''' is now used consistently across all vocabularies as the property which “names” the microformat, it makes sense to use it to mark up the name of a post.&lt;br /&gt;
&lt;br /&gt;
Likewise, adding entry- to '''summary''' doesn’t add any useful information, and in practice there have been no problems with blog post summaries overlapping with entry summaries, so it makes sense to simplify to '''summary'''. The same applies to '''entry-content''' simplified to '''content'''.&lt;br /&gt;
&lt;br /&gt;
See also: [http://krijnhoetmer.nl/irc-logs/microformats/20120830#l-128 2012-08-30 IRC conversation].&lt;br /&gt;
&lt;br /&gt;
== Related Work ==&lt;br /&gt;
Work that re-uses or builds upon h-entry:&lt;br /&gt;
* [https://mailpile.pagekite.me:8080/p/Open_Message_Format Mailpile Open Message Format] is using h-entry with structured properties, e.g. p-author h-card.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
This work is based on the existing [[hAtom]] microformat, and extensive selfdogfooding in the [http://indiewebcamp.com indie web camp] community.&lt;br /&gt;
&lt;br /&gt;
== change control ==&lt;br /&gt;
Minor editorial changes (e.g. fixing minor typos or punctuation) that do not change and preferably clarify the structure and existing intended meaning may be done by anyone without filing issues, requiring only a sufficient &amp;quot;Summary&amp;quot; description field entry for the edit. More than minor but still purely editorial changes may be made by an editor. Anyone may question such editorial changes by undoing corresponding edits without filing an issue. Any further reversion or iteration on such an editorial change must be done by filing an issue.&lt;br /&gt;
&lt;br /&gt;
For the stable features of this document, substantive issue filing, resolution, and edits may be done by filing an [[h-entry-issues|issue]] and discussing them on the issue and on #microformats [[IRC]] with a link to the issue.&lt;br /&gt;
&lt;br /&gt;
Because this is primarily a vocabulary specification, very few issues beyond the list of vocabulary have filed or required any lengthy discussion. If such a non-trivial issue arises in the future, use the [[microformats2-parsing#change_control|microformats2-parsing change control process]] to resolve them.&lt;br /&gt;
&lt;br /&gt;
In general, non-vocabulary related features or requirements should be avoided in this specification, e.g. changes to microformats2 syntax must be proposed as [[microformats2-parsing]] changes using the [[microformats2-parsing#change_control|microformats2-parsing change control process]].&lt;br /&gt;
&lt;br /&gt;
Beyond that, the following requirements must be met for adding or moving features (e.g. properties and values) to proposed, draft, or stable:&lt;br /&gt;
&lt;br /&gt;
;Proposed&lt;br /&gt;
:[[#Proposed_Additions|Proposed features]] must provide documentation of what specific real world use-cases they are solving, preferably with a link to a step-by-step user scenario, e.g. demonstratable using existing non-standard / single-site / single-implementation tools.&lt;br /&gt;
;Draft&lt;br /&gt;
:[[#Draft_Properties|Draft properties]] must in addition be published and consumed in the wild on the public web, demonstrate solving the use case for which they were proposed, and should provide citations of real world public web sites publishing and (other sites) consuming them, interoperably.&lt;br /&gt;
;Stable&lt;br /&gt;
:Stable features (e.g. [[#Core_Properties|Core Properties]]) must in addition be published and consumed in the wild on multiple sites by multiple implementations (3+ different sites and implementations for publishing and  consuming). When a draft property reaches a critical mass of deployment by numerous sites and implementations (far beyond 3+), due to network effects and backward compatibility considerations it effectively becomes stable, since it becomes increasingly difficult to change it in any way and have so many sites and implementations also change.&lt;br /&gt;
&lt;br /&gt;
For creating an entirely new vocabulary, and more details about how to research existing values, properties, document examples in the wild, etc., see the microformats [[process]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[h-feed]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;br /&gt;
* [[h-geo]]&lt;br /&gt;
* [[hCard]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Specifications]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65370</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65370"/>
		<updated>2016-01-04T22:06:04Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: Undo revision 65369 by Benthatmustbeme (Talk) nevermind, this is actually a bug in webmention.io, misunderstanding there.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
* [https://github.com/dissolve/jf2 github.com/dissolve/jf2] - Primary development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Open source parsers:&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://www.unmung.com/ unmung.com] - another conversion service that can convert mf2 to jf2&lt;br /&gt;
&lt;br /&gt;
=== Consuming Code ===&lt;br /&gt;
Service that converts jf2 into readable HTML:&lt;br /&gt;
* [http://stream.thatmustbe.us/ stream.thatmustbe.us] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
  &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
  &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
  &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
  &amp;quot;data&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
      &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
      &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
    &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65369</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65369"/>
		<updated>2016-01-04T22:04:50Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* webmention.herokuapp.com */  author was missing type:card&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
* [https://github.com/dissolve/jf2 github.com/dissolve/jf2] - Primary development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Open source parsers:&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://www.unmung.com/ unmung.com] - another conversion service that can convert mf2 to jf2&lt;br /&gt;
&lt;br /&gt;
=== Consuming Code ===&lt;br /&gt;
Service that converts jf2 into readable HTML:&lt;br /&gt;
* [http://stream.thatmustbe.us/ stream.thatmustbe.us] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
  &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
  &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
  &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
  &amp;quot;data&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
      &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
      &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
    &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;type&amp;quot;:&amp;quot;card&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65368</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65368"/>
		<updated>2016-01-04T22:03:24Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Basic Example */ type:image has been dropped for simpler format&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Specification ==&lt;br /&gt;
* [https://github.com/dissolve/jf2 github.com/dissolve/jf2] - Primary development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
=== Parsers ===&lt;br /&gt;
Open source parsers:&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://www.unmung.com/ unmung.com] - another conversion service that can convert mf2 to jf2&lt;br /&gt;
&lt;br /&gt;
=== Consuming Code ===&lt;br /&gt;
Service that converts jf2 into readable HTML:&lt;br /&gt;
* [http://stream.thatmustbe.us/ stream.thatmustbe.us] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
  &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
  &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
  &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
  &amp;quot;data&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
      &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
      &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
    &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65342</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65342"/>
		<updated>2015-12-08T02:29:32Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: correct links for jf2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;image&amp;quot;,&lt;br /&gt;
       &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
  &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
  &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
  &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
  &amp;quot;data&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
      &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
      &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
    &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
    &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/dissolve/jf2 github.com/dissolve/jf2] - Primary development&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://stream.thatmustbe.us/ stream.thatmustbe.us] - Service running the socialstream code&lt;br /&gt;
* [http://www.unmung.com/ unmung.com] - another conversion service that can convert mf2 to jf2&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65291</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65291"/>
		<updated>2015-11-03T21:04:29Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: Undo revision 65290 by Veganstraightedge (Talk) thats not a recursive acronym&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: {&lt;br /&gt;
       &amp;quot;type&amp;quot;: &amp;quot;image&amp;quot;,&lt;br /&gt;
       &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
     }&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
      &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
      &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
      &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
      &amp;quot;data&amp;quot;: {&lt;br /&gt;
        &amp;quot;author&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
          &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
          &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
        &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
        &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2 github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2] - Primary development&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://stream.thatmustbe.us/?url=ben.thatmustbe.me/feed stream.thatmustbe.us/?url=ben.thatmustbe.me/feed] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65287</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65287"/>
		<updated>2015-10-30T15:19:49Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Links */  actually fix the link, not just the label&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
      &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
      &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
      &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
      &amp;quot;data&amp;quot;: {&lt;br /&gt;
        &amp;quot;author&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
          &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
          &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
        &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
        &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2 github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2] - Primary development&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://stream.thatmustbe.us/?url=ben.thatmustbe.me/feed stream.thatmustbe.us/?url=ben.thatmustbe.me/feed] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65286</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65286"/>
		<updated>2015-10-30T11:07:04Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: /* Links */  correct link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
      &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
      &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
      &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
      &amp;quot;data&amp;quot;: {&lt;br /&gt;
        &amp;quot;author&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
          &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
          &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
        &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
        &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JFDI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/Minimal-Activity-Stream github.com/w3c-social/Social-Syntax-Brainstorming/wiki/jf2] - Primary development&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://stream.thatmustbe.us/?url=ben.thatmustbe.me/feed stream.thatmustbe.us/?url=ben.thatmustbe.me/feed] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
	<entry>
		<id>http://microformats.org/wiki/index.php?title=jf2&amp;diff=65284</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="http://microformats.org/wiki/index.php?title=jf2&amp;diff=65284"/>
		<updated>2015-10-29T19:08:42Z</updated>

		<summary type="html">&lt;p&gt;Benthatmustbeme: add important links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;jf2&amp;lt;/dfn&amp;gt;''' is a working name for a simplified more minimal JSON representation of [[microformats2]].&lt;br /&gt;
&lt;br /&gt;
== Basic Example ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;entry&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
     &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
     &amp;quot;url&amp;quot;: &amp;quot;http:\/\/tantek.com\/&amp;quot;,&lt;br /&gt;
     &amp;quot;photo&amp;quot;: &amp;quot;http:\/\/tantek.com\/photo.jpg&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;published&amp;quot;: &amp;quot;2015-10-21T12:34-0700&amp;quot;,&lt;br /&gt;
  &amp;quot;category&amp;quot;: [&amp;quot;simple&amp;quot;, &amp;quot;example&amp;quot;],&lt;br /&gt;
  &amp;quot;content&amp;quot;: &amp;quot;Example of a simple note&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prior Work ==&lt;br /&gt;
* [[microformats2]] JSON&lt;br /&gt;
&lt;br /&gt;
== Prior Simplifications ==&lt;br /&gt;
Output from:&lt;br /&gt;
&lt;br /&gt;
=== [http://webmention.io webmention.io] ===&lt;br /&gt;
This service outputs a list of webmentions received for a post. It recognizes when a post is a reply, like, repost, invitation, RSVP, and mention. Example JSON output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;source&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;,&lt;br /&gt;
      &amp;quot;verified&amp;quot;: true,&lt;br /&gt;
      &amp;quot;verified_date&amp;quot;: &amp;quot;2013-04-25T17:09:33-07:00&amp;quot;,&lt;br /&gt;
      &amp;quot;id&amp;quot;: 900,&lt;br /&gt;
      &amp;quot;data&amp;quot;: {&lt;br /&gt;
        &amp;quot;author&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: &amp;quot;Tantek Çelik&amp;quot;,&lt;br /&gt;
          &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/&amp;quot;,&lt;br /&gt;
          &amp;quot;photo&amp;quot;: &amp;quot;http://tantek.com/logo.jpg&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Another milestone: @eschnou automatically shows #indieweb comments with h-entry sent via pingback http://eschnou.com/entry/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;Another milestone: &amp;lt;a class=\&amp;quot;auto-link h-x-username\&amp;quot; href=\&amp;quot;https:\/\/twitter.com\/eschnou\&amp;quot;&amp;gt;@eschnou&amp;lt;\/a&amp;gt; automatically shows #indieweb comments with h-entry sent via pingback &amp;lt;a class=\&amp;quot;auto-link\&amp;quot; href=\&amp;quot;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html\&amp;quot;&amp;gt;http:\/\/eschnou.com\/entry\/testing-indieweb-federation-with-waterpigscouk-aaronpareckicom-and--62-24908.html&amp;lt;\/a&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;published&amp;quot;: &amp;quot;2013-04-22T15:03:00-07:00&amp;quot;,&lt;br /&gt;
        &amp;quot;published_ts&amp;quot;: 1366668180,&lt;br /&gt;
        &amp;quot;url&amp;quot;: &amp;quot;http://tantek.com/2013/112/t2/milestone-show-indieweb-comments-h-entry-pingback&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== webmention.herokuapp.com ===&lt;br /&gt;
This site outputs in multiple formats, based on receiving webmentions, parsing them for microformats and consolidating into a single feed. Live examples for kevinmarks.com:&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=html HTML mf2 markup]&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-entry&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a href=&amp;quot;http://waterpigs.co.uk/&amp;quot; class=&amp;quot;p-author h-card&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
    Barnaby Walters&lt;br /&gt;
  &amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;p-summary p-name&amp;quot;&amp;gt;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;footer&amp;gt;&lt;br /&gt;
    &amp;lt;time class=&amp;quot;dt-published&amp;quot; datetime=&amp;quot;2014-04-01T14:25:14.000Z&amp;quot; pubdate=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;a class=&amp;quot;u-url u-uid&amp;quot; href=&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;&amp;gt;2 years ago&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/time&amp;gt;&lt;br /&gt;
     mentioning &amp;lt;a href=&amp;quot;http://kevinmarks.com/&amp;quot;&amp;gt;http://kevinmarks.com/&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[http://www.unmung.com/mf2?url=https%3A%2F%2Fwebmention.herokuapp.com%2Fapi%2Fmentions%3Fsite%3Dkevinmarks.com%26format%3Dhtml&amp;amp;html=&amp;amp;pretty=on parsed JSON form of the HTML]&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
&amp;quot;type&amp;quot;: [&amp;quot;h-entry&amp;quot;], &lt;br /&gt;
&amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;uid&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
        {&amp;quot;type&amp;quot;: [&amp;quot;h-card&amp;quot;], &lt;br /&gt;
            &amp;quot;properties&amp;quot;: {&lt;br /&gt;
                &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/&amp;quot;], &lt;br /&gt;
                &amp;quot;photo&amp;quot;: [&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;], &lt;br /&gt;
                &amp;quot;name&amp;quot;: [&amp;quot;&amp;quot;]&lt;br /&gt;
            }, &lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Barnaby Walters&amp;quot;&lt;br /&gt;
        }], &lt;br /&gt;
    &amp;quot;url&amp;quot;: [&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;], &lt;br /&gt;
    &amp;quot;summary&amp;quot;: [&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;], &lt;br /&gt;
    &amp;quot;published&amp;quot;: [&amp;quot;2014-04-01T14:25:14Z&amp;quot;], &lt;br /&gt;
    &amp;quot;name&amp;quot;: [ &amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*[https://webmention.herokuapp.com/api/mentions?site=kevinmarks.com&amp;amp;format=json simplified JSON] (whitespace added)&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/notes/4VMERE/&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;:null,&lt;br /&gt;
  &amp;quot;published&amp;quot;:1396362314000,&lt;br /&gt;
  &amp;quot;summary&amp;quot;:&amp;quot;@kevinmarks awesome demos as always! Thanks for live posting! #indiewebcampsf&amp;quot;,&lt;br /&gt;
  &amp;quot;author&amp;quot;: {&lt;br /&gt;
    &amp;quot;name&amp;quot;:&amp;quot;Barnaby Walters&amp;quot;,&lt;br /&gt;
    &amp;quot;photo&amp;quot;:&amp;quot;http://waterpigs.co.uk/photo.jpg&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;:&amp;quot;http://waterpigs.co.uk/&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;interactions&amp;quot;: [&amp;quot;http://www.kevinmarks.com/indiewebsfdemowrapup.html&amp;quot;],&lt;br /&gt;
  &amp;quot;targets&amp;quot;:[&amp;quot;http://kevinmarks.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;type&amp;quot;:&amp;quot;reply&amp;quot;,&lt;br /&gt;
  &amp;quot;interactionTarget&amp;quot;:false&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [https://github.com/indieweb/php-comments php-comments] library ===&lt;br /&gt;
This library takes HTML and converts it to a simple PHP data structure. Example post:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
  $result = array(&lt;br /&gt;
    'type' =&amp;gt; 'reply',&lt;br /&gt;
    'author' =&amp;gt; array(&lt;br /&gt;
      'name' =&amp;gt; 'Aaron Parecki',&lt;br /&gt;
      'photo' =&amp;gt; 'http://aaronparecki.com/images/aaronpk.png',&lt;br /&gt;
      'url' =&amp;gt; 'http://aaronparecki.com/'&lt;br /&gt;
    ),&lt;br /&gt;
    'published' =&amp;gt; '2014-02-16T18:48:17-0800',&lt;br /&gt;
    'name' =&amp;gt; 'Example Note',&lt;br /&gt;
    'text' =&amp;gt; 'this text is displayed as the comment',&lt;br /&gt;
    'url' =&amp;gt; 'http://aaronparecki.com/post/1'&lt;br /&gt;
  );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name Candidates ==&lt;br /&gt;
As 'jf2' is only a working name let's collect alternatives:&lt;br /&gt;
&lt;br /&gt;
;JDFI&lt;br /&gt;
:Backronym: JSON For Data Interchange&lt;br /&gt;
;jf2&lt;br /&gt;
:Minimal JSON for mf2&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/w3c-social/Social-Syntax-Brainstorming/wiki/Minimal-Activity-Stream github.com/w3c-social/Social-Syntax-Brainstorming/wiki/Minimal-Activity-Stream] - Primary development&lt;br /&gt;
* [https://github.com/dissolve/socialstream github.com/dissolve/socialstream] - Sample php code to convert MF2 -&amp;gt; JS2&lt;br /&gt;
* [http://stream.thatmustbe.us/?url=ben.thatmustbe.me/feed stream.thatmustbe.us/?url=ben.thatmustbe.me/feed] - Service running the socialstream code&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[json]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing]]&lt;/div&gt;</summary>
		<author><name>Benthatmustbeme</name></author>
	</entry>
</feed>