<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zegnat</id>
	<title>Microformats Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://microformats.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zegnat"/>
	<link rel="alternate" type="text/html" href="https://microformats.org/wiki/Special:Contributions/Zegnat"/>
	<updated>2026-04-21T09:47:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=70473</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=70473"/>
		<updated>2021-12-25T22:38:08Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: JSON Schema has moved to its own repository with automated testing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains an informative description of &amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt;, the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. Note that the [[microformats2-parsing|microformats2 parsing specification]] is the only authoritative source for its own output.&lt;br /&gt;
&lt;br /&gt;
'''Goal:''' Document possible values – with examples – of the official serialisation format of microformats generated by [[microformats2#Parsers|microformats2 parsers]]. This format can be used to compare parsers and create [[test-suite|test suites]]. It also clarifies the format for other specifications that rely on the serialisation, such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
'''Audience:''' Parser authors, parser users, web developers. This document is written for anyone working with microformats2 in their serialised form, so they can read about the format generated by the parsing algorithm without having to understand the actual parsing itself.&lt;br /&gt;
&lt;br /&gt;
'''Author(s):''' [[User:Zegnat|Martijn van der Ven]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' An extra optional member called &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66967&amp;amp;oldid=66966 added in December].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' A new [[microformats2-parsing#parse_an_img_element_for_src_and_alt|valid value for images]] was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66969&amp;amp;oldid=66967 added in January].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://github.com/Zegnat/microformats2-json-schema JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=irc&amp;diff=70386</id>
		<title>irc</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=irc&amp;diff=70386"/>
		<updated>2021-05-31T21:18:57Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Logs */ Fix minority of LogBot links, add note on LogBot only logging Freenode and shutting down soon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:#microformats on libera.chat}}&lt;br /&gt;
{{TOC-right}}&lt;br /&gt;
;shortURL&lt;br /&gt;
:http://ufs.cc/w/irc&lt;br /&gt;
&lt;br /&gt;
== Quick Start ==&lt;br /&gt;
You may use a IRC client application such as [http://colloquy.info/ Colloquy] (Mac or iOS) or [https://market.android.com/details?id=org.yaaic&amp;amp;feature=search_result Yaaic on Android] to join:&lt;br /&gt;
* irc://irc.libera.chat/microformats&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Alternatively you may use a browser to quickly join and chat:&lt;br /&gt;
* http://webchat.freenode.net/?channels=microformats&amp;amp;nick=uf-wiki-visitor&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* Firefox users: install [https://addons.mozilla.org/en-US/firefox/addon/chatzilla/ Chatzilla] IRC plugin.&lt;br /&gt;
As of 2020-12-15 this plugin no longer exists: &amp;quot;If you’ve followed a link from another site for an extension or theme, that item is no longer available.&amp;quot; --&amp;gt;&lt;br /&gt;
&amp;lt;!--* http://leafychat.com/#microformats@irc.freenode.net&lt;br /&gt;
** (Leafy Chat redirects to Convore and doesn't appear to connect as of 2011-07-06)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformats IRC channel is hosted on the libera.chat server.  See [[irc#Joining_a_server_and_channel|Joining a server and channel]] help for further information and use of client applications which provide additional services (authenticated nicknames, logging, etc.).&lt;br /&gt;
&lt;br /&gt;
== Logs ==&lt;br /&gt;
Recent logs of the Freenode #microformats IRC channel can be found at:&lt;br /&gt;
* https://chat.indieweb.org/microformats (Libera.Chat)&lt;br /&gt;
* https://freenode.logbot.info/microformats (Freenode, [https://freenode.logbot.info/_shutdown shutting down 2021-06])&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
&lt;br /&gt;
If the krijnhoetmer logs have stopped logging or have any other problems:&lt;br /&gt;
# try this in the IRC channel: &amp;lt;br/&amp;gt;&amp;lt;kbd&amp;gt;/invite krijnh #microformats&amp;lt;/kbd&amp;gt;&amp;lt;br/&amp;gt; if you see &amp;lt;br/&amp;gt;&amp;lt;samp&amp;gt;krijnh joined the chat room.&amp;lt;/samp&amp;gt;&amp;lt;br/&amp;gt; then the krijnhoetmer logs should start working again. if you don't see that, then:&lt;br /&gt;
# go http://krijnhoetmer.nl/#contact&lt;br /&gt;
# leave a message in the Contact box in the right column for Krijn, e.g. &amp;lt;blockquote&amp;gt;&amp;lt;p&amp;gt;&amp;quot;looks like the logs at http://krijnhoetmer.nl/irc-logs/microformats have stopped working, could you take a look?&amp;quot;&amp;lt;/p&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
# Krijn is fairly responsive, expect that logging will resume shortly.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Older logs can be found at the following locations for the following periods:&lt;br /&gt;
* [https://chat.indieweb.org/microformats/2011-02-12 2011-02-12]–[https://chat.indieweb.org/microformats current] at https://chat.indieweb.org/microformats (switched from Freenode to Libera.Chat on [https://chat.indieweb.org/microformats/2021-05-26 2021-05-26])&lt;br /&gt;
* [http://logbot.glob.com.au/?c=freenode%23microformats&amp;amp;s=20090220&amp;amp;e=20090220 2009-02-20]–[https://freenode.logbot.info/microformats current] at [https://freenode.logbot.info/microformats freenode.logbot.info microformats IRC Logs] (continues to log Freenode even after 2021-05-26)&lt;br /&gt;
----&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20131028 2013-10-28] (partial) - [https://krijnhoetmer.nl/irc-logs/microformats/20160129 2016-01-29] (partial) at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20130811 2013-08-11] (partial) - [http://krijnhoetmer.nl/irc-logs/microformats/20130917 2013-09-17] (partial) at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20120726 2012-10-09] (partial) - [http://krijnhoetmer.nl/irc-logs/microformats/20130807 2013-08-07] at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20120726 2012-07-26] - [http://krijnhoetmer.nl/irc-logs/microformats/20120916 2012-09-16] (partial) at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20090220 2009-02-20] - [http://krijnhoetmer.nl/irc-logs/microformats/20120621 2012-06-21] (partial) at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2011-04-05 2011-04-05] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2011-02-24 2011-02-24] - [http://rbach.priv.at/Microformats/IRC/2011-03-03 2011-03-03] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2009-08-28 2009-08-28] - [http://rbach.priv.at/Microformats/IRC/2010-09-27 2010-09-27] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2009-03-26 2009-03-26] - [http://rbach.priv.at/Microformats/IRC/2009-06-29 2009-06-29] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
* 2009-02-09 - 2009-02-20 '''missing'''. if anyone has any logs for this time period, please upload them and add links here.&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2009-01-14 2009-01-14] - [http://rbach.priv.at/Microformats/IRC/2009-02-09 2009-02-09] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats/20080825 2008-08-25] - [http://krijnhoetmer.nl/irc-logs/microformats/20090114 2009-01-14] at [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs]&lt;br /&gt;
* 2008-08-16 - 2008-08-24 '''missing'''. if anyone has any logs for this time period, please upload them and add links here.&lt;br /&gt;
* [http://rbach.priv.at/Microformats/IRC/2005-11-16 2005-11-16] - [http://rbach.priv.at/Microformats/IRC/2008-08-16 2008-08-16] at [http://rbach.priv.at/Microformats-IRC/ rbach microformats IRC Logs]&lt;br /&gt;
&lt;br /&gt;
Until sometime on 2007-07-16, there was an [http://microformat.makedatamakesense.com/log_feed/ atom feed] provided for the [http://rbach.priv.at/Microformats-IRC/ rbach IRC Logs]. &lt;br /&gt;
&lt;br /&gt;
=== logs status ===&lt;br /&gt;
* [http://logbot.glob.com.au/?c=freenode%23microformats logbot.glob.com.au microformats IRC Logs] are current and live&lt;br /&gt;
* [http://krijnhoetmer.nl/irc-logs/microformats krijnhoetmer microformats IRC Logs] appears to have stopped logging as of 2016-01.&lt;br /&gt;
** I emailed and heard back from Krijn on 2016-03-19 &amp;quot;Yeah, sorry, I know, server resources are very low for that (old) machine. I think it's sort of EOL..&amp;quot; [http://logs.glob.uno/?c=freenode%23microformats&amp;amp;s=21+Mar+2016&amp;amp;e=21+Mar+2016&amp;amp;h=Krijn#c86411] -- gRegor&lt;br /&gt;
* [http://rbach.priv.at/Microformats-IRC/ rbach IRC Logs] appear to have stopped logging as of 2009-06-29.&lt;br /&gt;
&lt;br /&gt;
== People on IRC ==&lt;br /&gt;
See our [[irc-people|list of IRC regulars]] and their normal timezones.&lt;br /&gt;
&lt;br /&gt;
Our channel has regular admins, who are also mailing list and wiki admins. If you want to get their attention, just say &amp;quot;adminhelp&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Bots on IRC==&lt;br /&gt;
The IRC channel uses these bots:&lt;br /&gt;
* [[Loqi]] - logs IRC, posts notifications to IRC of wiki edits&lt;br /&gt;
** If Loqi is missing, see https://indieweb.org/Loqi for instructions&lt;br /&gt;
** If Wiki edits are missing, ask an admin for &amp;quot;adminhelp&amp;quot;, and reference [[admin-how-to#irc]]&lt;br /&gt;
&lt;br /&gt;
=== Previous Bots ===&lt;br /&gt;
These bots were active ~2005-2009? (actual dates can likely be confirmed by checking old IRC logs)&lt;br /&gt;
* [[mfbot]] - logs all edits to this wiki. (Contact: [[User:RyanKing|Ryan King]])&lt;br /&gt;
* [[mflogbot]] - logs the irc channel itself to archives on the web. (Contact: [[User:RobertBachmann|Robert Bachmann]])&lt;br /&gt;
* [http://joiwiki.ito.com/joiwiki/index.cgi?jibot jibot]&lt;br /&gt;
&lt;br /&gt;
==== Greeting Bot ====&lt;br /&gt;
To display a brief description of who you are each time you join the channel, you can use “JiBot” to create a definition for your username. To do so pass the &amp;lt;tt&amp;gt;?def&amp;lt;/tt&amp;gt; command using something like the following convention (be brief):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;?def jdoe is John Doe and can be found online at &amp;lt;nowiki&amp;gt;http://www.example.com&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More information about using JiBot commands can be found on the [http://joiwiki.ito.com/joiwiki/index.cgi?jibot jibot website]&lt;br /&gt;
&lt;br /&gt;
== Getting started with IRC ==&lt;br /&gt;
'''Please note:''' These directions relate specifically to the services that [http://libera.chat/ Libera.chat] offers.  Other IRC servers may differ with the services they offer and how to operate them. You can also read a complete guide at https://libera.chat/guides&lt;br /&gt;
&lt;br /&gt;
===Joining a server and channel===&lt;br /&gt;
Most clients will offer you a connection dialogue showing the required fields for connection.  The details to connect to the server are:&lt;br /&gt;
&lt;br /&gt;
*Server: &amp;lt;code&amp;gt;irc.libera.chat&amp;lt;/code&amp;gt;&lt;br /&gt;
*Port: &amp;lt;code&amp;gt;6667&amp;lt;/code&amp;gt; (usually default)&lt;br /&gt;
&lt;br /&gt;
You should also fill in any fields to set your alias, real name and email address.  If available, save these settings for later to speed up connecting in future.&lt;br /&gt;
&lt;br /&gt;
More on setting a password protected alias can be [[irc#Creating_a_registered_nickname|read here]].&lt;br /&gt;
&lt;br /&gt;
Once connected, you will most likely be presented with the &amp;quot;MOTD&amp;quot; (message of the day).  For the first visit, it is advisable to read this to find out about the server's policies and other important pieces of news and help, otherwise it can be ignored and you can either [[irc#Creating_a_registered_nickname|authenticate your alias]] or join a channel.&lt;br /&gt;
&lt;br /&gt;
Your client may display to you a listing of all available channels.  Locate &amp;lt;code&amp;gt;#microformats&amp;lt;/code&amp;gt; and select to join, or type &amp;lt;code&amp;gt;'''/join #microformats'''&amp;lt;/code&amp;gt; into the command line available to you in your client (where you've just been shown your connection).&lt;br /&gt;
&lt;br /&gt;
Assuming you've connected correctly, you should now find youself in the microformats channel!&lt;br /&gt;
&lt;br /&gt;
More detailed, but general, advice can be [http://www.irchelp.org/irchelp/irctutorial.html#intro read here].&lt;br /&gt;
&lt;br /&gt;
===Creating a registered nickname===&lt;br /&gt;
Registration means that a password becomes associated with your alias/nickname/sign-in name and from the point of registration authorisation is required to communicate using that alias.&lt;br /&gt;
&lt;br /&gt;
Registration of a nickname is required for some channels, and should be done to protect your identity.&lt;br /&gt;
&lt;br /&gt;
To register with [https://libera.chat Libera.chat], you must communicate with their service known as NickServ.  The two basic command you will need to get started are:&lt;br /&gt;
&lt;br /&gt;
For registration: &amp;lt;code&amp;gt;/msg nickserv register ''password'' ''email''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &amp;lt;code&amp;gt;''password''&amp;lt;/code&amp;gt; being a value of your choice.  You must also associate an email address with your nickname&lt;br /&gt;
&lt;br /&gt;
Your client may offer you an option to set your alias and password, so that you will not have to manually enter this information on each join.  Refer to your client's help files for more on this.&lt;br /&gt;
&lt;br /&gt;
These commands can be typed directly into the server window upon join, or whilst in a channel, just as you would normally send a message.&lt;br /&gt;
&lt;br /&gt;
More detailed user registration command information can be found in [https://libera.chat/guides/registration Libera's guides]&lt;br /&gt;
&lt;br /&gt;
===Communicating===&lt;br /&gt;
Sending a message to a channel may be as simple as joining the channel and typing into the window, just as you would with an Instant Messenger.  You can refer to your client's help files for quicker/alternative methods of doing the following.  For all clients the following commands are available (the parts in bold must be used, but are not seen by others):&lt;br /&gt;
&lt;br /&gt;
'''Sending a message to the entire channel you are currently in:'''&lt;br /&gt;
&lt;br /&gt;
Command: &amp;lt;kbd&amp;gt;'''/msg''' Hello world!&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result: &amp;lt;samp&amp;gt;&amp;lt;Bill&amp;gt; Hello world!&amp;lt;/samp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sending an action/emotive/3rd person statement:'''&lt;br /&gt;
&lt;br /&gt;
Command: &amp;lt;kbd&amp;gt;'''/me''' dances a code jig&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result: &amp;lt;samp&amp;gt;Bill dances a code jig&amp;lt;/samp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Sending a message to one person only (private chat):'''&lt;br /&gt;
&lt;br /&gt;
Command: &amp;lt;kbd&amp;gt;'''/msg Bob''' Hi, would you like to code jig?&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result (for Bob only): &amp;lt;samp&amp;gt;&amp;lt;Bill&amp;gt; Hi, would you like to code jig?&amp;lt;/samp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Clients==&lt;br /&gt;
The following clients are recommended by #microformats participants:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== Web ===&lt;br /&gt;
* [http://leafychat.com/#microformats@irc.freenode.net Leafy Chat]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
* [http://www.mirc.com/ mIRC] — Popular Windows client. Trial version only.&lt;br /&gt;
* [http://xchat.org/ X-Chat] — Popular cross-platform client. [http://www.silverex.org/download/ Free Windows version] available.&lt;br /&gt;
* [http://www.adiirc.com/ AdiIRC] — Simple C# based IRC client.&lt;br /&gt;
* [http://www.miranda-im.org/ Miranda] — Lightweight, muti-protocol instant messenger.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
* [http://colloquy.info Colloquy] — open source, free&lt;br /&gt;
* [http://homepage.mac.com/philrobin/conversation/ Conversation]&lt;br /&gt;
* [http://sourceforge.net/projects/fire Fire] — open source, free&lt;br /&gt;
* [http://www.conceitedsoftware.com/products/linkinus Linkinus]&lt;br /&gt;
* [http://www.chipersoft.com/minerva/ Minerva]&lt;br /&gt;
* [http://www.snak.com/ Snak]&lt;br /&gt;
* [http://xchataqua.sourceforge.net/twiki/bin/view/Main/WebHome X-Chat Aqua]&lt;br /&gt;
** now has [http://www.portableapps.org PortableApps] version &amp;amp;#8212; [http://www.macupdate.com/info.php/id/21685/portable-x-chat-aqua MacUpdate link]&lt;br /&gt;
* [http://www.aquaticx.com/ Xirc]&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [http://pidgin.im/ Pidgin] — Popular open-source multi-protocol windows client, using libpurple&lt;br /&gt;
* [http://irssi.org/ Irssi] — Unix client, often run from a shell, sometimes [http://f0rked.com/articles/irssi in conjunction with 'screen'].&lt;br /&gt;
* [http://jirc.hick.org/jirc/ jIRCii]&lt;br /&gt;
&lt;br /&gt;
== meetups ==&lt;br /&gt;
The idea of having IRC meetups (a set time for a meeting on IRC) has been suggested by [[User:RyanKing|Ryan King]], as it appears to work well for the WordPress community and may help us from time-to-time. As of yet, there are no plans to have meetups.&lt;br /&gt;
&lt;br /&gt;
==IRC and microformats==&lt;br /&gt;
=== hCard ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;discussion&amp;quot;&amp;gt;&lt;br /&gt;
* ''How do we maintain info about ircing in our hCards (nick, network, fav-channels?)?''&lt;br /&gt;
** presumably this would be done with a URL. - [[User:Tantek|Tantek]] 18:42, 30 July 2009 (UTC)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related discussions ==&lt;br /&gt;
* [[chat]] [[chat-examples|chat examples]], [[chat-formats|chat formats]], and [[chat-brainstorming|chat brainstorming]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[irc-meetups]]&lt;br /&gt;
*[[discuss|Other discussion fora]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70259</id>
		<title>spread-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70259"/>
		<updated>2020-10-10T11:23:05Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Update to btrem's CC0 release of the SVG!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Spread Microformats}}&lt;br /&gt;
&lt;br /&gt;
Inspired by [http://spreadfirefox.com/ Spread Firefox], this page is for sharing community resources for marketing microformats such as [[buttons]], banners, wallpaper / desktop screens, logo graphics, [[stickers]], t-shirts etc.&lt;br /&gt;
&lt;br /&gt;
== Email ==&lt;br /&gt;
* See [[advocacy-email-samples]] for some sample emails you can copy/customize and send to site owners to encourage them adopt microformats.&lt;br /&gt;
&lt;br /&gt;
== Wallpaper ==&lt;br /&gt;
=== Wallpaper and desktop screens. ===&lt;br /&gt;
* A [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/ wallpaper] by [[User:Remi|Rémi Prévost]]&lt;br /&gt;
&lt;br /&gt;
== Logo ==&lt;br /&gt;
https://indieweb.org/images/8/80/microformats-logo.png&lt;br /&gt;
&lt;br /&gt;
=== logo text ===&lt;br /&gt;
https://web.archive.org/web/20110820103746/http://img.skitch.com/20090715-c3xmikadkj8udt4sq6aqfkqtac.png&lt;br /&gt;
&lt;br /&gt;
* High-resolution [http://vault.simplebits.com/bits/microformats/microformats-logo.eps EPS] and  [http://vault.simplebits.com/bits/microformats/microformats-logo.png transparent PNG] versions of the microformats logo text by [[User:DanCederholm|Dan Cederholm]].&lt;br /&gt;
* the microformats typeface is [https://www.emigre.com/Fonts/Solex Solex Medium] by Emigre.&lt;br /&gt;
&lt;br /&gt;
=== logo mark ===&lt;br /&gt;
* An [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.svg SVG] and [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.png PNG] (for Fireworks) version, by [[User:Remi|Rémi Prévost]]. Released under [https://creativecommons.org/licenses/by-nc-sa/3.0/ CC BY-NC-SA].&lt;br /&gt;
* An [https://github.com/btrem/microformats/blob/master/logos/microformats.svg SVG] version (and alternative [https://github.com/btrem/microformats/blob/master/logos/microformats-orange.svg orange colour]) by [https://btrem.com Brian Tremblay]. Released under [https://creativecommons.org/publicdomain/zero/1.0/ CC0 1.0 Universal (CC0 1.0) Public Domain Dedication].&lt;br /&gt;
** Also available (slightly modified) [https://github.com/edent/SuperTinyIcons/pull/442 as part of] the [https://github.com/edent/SuperTinyIcons Super Tiny Web Icons collection]. Released under [https://github.com/edent/SuperTinyIcons/blob/e6ea45f6441bd0111295b2713df73c1502de6ec5/LICENSE MIT License].&lt;br /&gt;
&lt;br /&gt;
== POSH ==&lt;br /&gt;
* [[posh|POSH]] logos and buttons&lt;br /&gt;
&lt;br /&gt;
== stickers ==&lt;br /&gt;
See the [[stickers]] page to easily order a set of moo microformats stickers!&lt;br /&gt;
&lt;br /&gt;
== T-Shirts ==&lt;br /&gt;
* See [http://flickr.com/photos/tags/microformatstshirt photos of microformats tshirts on Flickr] (the [http://flickr.com/photos/tags/microformatstshirt/clusters/ clusters] are especially fun)&lt;br /&gt;
** Note also [http://pixelsebi.com/2006-10-26/microformats-t-shirt-in-second-life/ microformats t-shirt in Second Life]&lt;br /&gt;
=== do it yourself tshirts ===&lt;br /&gt;
[[User:TheJbf|Burcu Dogan]] has made her own microformats t-shirt:&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528054541if_/http://i44.tinypic.com/2s01i1j.jpg&lt;br /&gt;
&lt;br /&gt;
For those who are not able to find a microformats t-shirt, it is possible to make one at home less than an hour. The requirements for such a pressing process are listed below:&lt;br /&gt;
* A high quality microformats logo (which can be found below the '''Logo headline''' on this page)&lt;br /&gt;
* A black t-shirt&lt;br /&gt;
* An iron-on transfer paper for '''dark t-shirts''' (note that printers doesn't print white, so there're special papers to print white on dark)&lt;br /&gt;
* An iron an a hard surface. (Ironing press with a large surface is highly recommended.)&lt;br /&gt;
* A laser printer&lt;br /&gt;
* Sharp and sensitive scissors&lt;br /&gt;
* Non-metalic heat resisting papers&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' Take the instructions on the transfer paper you bought as the first reference, we're not responsible for unsuccessful attempts. Tips about pressing can change from paper to paper.)&lt;br /&gt;
&lt;br /&gt;
Firstly, you need to print the logo on the transfer paper. Transfer papers for dark t-shirts are sticky backed white papers which vary in size. You need to decide which size you want to press on your t-shirt. A4 and A3 are suitable for microformats t-shirts.&lt;br /&gt;
&lt;br /&gt;
Print the logo with a black background. The result of the paper printed should look like this: &lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528052329if_/http://i40.tinypic.com/2ylqqmb.jpg&lt;br /&gt;
&lt;br /&gt;
(You can, of course decrease, the amount of background area to save ink)&lt;br /&gt;
&lt;br /&gt;
Now it is time to separate logo from the background. Carefully clip the edges and get the logo all alone. White borders should stay with the green layers, don't make a mistake by clipping them out.&lt;br /&gt;
&lt;br /&gt;
Prepare the iron press, you will need the highest temperature with no stream to transfer successfully. Give your press at least 10 minutes to heat fully. While the iron is heating, decide which position your logo should appear. Use a ruler to check if the logo is positioned symmetrically.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528061614if_/http://i41.tinypic.com/2v334pc.png&lt;br /&gt;
&lt;br /&gt;
If your iron press is heated, gently peel the tiny paper on the back of the transfer paper to make it sticky. Place it on the t-shirt and put 1 or 2 non-metalic heat resisting paper of any kind on the logo. Be sure that transfer paper doesn't overlap.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120601000105if_/http://i40.tinypic.com/kcl7gk.png&lt;br /&gt;
&lt;br /&gt;
Press the iron for 10-15 seconds. This actually depends on the paper you are using, so it is best to follow the instructions on the iron-on transfer paper you purchased. If necessary repress the iron on the whole surface for 5-10 seconds again. &lt;br /&gt;
&lt;br /&gt;
And, you made a new microformats t-shirt! Don't forget to take a picture and share.&lt;br /&gt;
&lt;br /&gt;
Note that you should hand wash your t-shirt and iron it from back carefully. Don't forget that it is also possible to use another fabrics such as bags to print microformats logos. We're waiting for your creations.&lt;br /&gt;
&lt;br /&gt;
== External online community resources ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* See [http://www.youtube.com/results?search_query=microformats videos of microformats on YouTube] or [http://vimeo.com/groups/microformats Vimeo], in particular, a [http://www.youtube.com/watch?v=UAV4SGpPuQI video of a microformats tshirt] ([http://www.flickr.com/photos/fumi/372068162/ photo]).&lt;br /&gt;
&lt;br /&gt;
===Social networking===&lt;br /&gt;
Groups for fans and advocates of microformats to join or follow:&amp;lt;!--listed alphabetically--&amp;gt;&lt;br /&gt;
* [http://www.facebook.com/microformats Facebook microformats fan page]&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=2374732285 Facebook microformats group]&lt;br /&gt;
* [http://flickr.com/groups/microformats/ Flickr microformats group]&lt;br /&gt;
* [http://getsatisfaction.com/microformats microformats on Satisfaction]&lt;br /&gt;
* [http://twitter.com/microformats microformats on Twitter].&lt;br /&gt;
&lt;br /&gt;
=== wiki-communities ===&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats Wikipedia: Project Microformats]&lt;br /&gt;
**[http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%9C%84%ED%82%A4%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%ED%8F%AC%EB%A7%B7 -&amp;quot; - in Korean]&lt;br /&gt;
**[http://zh.wikipedia.org/wiki/Wikipedia:%E5%B0%88%E9%A1%8C/%E5%BE%AE%E6%A0%BC%E5%BC%8F -&amp;quot; - in Chinese]&lt;br /&gt;
* [http://www.usemod.com/cgi-bin/mb.pl?MicroFormats meatball:microformats] -- a first page (stub to be reviewed) dedicated to have any review/opinion from the meatballers especially on the wiki-formats.&lt;br /&gt;
* [http://communitywiki.org/fr/MicroFormats communitywiki:microformats] -- an old multilingual page with a blockcodemachine proposal.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[buttons]]&lt;br /&gt;
* [[podcasts]]&lt;br /&gt;
* [[presentations]]&lt;br /&gt;
* [[press]]&lt;br /&gt;
* [[2d_barcodes]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=70258</id>
		<title>User:Zegnat</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=70258"/>
		<updated>2020-10-08T17:39:04Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Add CC PD.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Zegnat|Zegnat]] is the handle of [https://vanderven.se/martijn Martijn van der Ven].&lt;br /&gt;
&lt;br /&gt;
Mostly focussed on [[microformats2-parsing|microformats2 parsing]] ([https://github.com/microformats/microformats2-parsing/issues?utf8=%E2%9C%93&amp;amp;q=author%3AZegnat GitHub issues opened]) and have started contributing to [https://github.com/indieweb/php-mf2 the PHP parser].&lt;br /&gt;
&lt;br /&gt;
You can also find me [https://indieweb.org/User:Vanderven.se_martijn on the IndieWeb] and [[IRC|#microformats on freenode]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{{cc-public-domain-release}}&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70257</id>
		<title>spread-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70257"/>
		<updated>2020-10-08T17:30:11Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Logo */ Fix Dan Cederholm links, point typeface link to a non-white page, add more licensing information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Spread Microformats}}&lt;br /&gt;
&lt;br /&gt;
Inspired by [http://spreadfirefox.com/ Spread Firefox], this page is for sharing community resources for marketing microformats such as [[buttons]], banners, wallpaper / desktop screens, logo graphics, [[stickers]], t-shirts etc.&lt;br /&gt;
&lt;br /&gt;
== Email ==&lt;br /&gt;
* See [[advocacy-email-samples]] for some sample emails you can copy/customize and send to site owners to encourage them adopt microformats.&lt;br /&gt;
&lt;br /&gt;
== Wallpaper ==&lt;br /&gt;
=== Wallpaper and desktop screens. ===&lt;br /&gt;
* A [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/ wallpaper] by [[User:Remi|Rémi Prévost]]&lt;br /&gt;
&lt;br /&gt;
== Logo ==&lt;br /&gt;
https://indieweb.org/images/8/80/microformats-logo.png&lt;br /&gt;
&lt;br /&gt;
=== logo text ===&lt;br /&gt;
https://web.archive.org/web/20110820103746/http://img.skitch.com/20090715-c3xmikadkj8udt4sq6aqfkqtac.png&lt;br /&gt;
&lt;br /&gt;
* High-resolution [http://vault.simplebits.com/bits/microformats/microformats-logo.eps EPS] and  [http://vault.simplebits.com/bits/microformats/microformats-logo.png transparent PNG] versions of the microformats logo text by [[User:DanCederholm|Dan Cederholm]].&lt;br /&gt;
* the microformats typeface is [https://www.emigre.com/Fonts/Solex Solex Medium] by Emigre.&lt;br /&gt;
&lt;br /&gt;
=== logo mark ===&lt;br /&gt;
* An [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.svg SVG] and [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.png PNG] (for Fireworks) version, by [[User:Remi|Rémi Prévost]]. Released under [https://creativecommons.org/licenses/by-nc-sa/3.0/ CC BY-NC-SA].&lt;br /&gt;
* An [https://github.com/btrem/svg-graphics/blob/master/web-technologies/microformats.svg SVG] version by [https://btrem.com Brian Tremblay]. Released under [https://github.com/btrem/svg-graphics/blob/72b50c0690ccd8db3198118468868679540eb358/LICENSE GNU General Public License v3.0].&lt;br /&gt;
** Also available (slightly modified) [https://github.com/edent/SuperTinyIcons/pull/442 as part of] the [https://github.com/edent/SuperTinyIcons Super Tiny Web Icons collection]. Released under [https://github.com/edent/SuperTinyIcons/blob/e6ea45f6441bd0111295b2713df73c1502de6ec5/LICENSE MIT License].&lt;br /&gt;
&lt;br /&gt;
== POSH ==&lt;br /&gt;
* [[posh|POSH]] logos and buttons&lt;br /&gt;
&lt;br /&gt;
== stickers ==&lt;br /&gt;
See the [[stickers]] page to easily order a set of moo microformats stickers!&lt;br /&gt;
&lt;br /&gt;
== T-Shirts ==&lt;br /&gt;
* See [http://flickr.com/photos/tags/microformatstshirt photos of microformats tshirts on Flickr] (the [http://flickr.com/photos/tags/microformatstshirt/clusters/ clusters] are especially fun)&lt;br /&gt;
** Note also [http://pixelsebi.com/2006-10-26/microformats-t-shirt-in-second-life/ microformats t-shirt in Second Life]&lt;br /&gt;
=== do it yourself tshirts ===&lt;br /&gt;
[[User:TheJbf|Burcu Dogan]] has made her own microformats t-shirt:&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528054541if_/http://i44.tinypic.com/2s01i1j.jpg&lt;br /&gt;
&lt;br /&gt;
For those who are not able to find a microformats t-shirt, it is possible to make one at home less than an hour. The requirements for such a pressing process are listed below:&lt;br /&gt;
* A high quality microformats logo (which can be found below the '''Logo headline''' on this page)&lt;br /&gt;
* A black t-shirt&lt;br /&gt;
* An iron-on transfer paper for '''dark t-shirts''' (note that printers doesn't print white, so there're special papers to print white on dark)&lt;br /&gt;
* An iron an a hard surface. (Ironing press with a large surface is highly recommended.)&lt;br /&gt;
* A laser printer&lt;br /&gt;
* Sharp and sensitive scissors&lt;br /&gt;
* Non-metalic heat resisting papers&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' Take the instructions on the transfer paper you bought as the first reference, we're not responsible for unsuccessful attempts. Tips about pressing can change from paper to paper.)&lt;br /&gt;
&lt;br /&gt;
Firstly, you need to print the logo on the transfer paper. Transfer papers for dark t-shirts are sticky backed white papers which vary in size. You need to decide which size you want to press on your t-shirt. A4 and A3 are suitable for microformats t-shirts.&lt;br /&gt;
&lt;br /&gt;
Print the logo with a black background. The result of the paper printed should look like this: &lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528052329if_/http://i40.tinypic.com/2ylqqmb.jpg&lt;br /&gt;
&lt;br /&gt;
(You can, of course decrease, the amount of background area to save ink)&lt;br /&gt;
&lt;br /&gt;
Now it is time to separate logo from the background. Carefully clip the edges and get the logo all alone. White borders should stay with the green layers, don't make a mistake by clipping them out.&lt;br /&gt;
&lt;br /&gt;
Prepare the iron press, you will need the highest temperature with no stream to transfer successfully. Give your press at least 10 minutes to heat fully. While the iron is heating, decide which position your logo should appear. Use a ruler to check if the logo is positioned symmetrically.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528061614if_/http://i41.tinypic.com/2v334pc.png&lt;br /&gt;
&lt;br /&gt;
If your iron press is heated, gently peel the tiny paper on the back of the transfer paper to make it sticky. Place it on the t-shirt and put 1 or 2 non-metalic heat resisting paper of any kind on the logo. Be sure that transfer paper doesn't overlap.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120601000105if_/http://i40.tinypic.com/kcl7gk.png&lt;br /&gt;
&lt;br /&gt;
Press the iron for 10-15 seconds. This actually depends on the paper you are using, so it is best to follow the instructions on the iron-on transfer paper you purchased. If necessary repress the iron on the whole surface for 5-10 seconds again. &lt;br /&gt;
&lt;br /&gt;
And, you made a new microformats t-shirt! Don't forget to take a picture and share.&lt;br /&gt;
&lt;br /&gt;
Note that you should hand wash your t-shirt and iron it from back carefully. Don't forget that it is also possible to use another fabrics such as bags to print microformats logos. We're waiting for your creations.&lt;br /&gt;
&lt;br /&gt;
== External online community resources ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* See [http://www.youtube.com/results?search_query=microformats videos of microformats on YouTube] or [http://vimeo.com/groups/microformats Vimeo], in particular, a [http://www.youtube.com/watch?v=UAV4SGpPuQI video of a microformats tshirt] ([http://www.flickr.com/photos/fumi/372068162/ photo]).&lt;br /&gt;
&lt;br /&gt;
===Social networking===&lt;br /&gt;
Groups for fans and advocates of microformats to join or follow:&amp;lt;!--listed alphabetically--&amp;gt;&lt;br /&gt;
* [http://www.facebook.com/microformats Facebook microformats fan page]&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=2374732285 Facebook microformats group]&lt;br /&gt;
* [http://flickr.com/groups/microformats/ Flickr microformats group]&lt;br /&gt;
* [http://getsatisfaction.com/microformats microformats on Satisfaction]&lt;br /&gt;
* [http://twitter.com/microformats microformats on Twitter].&lt;br /&gt;
&lt;br /&gt;
=== wiki-communities ===&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats Wikipedia: Project Microformats]&lt;br /&gt;
**[http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%9C%84%ED%82%A4%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%ED%8F%AC%EB%A7%B7 -&amp;quot; - in Korean]&lt;br /&gt;
**[http://zh.wikipedia.org/wiki/Wikipedia:%E5%B0%88%E9%A1%8C/%E5%BE%AE%E6%A0%BC%E5%BC%8F -&amp;quot; - in Chinese]&lt;br /&gt;
* [http://www.usemod.com/cgi-bin/mb.pl?MicroFormats meatball:microformats] -- a first page (stub to be reviewed) dedicated to have any review/opinion from the meatballers especially on the wiki-formats.&lt;br /&gt;
* [http://communitywiki.org/fr/MicroFormats communitywiki:microformats] -- an old multilingual page with a blockcodemachine proposal.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[buttons]]&lt;br /&gt;
* [[podcasts]]&lt;br /&gt;
* [[presentations]]&lt;br /&gt;
* [[press]]&lt;br /&gt;
* [[2d_barcodes]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70256</id>
		<title>spread-microformats</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=spread-microformats&amp;diff=70256"/>
		<updated>2020-10-08T17:12:09Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* logo mark */ Add Brian Tremblay's SVG work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Spread Microformats}}&lt;br /&gt;
&lt;br /&gt;
Inspired by [http://spreadfirefox.com/ Spread Firefox], this page is for sharing community resources for marketing microformats such as [[buttons]], banners, wallpaper / desktop screens, logo graphics, [[stickers]], t-shirts etc.&lt;br /&gt;
&lt;br /&gt;
== Email ==&lt;br /&gt;
* See [[advocacy-email-samples]] for some sample emails you can copy/customize and send to site owners to encourage them adopt microformats.&lt;br /&gt;
&lt;br /&gt;
== Wallpaper ==&lt;br /&gt;
=== Wallpaper and desktop screens. ===&lt;br /&gt;
* A [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/ wallpaper] by [[User:Remi|Rémi Prévost]]&lt;br /&gt;
&lt;br /&gt;
== Logo ==&lt;br /&gt;
https://indieweb.org/images/8/80/microformats-logo.png&lt;br /&gt;
=== logo text ===&lt;br /&gt;
&lt;br /&gt;
https://web.archive.org/web/20110820103746/http://img.skitch.com/20090715-c3xmikadkj8udt4sq6aqfkqtac.png&lt;br /&gt;
&lt;br /&gt;
* High-resolution [http://simplebits.com/bits/microformats/microformats-logo.eps EPS] and  [http://simplebits.com/bits/microformats/microformats-logo.png transparent PNG] versions of the microformats logo text by [[User:DanCederholm|Dan Cederholm]].&lt;br /&gt;
* the microformats typeface is [http://new.myfonts.com/fonts/emigre/solex/medium/ Solex] by Emigre.&lt;br /&gt;
&lt;br /&gt;
=== logo mark ===&lt;br /&gt;
* An [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.svg SVG] and [https://web.archive.org/web/20111128072549/http://remiprevost.com/images/wallpapers/microformats/mf-vector.png PNG] (for Fireworks) version, by [[User:Remi|Rémi Prévost]]. Released under [https://creativecommons.org/licenses/by-nc-sa/3.0/ CC BY-NC-SA].&lt;br /&gt;
* An [https://github.com/btrem/svg-graphics/blob/master/web-technologies/microformats.svg SVG] version by [https://btrem.com Brian Tremblay]. Also available [https://github.com/edent/SuperTinyIcons/pull/442 as part of] the [https://github.com/edent/SuperTinyIcons Super Tiny Web Icons collection].&lt;br /&gt;
&lt;br /&gt;
== POSH ==&lt;br /&gt;
* [[posh|POSH]] logos and buttons&lt;br /&gt;
&lt;br /&gt;
== stickers ==&lt;br /&gt;
See the [[stickers]] page to easily order a set of moo microformats stickers!&lt;br /&gt;
&lt;br /&gt;
== T-Shirts ==&lt;br /&gt;
* See [http://flickr.com/photos/tags/microformatstshirt photos of microformats tshirts on Flickr] (the [http://flickr.com/photos/tags/microformatstshirt/clusters/ clusters] are especially fun)&lt;br /&gt;
** Note also [http://pixelsebi.com/2006-10-26/microformats-t-shirt-in-second-life/ microformats t-shirt in Second Life]&lt;br /&gt;
=== do it yourself tshirts ===&lt;br /&gt;
[[User:TheJbf|Burcu Dogan]] has made her own microformats t-shirt:&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528054541if_/http://i44.tinypic.com/2s01i1j.jpg&lt;br /&gt;
&lt;br /&gt;
For those who are not able to find a microformats t-shirt, it is possible to make one at home less than an hour. The requirements for such a pressing process are listed below:&lt;br /&gt;
* A high quality microformats logo (which can be found below the '''Logo headline''' on this page)&lt;br /&gt;
* A black t-shirt&lt;br /&gt;
* An iron-on transfer paper for '''dark t-shirts''' (note that printers doesn't print white, so there're special papers to print white on dark)&lt;br /&gt;
* An iron an a hard surface. (Ironing press with a large surface is highly recommended.)&lt;br /&gt;
* A laser printer&lt;br /&gt;
* Sharp and sensitive scissors&lt;br /&gt;
* Non-metalic heat resisting papers&lt;br /&gt;
&lt;br /&gt;
('''Warning:''' Take the instructions on the transfer paper you bought as the first reference, we're not responsible for unsuccessful attempts. Tips about pressing can change from paper to paper.)&lt;br /&gt;
&lt;br /&gt;
Firstly, you need to print the logo on the transfer paper. Transfer papers for dark t-shirts are sticky backed white papers which vary in size. You need to decide which size you want to press on your t-shirt. A4 and A3 are suitable for microformats t-shirts.&lt;br /&gt;
&lt;br /&gt;
Print the logo with a black background. The result of the paper printed should look like this: &lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528052329if_/http://i40.tinypic.com/2ylqqmb.jpg&lt;br /&gt;
&lt;br /&gt;
(You can, of course decrease, the amount of background area to save ink)&lt;br /&gt;
&lt;br /&gt;
Now it is time to separate logo from the background. Carefully clip the edges and get the logo all alone. White borders should stay with the green layers, don't make a mistake by clipping them out.&lt;br /&gt;
&lt;br /&gt;
Prepare the iron press, you will need the highest temperature with no stream to transfer successfully. Give your press at least 10 minutes to heat fully. While the iron is heating, decide which position your logo should appear. Use a ruler to check if the logo is positioned symmetrically.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120528061614if_/http://i41.tinypic.com/2v334pc.png&lt;br /&gt;
&lt;br /&gt;
If your iron press is heated, gently peel the tiny paper on the back of the transfer paper to make it sticky. Place it on the t-shirt and put 1 or 2 non-metalic heat resisting paper of any kind on the logo. Be sure that transfer paper doesn't overlap.&lt;br /&gt;
&lt;br /&gt;
http://web.archive.org/web/20120601000105if_/http://i40.tinypic.com/kcl7gk.png&lt;br /&gt;
&lt;br /&gt;
Press the iron for 10-15 seconds. This actually depends on the paper you are using, so it is best to follow the instructions on the iron-on transfer paper you purchased. If necessary repress the iron on the whole surface for 5-10 seconds again. &lt;br /&gt;
&lt;br /&gt;
And, you made a new microformats t-shirt! Don't forget to take a picture and share.&lt;br /&gt;
&lt;br /&gt;
Note that you should hand wash your t-shirt and iron it from back carefully. Don't forget that it is also possible to use another fabrics such as bags to print microformats logos. We're waiting for your creations.&lt;br /&gt;
&lt;br /&gt;
== External online community resources ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
* See [http://www.youtube.com/results?search_query=microformats videos of microformats on YouTube] or [http://vimeo.com/groups/microformats Vimeo], in particular, a [http://www.youtube.com/watch?v=UAV4SGpPuQI video of a microformats tshirt] ([http://www.flickr.com/photos/fumi/372068162/ photo]).&lt;br /&gt;
&lt;br /&gt;
===Social networking===&lt;br /&gt;
Groups for fans and advocates of microformats to join or follow:&amp;lt;!--listed alphabetically--&amp;gt;&lt;br /&gt;
* [http://www.facebook.com/microformats Facebook microformats fan page]&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=2374732285 Facebook microformats group]&lt;br /&gt;
* [http://flickr.com/groups/microformats/ Flickr microformats group]&lt;br /&gt;
* [http://getsatisfaction.com/microformats microformats on Satisfaction]&lt;br /&gt;
* [http://twitter.com/microformats microformats on Twitter].&lt;br /&gt;
&lt;br /&gt;
=== wiki-communities ===&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats Wikipedia: Project Microformats]&lt;br /&gt;
**[http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EC%9C%84%ED%82%A4%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%ED%8F%AC%EB%A7%B7 -&amp;quot; - in Korean]&lt;br /&gt;
**[http://zh.wikipedia.org/wiki/Wikipedia:%E5%B0%88%E9%A1%8C/%E5%BE%AE%E6%A0%BC%E5%BC%8F -&amp;quot; - in Chinese]&lt;br /&gt;
* [http://www.usemod.com/cgi-bin/mb.pl?MicroFormats meatball:microformats] -- a first page (stub to be reviewed) dedicated to have any review/opinion from the meatballers especially on the wiki-formats.&lt;br /&gt;
* [http://communitywiki.org/fr/MicroFormats communitywiki:microformats] -- an old multilingual page with a blockcodemachine proposal.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[buttons]]&lt;br /&gt;
* [[podcasts]]&lt;br /&gt;
* [[presentations]]&lt;br /&gt;
* [[press]]&lt;br /&gt;
* [[2d_barcodes]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-card-brainstorming&amp;diff=67000</id>
		<title>h-card-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-card-brainstorming&amp;diff=67000"/>
		<updated>2019-04-11T07:57:15Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Pronouns */ Add link to Jamie Tanna&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entry-title&amp;gt;h-card Brainstorming &amp;lt;/entry-title&amp;gt;&lt;br /&gt;
This page is for brainstorming about various uses, details of, and additions to [[h-card]].&lt;br /&gt;
&lt;br /&gt;
This page contains &amp;lt;em&amp;gt;proposals&amp;lt;/em&amp;gt;.  For the current state please see [[h-card]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
Brainstorm proposals that illustrate how to use the existing hCard spec will likely be incorporated into existing hCard documentation such as:&lt;br /&gt;
* [[h-card-authoring]]&lt;br /&gt;
* [[h-card-examples]]&lt;br /&gt;
* ... and potentially additional documentation.&lt;br /&gt;
&lt;br /&gt;
== Explorations ==&lt;br /&gt;
Add new explorations here as === === triple level headings&lt;br /&gt;
&lt;br /&gt;
=== Pronouns ===&lt;br /&gt;
Ashton McAllan marks up her pronouns as:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-nominative&amp;quot;&amp;gt;she&amp;lt;/span&amp;gt; / &lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-oblique&amp;quot;&amp;gt;her&amp;lt;/span&amp;gt; / &lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-posessive&amp;quot;&amp;gt;hers&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
in her [[h-card]] on http://acegiak.net/&lt;br /&gt;
&lt;br /&gt;
Each pronoun is listed individually with it's form allowing parsers and programs to identify them for different uses. Other languages may include different forms of pronoun. This solution is suggested after reading [https://en.wikipedia.org/wiki/Personal_pronoun the Wikipedia Personal Pronouns article]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:GRegorLove|gRegor Morrill]] marks up his pronouns similarly (note corrected spelling of &amp;quot;possessive&amp;quot;):&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pronouns: &amp;lt;span class=&amp;quot;p-x-pronoun-nominative&amp;quot;&amp;gt;he&amp;lt;/span&amp;gt;/&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-oblique&amp;quot;&amp;gt;him&amp;lt;/span&amp;gt;/&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-possessive&amp;quot;&amp;gt;his&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
on http://gregorlove.com/about/&lt;br /&gt;
&lt;br /&gt;
[https://www.jvt.me/ Jamie Tanna] followed this same pattern, and [https://www.jvt.me/posts/2019/04/10/pronouns-microformats/ blogged about implementing it, and why].&lt;br /&gt;
&lt;br /&gt;
[http://vanderven.se/martijn/ Martijn van der Ven] marks up his pronouns (more clearly on [http://vanderven.se/martijn/gender/ his gender page]) using only a dictionary URL:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
  I use male pronouns (&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://nl.wiktionary.org/wiki/hij#Persoonlijk_voornaamwoord&amp;quot; lang=&amp;quot;nl&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;hij&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://sv.wiktionary.org/wiki/han#Pronomen&amp;quot; lang=&amp;quot;sv&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;han&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://en.wiktionary.org/wiki/he#Pronoun&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;he&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://de.wiktionary.org/wiki/er#Personalpronomen&amp;quot; lang=&amp;quot;de&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;er&amp;lt;/a&amp;gt;&lt;br /&gt;
  ) but also accept gender-neutral pronouns (&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://sv.wiktionary.org/wiki/hen#Pronomen&amp;quot; lang=&amp;quot;sv&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;hen&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://en.wiktionary.org/wiki/they#Pronoun&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;they&amp;lt;/a&amp;gt;&lt;br /&gt;
  ). If you are writing about me and are in doubt: ask.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* There is no way Martijn sees himself supporting 4 cases for English (subjective, objective, reflexive, and possessive), 5 cases for German (nominative, accusative, genitive, dative, and possessive), and a possible 13 cases for Finnish in the future. Doubtful anyone else will be doing that either: at least 1 implementation (by [https://unrelenting.technology/ Greg V]) of English p-x-pronoun-* exists in the wild that only specifies 2 cases.&lt;br /&gt;
* Simplifying for human visitors who can instantly get started with my pronoun of choice is seen as more important than catering to theoretical computer parsers.&lt;br /&gt;
* His thought process [http://wiki.zegnat.net/microformats/pronoun has been documented].&lt;br /&gt;
* [https://00dani.me/ Danielle McLean] is also using &amp;lt;code&amp;gt;u-pronoun&amp;lt;/code&amp;gt;, linking to the popular [https://pronoun.is/ Pronoun Island] registry page for her pronouns: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;a class=&amp;quot;u-pronoun&amp;quot; href=&amp;quot;https://pronoun.is/she/her&amp;quot;&amp;gt;she/her&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Started looking for a way to mark-up pronouns because the p-sex/p-gender-identity combo is “[https://chat.indieweb.org/2017-10-29/1509268972735000 unbelievably terrible]”.&lt;br /&gt;
** [https://chat.indieweb.org/2017-10-29/1509269322353000 Agreed with Martijn’s arguments] for why a link is better than per-case mark-up.&lt;br /&gt;
* [[User:Sknebel|sknebel]] [https://chat.indieweb.org/microformats/2018-08-19#t1534703222243600 notes] (2018-08-19) that he would prefer to see text (that possibly leads him to Google for proper use) than just URLs in the parser output. Although the URLs are useful, [https://chat.indieweb.org/microformats/2018-08-19#t1534705418184500 a simple name:url pair] would increase the usefulness.&lt;br /&gt;
** Possibly something like &amp;lt;code&amp;gt;.[up]-pronoun.h-pronoun &amp;gt; .u-url&amp;lt;/code&amp;gt; paired with &amp;lt;code&amp;gt;.[up]-pronoun.h-pronoun &amp;gt; .p-name&amp;lt;/code&amp;gt;. [[h-cite]] would be prior art as also expressing “a reference to &amp;lt;i&amp;gt;[something]&amp;lt;/i&amp;gt; in some way with name and url”. [https://chat.indieweb.org/microformats/2018-08-19/1534705492641900]&lt;br /&gt;
&lt;br /&gt;
==== Other Platforms ====&lt;br /&gt;
A [https://github.com/tootsuite/mastodon/issues/3211 GitHub issue about adding pronoun fields] to [https://indieweb.org/Mastodon Mastodon] was [https://chat.indieweb.org/microformats/2018-08-19#t1534700249077000 discussed in #microformats] on 2018-08-19. The comments in the issue bring up some points previously brought up by Martijn in regards to how useful it would be for machines. Also includes interesting survey data showing that just listing the minimal amount of cases does not show all inflections, e.g. does “ne/nim” refer to “ne/nem/neir/neirs/nemself” or “ne/nem/nayr/nayrs/nemself”?&lt;br /&gt;
&lt;br /&gt;
==== Pronouns Prior Art ====&lt;br /&gt;
* MediaWiki preferences, e.g. https://www.w3.org/wiki/Special:Preferences (when logged in) has a radio button group from you can choose your nominative pronoun (or none).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
How do you prefer to be described?	&lt;br /&gt;
(*) (I prefer not to say)&lt;br /&gt;
( ) She edits wiki pages&lt;br /&gt;
( ) He edits wiki pages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[hcard-brainstorming]] - for additional proposals to bring forth to h-card&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-experimental-properties&amp;diff=66999</id>
		<title>microformats2-experimental-properties</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-experimental-properties&amp;diff=66999"/>
		<updated>2019-04-11T07:55:23Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* p-x-pronoun-* */ Refer to the brainstorm discussion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== h-as-* ==&lt;br /&gt;
ActivityStreams-based post types, usually done in combination with h-entry.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [http://glennjones.net/ glennjones.net] ([http://glennjones.net/notes/2015-07-11 example: h-as-note])&lt;br /&gt;
&lt;br /&gt;
Formerly:&lt;br /&gt;
* tantek.com - used to (~2014) use h-as-article and h-as-note but decided this type of explicit typing was unnecessary from a format perspective so dropped them. [[User:Tantek|Tantek]] 19:52, 11 July 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
== h-x-username ==&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [http://glennjones.net/ glennjones.net] ([http://glennjones.net/notes/2015-07-11 example])&lt;br /&gt;
* [http://tantek.com/ tantek.com] ([http://tantek.com/2015/191/t1/indiewebcamp-pre-party example])&lt;br /&gt;
&lt;br /&gt;
how is this different from [[h-card]]'s p-nickname ? [[User:Kevin Marks|Kevin Marks]]&lt;br /&gt;
&lt;br /&gt;
== p-x-dietary-preference ==&lt;br /&gt;
&lt;br /&gt;
For dietary preferences (vegetarian, vegan etc.) - the intention is to help event organisers organise catering by aggregating together the dietary preferences of attendees.&lt;br /&gt;
&lt;br /&gt;
=== Suggested values ===&lt;br /&gt;
* ovo-lacto vegetarian&lt;br /&gt;
* lacto vegetarian&lt;br /&gt;
* ovo vegetarian&lt;br /&gt;
* vegan&lt;br /&gt;
* pescatarian&lt;br /&gt;
* omnivore&lt;br /&gt;
* gluten-free&lt;br /&gt;
* lactose-free&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* [https://tommorris.org/ tommorris.org]&lt;br /&gt;
&lt;br /&gt;
== p-x-pronoun-* ==&lt;br /&gt;
&lt;br /&gt;
Properties to identify a user's preferred pronouns&lt;br /&gt;
&lt;br /&gt;
; p-x-pronoun-nominative: the user's preferred nominative pronoun (e.g. he, she, they)&lt;br /&gt;
; p-x-pronoun-oblique: the user's preferred oblique pronoun (e.g. him, her, them)&lt;br /&gt;
; p-x-pronoun-possessive: the user's preferred possessive pronoun (e.g. his, hers, theirs)&lt;br /&gt;
&lt;br /&gt;
See also the [[h-card-brainstorming#Pronouns|h-card brainstorming]] page for more pronoun discussion and alternative properties.&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
* [https://waterpigs.co.uk/ waterpigs.co.uk]&lt;br /&gt;
* [https://unrelenting.technology/ unrelenting.technology]&lt;br /&gt;
* [[User:GRegorLove|gRegor]] on https://gregorlove.com/about&lt;br /&gt;
&lt;br /&gt;
== p-x-sexual-orientation ==&lt;br /&gt;
&lt;br /&gt;
For when we eventually build the open web dating service.&lt;br /&gt;
&lt;br /&gt;
;Suggested values:&lt;br /&gt;
:* straight or heterosexual&lt;br /&gt;
:* bisexual&lt;br /&gt;
:* pansexual&lt;br /&gt;
:* gay or lesbian or homosexual&lt;br /&gt;
:* asexual&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
* [https://tommorris.org/ tommorris.org]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66998</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66998"/>
		<updated>2019-03-09T22:07:40Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Add a more complete document preface&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains an informative description of &amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt;, the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. Note that the [[microformats2-parsing|microformats2 parsing specification]] is the only authoritative source for its own output.&lt;br /&gt;
&lt;br /&gt;
'''Goal:''' Document possible values – with examples – of the official serialisation format of microformats generated by [[microformats2#Parsers|microformats2 parsers]]. This format can be used to compare parsers and create [[test-suite|test suites]]. It also clarifies the format for other specifications that rely on the serialisation, such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
'''Audience:''' Parser authors, parser users, web developers. This document is written for anyone working with microformats2 in their serialised form, so they can read about the format generated by the parsing algorithm without having to understand the actual parsing itself.&lt;br /&gt;
&lt;br /&gt;
'''Author(s):''' [[User:Zegnat|Martijn van der Ven]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' An extra optional member called &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66967&amp;amp;oldid=66966 added in December].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' A new [[microformats2-parsing#parse_an_img_element_for_src_and_alt|valid value for images]] was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66969&amp;amp;oldid=66967 added in January].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66997</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66997"/>
		<updated>2019-03-09T19:48:44Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* properties */ Outdated: image value (featuring alt) is not documented&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' An extra optional member called &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66967&amp;amp;oldid=66966 added in December].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' A new [[microformats2-parsing#parse_an_img_element_for_src_and_alt|valid value for images]] was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66969&amp;amp;oldid=66967 added in January].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66996</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66996"/>
		<updated>2019-03-09T19:41:10Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* microformat2 Objects */ Sneaking in some outdated warnings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#F8F7EC;font-size:smaller&amp;quot;&amp;gt;🕰️ '''This section is outdated.''' An extra optional member called &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; was [http://microformats.org/wiki/index.php?title=microformats2-parsing&amp;amp;diff=66967&amp;amp;oldid=66966 added in December].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-resume&amp;diff=66918</id>
		<title>h-resume</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-resume&amp;diff=66918"/>
		<updated>2018-08-23T20:40:37Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Examples in the Wild */ Add petermolnar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;h-resume&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-resume&amp;lt;/dfn&amp;gt; is a simple, open format for publishing resumes and CVs on on the web. h-resume is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML.&lt;br /&gt;
&lt;br /&gt;
h-resume is the [[microformats2]] update to [[hResume]].&lt;br /&gt;
&lt;br /&gt;
{{cc0-owfa-license}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
Here is a simple resume example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;h-resume&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;span class=&amp;quot;p-name&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;a class=&amp;quot;p-contact h-card&amp;quot; href=&amp;quot;http://example.org&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;http://example.org/photo.png&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    Joe Bloggs&lt;br /&gt;
   &amp;lt;/a&amp;gt;&lt;br /&gt;
   resume&lt;br /&gt;
  &amp;lt;/span&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;p class=&amp;quot;p-summary&amp;quot;&amp;gt;Joe is a top-notch llama farmer with a degree in &amp;lt;span class=&amp;quot;p-skill&amp;quot;&amp;gt;Llama husbandry&amp;lt;/span&amp;gt; and a thirst to produce the finest wool known to man&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;
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-resume&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 resume&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;contact&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;photo&amp;quot;: [&lt;br /&gt;
                &amp;quot;http://example.org/photo.png&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;
            }&lt;br /&gt;
          }&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;summary&amp;quot;: [&lt;br /&gt;
          &amp;quot;Joe is a top-notch llama farmer with a degree in Llama husbandry and a thirst to produce the finest wool known to man&amp;quot;&lt;br /&gt;
        ],&lt;br /&gt;
        &amp;quot;skill&amp;quot;: [&lt;br /&gt;
          &amp;quot;Llama husbandry&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;
=== Get started ===&lt;br /&gt;
The class '''&amp;lt;code&amp;gt;h-resume&amp;lt;/code&amp;gt;''' is a ''root class name'' that indicates the presence of an h-resume.&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-resume properties, inside an element with class '''h-resume''':&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-name&amp;lt;/code&amp;gt;''' - brief name of the resume&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-event]]&amp;lt;/code&amp;gt; event, years, embedded &amp;lt;code&amp;gt;[[h-card]]&amp;lt;/code&amp;gt; of the school, location. {{main|h-event}} {{main|h-card}}&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-event]]&amp;lt;/code&amp;gt; event, years, embedded &amp;lt;code&amp;gt;[[h-card]]&amp;lt;/code&amp;gt; of the organization, location, job-title. {{main|h-event}} {{main|h-card}}&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;
All properties are optional.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
'''h-resume''' is a microformats.org draft specification. Public discussion on h-resume takes place on [[h-resume-feedback]] and the #microformats [[irc]] channel on irc.freenode.net.&lt;br /&gt;
&lt;br /&gt;
h-resume is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-resumes up with classic [[hResume]] classnames.&lt;br /&gt;
&lt;br /&gt;
== Property Details ==&lt;br /&gt;
&lt;br /&gt;
(stub, add any property explanations here)&lt;br /&gt;
&lt;br /&gt;
'''p-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-skill vocabulary with p-name, p-rating, and dt-duration properties.&lt;br /&gt;
&lt;br /&gt;
== Examples in the Wild ==&lt;br /&gt;
* [https://lejenome.github.io/ Moez Bouhlel] has marked up his [https://lejenome.github.io/resume résumé] using h-resume.&lt;br /&gt;
* [[User:Almorca|Almorca]] has marked up [http://www.almorca.es/ his personal web page (in spanish)].&lt;br /&gt;
* [https://petermolnar.net/ Peter Molnar] has marked up [https://petermolnar.net/about.html his resume] (on his about page) using h-resume.&lt;br /&gt;
* … add any h-resume examples you find in the wild&lt;br /&gt;
&lt;br /&gt;
'''Archived examples''' (past examples from sites that may be gone, down, or had markup changes)&lt;br /&gt;
* [[User:Csarven|Sarven Capadisli]] marked up his [https://web.archive.org/web/20160309095003/http://csarven.ca/cv Curriculum Vitae] as an h-resume.&lt;br /&gt;
* … find archive.org links for any broken examples above and move them here&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;
(stub)&lt;br /&gt;
=== Parser Compatibility ===&lt;br /&gt;
Microformats parsers {{should}} detect the following root class name and property names. A microformats2 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;
== Background ==&lt;br /&gt;
&lt;br /&gt;
h-resume is based on the existing [[hResume]] specification.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[h-card]] and [[h-event]] are both embedded in h-resume&lt;br /&gt;
* The [[include-pattern]] is likely to be useful to avoid repeating information in any embedded h-cards&lt;br /&gt;
* [[hResume]] is the classic microformat replaced by h-resume&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-card-brainstorming&amp;diff=66909</id>
		<title>h-card-brainstorming</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-card-brainstorming&amp;diff=66909"/>
		<updated>2018-08-19T20:37:09Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Pronouns */ Add link to Mastodon discussion as discussed on IRC. Add feedback from User:Sknebel on User:Zegnat’s pronoun work.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;entry-title&amp;gt;h-card Brainstorming &amp;lt;/entry-title&amp;gt;&lt;br /&gt;
This page is for brainstorming about various uses, details of, and additions to [[h-card]].&lt;br /&gt;
&lt;br /&gt;
This page contains &amp;lt;em&amp;gt;proposals&amp;lt;/em&amp;gt;.  For the current state please see [[h-card]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
Brainstorm proposals that illustrate how to use the existing hCard spec will likely be incorporated into existing hCard documentation such as:&lt;br /&gt;
* [[h-card-authoring]]&lt;br /&gt;
* [[h-card-examples]]&lt;br /&gt;
* ... and potentially additional documentation.&lt;br /&gt;
&lt;br /&gt;
== Explorations ==&lt;br /&gt;
Add new explorations here as === === triple level headings&lt;br /&gt;
&lt;br /&gt;
=== Pronouns ===&lt;br /&gt;
Ashton McAllan marks up her pronouns as:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-nominative&amp;quot;&amp;gt;she&amp;lt;/span&amp;gt; / &lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-oblique&amp;quot;&amp;gt;her&amp;lt;/span&amp;gt; / &lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-posessive&amp;quot;&amp;gt;hers&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
in her [[h-card]] on http://acegiak.net/&lt;br /&gt;
&lt;br /&gt;
Each pronoun is listed individually with it's form allowing parsers and programs to identify them for different uses. Other languages may include different forms of pronoun. This solution is suggested after reading [https://en.wikipedia.org/wiki/Personal_pronoun the Wikipedia Personal Pronouns article]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:GRegorLove|gRegor Morrill]] marks up his pronouns similarly (note corrected spelling of &amp;quot;possessive&amp;quot;):&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pronouns: &amp;lt;span class=&amp;quot;p-x-pronoun-nominative&amp;quot;&amp;gt;he&amp;lt;/span&amp;gt;/&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-oblique&amp;quot;&amp;gt;him&amp;lt;/span&amp;gt;/&lt;br /&gt;
&amp;lt;span class=&amp;quot;p-x-pronoun-possessive&amp;quot;&amp;gt;his&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
on http://gregorlove.com/about/&lt;br /&gt;
&lt;br /&gt;
[http://vanderven.se/martijn/ Martijn van der Ven] marks up his pronouns (more clearly on [http://vanderven.se/martijn/gender/ his gender page]) using only a dictionary URL:&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
  I use male pronouns (&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://nl.wiktionary.org/wiki/hij#Persoonlijk_voornaamwoord&amp;quot; lang=&amp;quot;nl&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;hij&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://sv.wiktionary.org/wiki/han#Pronomen&amp;quot; lang=&amp;quot;sv&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;han&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://en.wiktionary.org/wiki/he#Pronoun&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;he&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://de.wiktionary.org/wiki/er#Personalpronomen&amp;quot; lang=&amp;quot;de&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;er&amp;lt;/a&amp;gt;&lt;br /&gt;
  ) but also accept gender-neutral pronouns (&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://sv.wiktionary.org/wiki/hen#Pronomen&amp;quot; lang=&amp;quot;sv&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;hen&amp;lt;/a&amp;gt;,&lt;br /&gt;
  &amp;lt;a href=&amp;quot;https://en.wiktionary.org/wiki/they#Pronoun&amp;quot; class=&amp;quot;u-pronoun&amp;quot;&amp;gt;they&amp;lt;/a&amp;gt;&lt;br /&gt;
  ). If you are writing about me and are in doubt: ask.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* There is no way Martijn sees himself supporting 4 cases for English (subjective, objective, reflexive, and possessive), 5 cases for German (nominative, accusative, genitive, dative, and possessive), and a possible 13 cases for Finnish in the future. Doubtful anyone else will be doing that either: at least 1 implementation (by [https://unrelenting.technology/ Greg V]) of English p-x-pronoun-* exists in the wild that only specifies 2 cases.&lt;br /&gt;
* Simplifying for human visitors who can instantly get started with my pronoun of choice is seen as more important than catering to theoretical computer parsers.&lt;br /&gt;
* His thought process [http://wiki.zegnat.net/microformats/pronoun has been documented].&lt;br /&gt;
* [https://00dani.me/ Danielle McLean] is also using &amp;lt;code&amp;gt;u-pronoun&amp;lt;/code&amp;gt;, linking to the popular [https://pronoun.is/ Pronoun Island] registry page for her pronouns: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;a class=&amp;quot;u-pronoun&amp;quot; href=&amp;quot;https://pronoun.is/she/her&amp;quot;&amp;gt;she/her&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Started looking for a way to mark-up pronouns because the p-sex/p-gender-identity combo is “[https://chat.indieweb.org/2017-10-29/1509268972735000 unbelievably terrible]”.&lt;br /&gt;
** [https://chat.indieweb.org/2017-10-29/1509269322353000 Agreed with Martijn’s arguments] for why a link is better than per-case mark-up.&lt;br /&gt;
* [[User:Sknebel|sknebel]] [https://chat.indieweb.org/microformats/2018-08-19#t1534703222243600 notes] (2018-08-19) that he would prefer to see text (that possibly leads him to Google for proper use) than just URLs in the parser output. Although the URLs are useful, [https://chat.indieweb.org/microformats/2018-08-19#t1534705418184500 a simple name:url pair] would increase the usefulness.&lt;br /&gt;
** Possibly something like &amp;lt;code&amp;gt;.[up]-pronoun.h-pronoun &amp;gt; .u-url&amp;lt;/code&amp;gt; paired with &amp;lt;code&amp;gt;.[up]-pronoun.h-pronoun &amp;gt; .p-name&amp;lt;/code&amp;gt;. [[h-cite]] would be prior art as also expressing “a reference to &amp;lt;i&amp;gt;[something]&amp;lt;/i&amp;gt; in some way with name and url”. [https://chat.indieweb.org/microformats/2018-08-19/1534705492641900]&lt;br /&gt;
&lt;br /&gt;
==== Other Platforms ====&lt;br /&gt;
A [https://github.com/tootsuite/mastodon/issues/3211 GitHub issue about adding pronoun fields] to [https://indieweb.org/Mastodon Mastodon] was [https://chat.indieweb.org/microformats/2018-08-19#t1534700249077000 discussed in #microformats] on 2018-08-19. The comments in the issue bring up some points previously brought up by Martijn in regards to how useful it would be for machines. Also includes interesting survey data showing that just listing the minimal amount of cases does not show all inflections, e.g. does “ne/nim” refer to “ne/nem/neir/neirs/nemself” or “ne/nem/nayr/nayrs/nemself”?&lt;br /&gt;
&lt;br /&gt;
==== Pronouns Prior Art ====&lt;br /&gt;
* MediaWiki preferences, e.g. https://www.w3.org/wiki/Special:Preferences (when logged in) has a radio button group from you can choose your nominative pronoun (or none).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
How do you prefer to be described?	&lt;br /&gt;
(*) (I prefer not to say)&lt;br /&gt;
( ) She edits wiki pages&lt;br /&gt;
( ) He edits wiki pages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[h-card]]&lt;br /&gt;
* [[hcard-brainstorming]] - for additional proposals to bring forth to h-card&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=jf2&amp;diff=66866</id>
		<title>jf2</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=jf2&amp;diff=66866"/>
		<updated>2018-06-25T17:21:42Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Specification */ Update the URLs&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://jf2.spec.indieweb.org/ JF2 Post Serialization Format]&lt;br /&gt;
** [https://github.com/indieweb/jf2 On GitHub]&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>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66826</id>
		<title>User:Zegnat</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66826"/>
		<updated>2018-06-11T17:19:43Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Linkify it nice.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Zegnat|Zegnat]] is the handle of [https://vanderven.se/martijn Martijn van der Ven].&lt;br /&gt;
&lt;br /&gt;
Mostly focussed on [[microformats2-parsing|microformats2 parsing]] ([https://github.com/microformats/microformats2-parsing/issues?utf8=%E2%9C%93&amp;amp;q=author%3AZegnat GitHub issues opened]) and have started contributing to [https://github.com/indieweb/php-mf2 the PHP parser].&lt;br /&gt;
&lt;br /&gt;
You can also find me [https://indieweb.org/User:Vanderven.se_martijn on the IndieWeb] and [[IRC|#microformats on freenode]].&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66825</id>
		<title>User:Zegnat</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66825"/>
		<updated>2018-06-11T17:17:06Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Just trying to move the link…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Zegnat|Zegnat]] is the handle of [https://vanderven.se/martijn Martijn van der Ven].&lt;br /&gt;
&lt;br /&gt;
Mostly focussed on [[microformats2-parsing|microformats2 parsing]] (GitHub issues opened: &amp;lt;code&amp;gt;https://github.com/microformats/microformats2-parsing/issues?utf8=%E2%9C%93&amp;amp;q=author%3AZegnat&amp;lt;/code&amp;gt;) and have started contributing to the PHP parser (&amp;lt;code&amp;gt;https://github.com/indieweb/php-mf2&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also find me on the IndieWeb (&amp;lt;code&amp;gt;https://indieweb.org/User:Vanderven.se_martijn&amp;lt;/code&amp;gt;) and in [[irc|#microformats on freenode]].&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66822</id>
		<title>User:Zegnat</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=User:Zegnat&amp;diff=66822"/>
		<updated>2018-06-11T17:08:00Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Create short blurb.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[User:Zegnat|Zegnat]] is the handle of Martijn van der Ven (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://vanderven.se/martijn/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Mostly focussed on [[microformats2-parsing|microformats2 parsing]] (GitHub issues opened: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://github.com/microformats/microformats2-parsing/issues?utf8=%E2%9C%93&amp;amp;q=author%3AZegnat&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) and have started contributing to the PHP parser (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://github.com/indieweb/php-mf2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
You can also find me on the IndieWeb (&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://indieweb.org/User:Vanderven.se_martijn&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) and in [[#microformats on freenode]].&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rel-me&amp;diff=66806</id>
		<title>rel-me</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rel-me&amp;diff=66806"/>
		<updated>2018-05-03T17:32:51Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* articles */ Add write-up “The Real Deal About rel=&amp;quot;me&amp;quot;”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;rel=&amp;quot;me&amp;quot;&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
;short URL&lt;br /&gt;
:http://ufs.cc/w/relme&lt;br /&gt;
&lt;br /&gt;
[[XFN]] 1.1 introduced the &amp;quot;me&amp;quot; [[rel]] value which is used to indicate profile equivalence and for [[identity-consolidation]]. &lt;br /&gt;
&lt;br /&gt;
== example ==&lt;br /&gt;
&amp;lt;code&amp;gt;rel=&amp;quot;me&amp;quot;&amp;lt;/code&amp;gt; is used on hyperlinks from one page about a person to other pages about that same person.&lt;br /&gt;
&lt;br /&gt;
For example, [[User:Tantek|Tantek]]'s [http://tantek.com/ home page] has (markup simplified)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&amp;lt;a href=&amp;quot;https://twitter.com/t&amp;quot; rel=&amp;quot;me&amp;quot;&amp;gt;@t&amp;lt;/a&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his Twitter profile itself has (markup simplified)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=html4strict&amp;gt;&amp;lt;a href=&amp;quot;http://tantek.com/&amp;quot; rel=&amp;quot;me&amp;quot;&amp;gt;http://tantek.com/&amp;lt;/a&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus establishing a bi-directional rel-me link and confirming that the two URLs represent the same person.&lt;br /&gt;
&lt;br /&gt;
Publishers can use the [http://gmpg.org/xfn/creator XFN creator] form to create rel-me hyperlinks.&lt;br /&gt;
&lt;br /&gt;
== screencast and videos ==&lt;br /&gt;
Watch some short videos:&lt;br /&gt;
* [http://www.sixapart.com/static_news/opening_social_graph/xfn_links/xfn_links.html David Recordon's excellent *30 second* explanation of XFN rel=&amp;quot;me&amp;quot;].&lt;br /&gt;
* [http://www.youtube.com/watch?v=LabCylbapuM Brad Fitzpatrick explains rel=&amp;quot;me&amp;quot; and more XFN].&lt;br /&gt;
* [http://www.podtech.net/scobleshow/technology/1611/plaxo-to-ship-online-identity-aggregator-based-on-microformats Joseph Smarr's whiteboard explanation] of rel=&amp;quot;me&amp;quot; as implemented in the Plaxo online identity aggregator.&lt;br /&gt;
Longer:&lt;br /&gt;
* [https://www.youtube.com/watch?v=Q2WzVSVxrrI Gavin Bell on &amp;quot;What is your provenance?&amp;quot;] (40 minutes) - provides a much broader discussion of the problem statement of who is a person on the Web, and starting at about 0:07:30 explains how [[hCard]] + rel=&amp;quot;me&amp;quot; helps solve this problem.&lt;br /&gt;
&lt;br /&gt;
== tutorials ==&lt;br /&gt;
[http://ungeekdapo.wordpress.com/2008/04/29/a-simple-data-portability-project-or-is-it/ A simple data portability project or is it] rel=me summary by Bob Ngu&lt;br /&gt;
&lt;br /&gt;
== domain verification ==&lt;br /&gt;
rel=me is the standard way to check that a website belongs to a user on a 3rd party site.&lt;br /&gt;
&lt;br /&gt;
* read a user's website that they entered into their 3rd party site profile&lt;br /&gt;
* check for a rel=me hyperlink from their website to their 3rd party site profile&lt;br /&gt;
* if such a rel=me hyperlink is found, then the user has proven that they control that personal website sufficient to put a link back to their 3rd party site profile, and thus domain verification succeeds.&lt;br /&gt;
&lt;br /&gt;
If you're the implementer of such a 3rd party site with user profiles, implement the above to implement a personal website domain verification feature.&lt;br /&gt;
&lt;br /&gt;
== rel-me-auth ==&lt;br /&gt;
[[RelMeAuth]] is a proposed open standard for using [[rel-me]] links to profiles on [[OAuth]] supporting services to authenticate via either those profiles or your own site.&lt;br /&gt;
&lt;br /&gt;
In short it is a combination of '''domain verification''' as documented above, and OAuth authorization on the 3rd party site that the user's domain links to.&lt;br /&gt;
&lt;br /&gt;
Read more about how to implement [[RelMeAuth]] and [[web sign-in]].&lt;br /&gt;
&lt;br /&gt;
== implementations ==&lt;br /&gt;
Notable Sites:&lt;br /&gt;
* '''[https://support.google.com/webmasters/answer/1229920 Google]''' uses reciprocal rel=me links for domain verification, which it also uses for independent site [[rel-author]] support.&lt;br /&gt;
* '''[http://blog.app.net/2013/04/29/announcing-domain-verification/ App.net]''' implements rel-me for officially connecting your domain to your app.net account, as well as publishing rel-me on your site.&lt;br /&gt;
&lt;br /&gt;
Services:&lt;br /&gt;
* '''[http://indieauth.com/ IndieAuth]''' is perhaps the most comprehensive [[rel-me]] implementation, using it to implement [[RelMeAuth]] and a superset of [[web-sign-in]] that is focused on [http://indiewebcamp.com/ independent websites].&lt;br /&gt;
&lt;br /&gt;
[[wordpress-plugins|WordPress plugins]]:&lt;br /&gt;
* [http://blog.maybe5.com/?page_id=94 Social Links Wordpress plugin] - supports rel-me links to other services&lt;br /&gt;
* [http://code.l0g.in/about-me/ About Me plugin] (on github) - supports creation of an About Me page with rel-me links to other profiles.&lt;br /&gt;
&lt;br /&gt;
=== advocacy ===&lt;br /&gt;
Advocating rel=me support can be done a few ways, if a site has:&lt;br /&gt;
* user profiles but no &amp;quot;website&amp;quot; field - ask them to add a &amp;quot;website&amp;quot; field and mark it up with rel=me.&lt;br /&gt;
* a &amp;quot;website&amp;quot; field on profiles - ask it to support publishing rel=me&lt;br /&gt;
* a notion of &amp;quot;verification&amp;quot; or &amp;quot;verified&amp;quot; profiles - ask it to do so via confirming reciprocal rel=me&lt;br /&gt;
* login/sign-in - ask it to support [[RelMeAuth]] with a [[Web sign-in]] user interface.&lt;br /&gt;
&lt;br /&gt;
Current requests:&lt;br /&gt;
* [https://github.com/gittip/www.gittip.com/issues/2477 Gittip: Add &amp;quot;website&amp;quot; profile field #2477] - requested 2014-06-07 by Aaron Parecki.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== examples in the wild ==&lt;br /&gt;
Examples of sites publishing rel=me support, e.g. on user profiles.&lt;br /&gt;
&lt;br /&gt;
See:&lt;br /&gt;
* [[hcard-xfn-supporting-friends-lists#Services_with_XFN_rel.3D.22me.22_to_multiple_external_sites|services supporting XFN rel=me]]&lt;br /&gt;
&lt;br /&gt;
== articles ==&lt;br /&gt;
* 2018-04-26 [https://vanderven.se/martijn/ Martijn van der Ven]: [https://wiki.zegnat.net/media/the-real-deal-about-rel-me.html The Real Deal About &amp;lt;code&amp;gt;rel=&amp;quot;me&amp;quot;&amp;lt;/code&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[hcard-xfn-supporting-friends-lists#Services_with_XFN_rel.3D.22me.22_to_multiple_external_sites|services that support rel=&amp;quot;me&amp;quot;]]&lt;br /&gt;
* [[rel-me-faq]]&lt;br /&gt;
* [[xfn]]&lt;br /&gt;
* [[rel]]&lt;br /&gt;
* [[social network portability]]&lt;br /&gt;
* [http://gmpg.org/xfn/11 XFN 1.1 profile]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-card&amp;diff=66804</id>
		<title>h-card</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-card&amp;diff=66804"/>
		<updated>2018-04-30T15:37:36Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Properties */  Oops, copied but didn’t edit&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.&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;
Experimental properties currently in use in the wild but not (yet) part of the official h-card spec.&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-sound&amp;lt;/code&amp;gt;''' - sound file containing the proper pronunciation of the name property, per vCard (RFC 6350).&lt;br /&gt;
** Used by [https://vanderven.se/martijn/ Martijn van der Ven] with a clip of his given name.&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;
* [http://www.securityjobslondon.co.uk Security Jobs London] uses h-card with legacy [[hCard]] fallback markup (to satisfy [https://search.google.com/structured-data/testing-tool Google's Structured Data Testing Tool]) in the footer of each page&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;
* [https://joelpurra.com/ Joel Purra] uses a hidden h-card with legacy [[hCard]] fallback markup (to satisfy [https://search.google.com/structured-data/testing-tool Google's Structured Data Testing Tool]) on the front page&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.me/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>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-card&amp;diff=66803</id>
		<title>h-card</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-card&amp;diff=66803"/>
		<updated>2018-04-30T15:25:52Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* Properties */ List the (u-)sound property, with example in the wild.&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.&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;
Experimental properties currently in use in the wild but not (yet) part of the official h-review spec.&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-sound&amp;lt;/code&amp;gt;''' - sound file containing the proper pronunciation of the name property, per vCard (RFC 6350).&lt;br /&gt;
** Used by [https://vanderven.se/martijn/ Martijn van der Ven] with a clip of his given name.&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;
* [http://www.securityjobslondon.co.uk Security Jobs London] uses h-card with legacy [[hCard]] fallback markup (to satisfy [https://search.google.com/structured-data/testing-tool Google's Structured Data Testing Tool]) in the footer of each page&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;
* [https://joelpurra.com/ Joel Purra] uses a hidden h-card with legacy [[hCard]] fallback markup (to satisfy [https://search.google.com/structured-data/testing-tool Google's Structured Data Testing Tool]) on the front page&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.me/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>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66802</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66802"/>
		<updated>2018-04-24T09:40:29Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* See Also */ Remove link, now mentioned in the rel-urls object write-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66801</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66801"/>
		<updated>2018-04-24T09:40:01Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* rel-urls Object */ Finish this up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
The value object will always contain a member with the name &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;. That member’s value will be an array of alphabeticall sorted link relationships applicable to the URL.&lt;br /&gt;
&lt;br /&gt;
The value object may additionally contain any members with the following names:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The values of these members are always a single string. The value is taken from the link’s attribute in the source document matching the member name. E.g. in HTML the value of an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; attribute will be the value of the URL’s &amp;lt;code&amp;gt;hreflang&amp;lt;/code&amp;gt; member in the rel-urls object.&lt;br /&gt;
&lt;br /&gt;
In addition the optional member named &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; is added if any text is associated with the URL in the source document. E.g. in HTML the text within an &amp;lt;code&amp;gt;&amp;lt;a&amp;gt;&amp;lt;/code&amp;gt; element will be used.&lt;br /&gt;
&lt;br /&gt;
The following example shows what the companion rel-urls object to the above rels object might look like. It shows the text that was used to link to the authors, giving us more context of who they are. It also makes clear that the alternative version of the home page is in fact in French and meant for handheld devices.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The rel-urls object was a later addition to the specification. It exists because so much information was lost when only the rels object was created. The discussion that shaped it [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|can be read on the brainstorming page]].&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|Background behind the included rels and rel-urls objects]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66800</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66800"/>
		<updated>2018-04-24T08:48:17Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Use source javascript instead of pre for syntax highlighting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&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;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=javascript&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|Background behind the included rels and rel-urls objects]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-review&amp;diff=66799</id>
		<title>h-review</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-review&amp;diff=66799"/>
		<updated>2018-04-24T08:44:24Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Note convergence to h-entry with a couple of properties seen in the wild, add Aaron to examples section, and mention his great piece on keeping backwards compatibility.&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.&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;
Experimental properties currently in use in the wild but not (yet) part of the official h-review spec. Several of these seem to be because of h-review convergence towards [[h-entry]], as h-review gets used alongside h-entry within [[h-feed]]:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-location&amp;lt;/code&amp;gt;''' - location the review was posted from, optionally embed [[h-card]], [[h-adr]], or [[h-geo]]&lt;br /&gt;
* '''&amp;lt;code&amp;gt;p-summary&amp;lt;/code&amp;gt;''' - short review summary&lt;br /&gt;
* '''&amp;lt;code&amp;gt;u-syndication&amp;lt;/code&amp;gt;''' - URL(s) of syndicated copies of this review. The property equivalent of [[rel-syndication]] ([https://aaronparecki.com/2018/01/29/10/ example] with [https://www.amazon.com/review/R1P2C3ATN75836/ref=pe_1098610_137716200_cm_rv_eml_rv0_rv syndication to Amazon])&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;
* https://aaronparecki.com/2018/01/29/10/ (more on Aaron’s [https://aaronparecki.com/reviews review feed])&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;
See [https://aaronparecki.com/ Aaron Parecki]’s [https://aaronparecki.com/2016/12/17/8/owning-my-reviews Why Microformats? Owning My Reviews] for a reason to be backwards compatible.&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 '''&amp;lt;code&amp;gt;p-category&amp;lt;/code&amp;gt;'''. While not a class name nor typical microformats property, [[rel-tag|rel=tag]] was the typical way to tag an hreview. Thus parsers should look for rel=tag hyperlinks inside an hreview, 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;
* &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>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66798</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66798"/>
		<updated>2018-04-23T19:56:04Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Stubs aren’t so much stubs when they need only a single specific expension, update rels with a multi-rel URL, start the rel-urls documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section needs expanding.''' It needs an example of a microformats2 object that uses multiple types and still makes sense.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 4 URLs were found in the source document:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]],&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/fr/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; identifies an alternative version of the home page, combining the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; and [[rel-alternate|&amp;lt;code&amp;gt;alternate&amp;lt;/code&amp;gt; relationship]] values,&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/a&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; both identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/fr/&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;alternate&amp;quot;: [&amp;quot;https://example.com/fr/&amp;quot;]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The '''rel-urls object''' is an object with any amount of members, where every member name is a URL and every member value is an object.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;https://example.com/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example Homepage&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/a&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Adam&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/b&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;],&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Mx Baker&amp;quot;&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;https://example.com/fr/&amp;quot;: {&lt;br /&gt;
    &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
    &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;,&lt;br /&gt;
    &amp;quot;text&amp;quot;: &amp;quot;Example page d’accueil&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|Background behind the included rels and rel-urls objects]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66797</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66797"/>
		<updated>2018-04-23T19:22:45Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* See Also */ Always check previews before saving, Martijn.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 3 URLs were found in the source document: 1 URL points to the root domain and identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]], and 2 URLs point to two separate pages that each identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&amp;quot;https://example.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats|Background behind the included rels and rel-urls objects]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66796</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66796"/>
		<updated>2018-04-23T19:22:03Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* See Also */ Use local wikilink for the rels/rel-urls link, rather than external hyperlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 3 URLs were found in the source document: 1 URL points to the root domain and identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]], and 2 URLs point to two separate pages that each identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&amp;quot;https://example.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [[microformats2-parsing-brainstorming#more_information_for_rel-based_formats Background behind the included rels and rel-urls objects]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66795</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66795"/>
		<updated>2018-04-23T19:20:49Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* rels Object */ add documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: [&amp;quot;A short published note.&amp;quot;]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
The '''rels object''' is an object with any amount of members, where every member name is a link relationship (see [[existing-rel-values|the documented existing relationships]] for examples) and every member value is an array of URLs.&lt;br /&gt;
&lt;br /&gt;
Any relationship can have 1 or more URLs in its matching array. And any URL can be in several arrays, if it has several relationships associated with it.&lt;br /&gt;
&lt;br /&gt;
The following example shows a rels object where 3 URLs were found in the source document: 1 URL points to the root domain and identifies the homepage using [[rel-home|the &amp;lt;code&amp;gt;home&amp;lt;/code&amp;gt; relationship value]], and 2 URLs point to two separate pages that each identify an author of the current page using [[rel-author|the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; relationship value]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;home&amp;quot;: [&amp;quot;https://example.com/&amp;quot;],&lt;br /&gt;
  &amp;quot;author&amp;quot;: [&lt;br /&gt;
    &amp;quot;https://example.com/a&amp;quot;,&lt;br /&gt;
    &amp;quot;https://example.com/b&amp;quot;&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;br /&gt;
* [http://microformats.org/wiki/microformats2-parsing-brainstorming#more_information_for_rel-based_formats the thinking behind rels and rel-urls]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66791</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66791"/>
		<updated>2018-04-23T15:06:04Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* children */ Finish this section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: &amp;quot;A short published note.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
The optional &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; member is added when nested microformats are found and contains an array of microformat2 objects.&lt;br /&gt;
&lt;br /&gt;
This happens when other objects are contained with outer ones, e.g. data is marked up with microformats within the content of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt;. Another possibility is that the outer object exists to group all its nested objects, such as an &amp;lt;code&amp;gt;[[h-feed]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example shows an &amp;lt;code&amp;gt;h-feed&amp;lt;/code&amp;gt; type microformats2 object with a few properties that describe the feed, and an array of &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; objects as its children.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;type&amp;quot;: [&amp;quot;h-feed&amp;quot;],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&amp;quot;https://example.org/&amp;quot;],&lt;br /&gt;
    &amp;quot;name&amp;quot;: [&amp;quot;Example Feed&amp;quot;]&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;children&amp;quot;: [&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;name&amp;quot;: [&amp;quot;Entry 1&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 2&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&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;name&amp;quot;: [&amp;quot;Entry 3&amp;quot;],&lt;br /&gt;
        &amp;quot;content&amp;quot;: [&lt;br /&gt;
          {&lt;br /&gt;
            &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut.\nDicta ut repellat quisquam repellendus et iste consequatur.&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        ]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66790</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66790"/>
		<updated>2018-04-23T11:43:08Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66789 by Alatbantu (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66788</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66788"/>
		<updated>2018-04-22T10:40:00Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Add some See Alsos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example contains an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: &amp;quot;A short published note.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example contains an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [https://tools.ietf.org/html/rfc8259 RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format]&lt;br /&gt;
* [https://gist.github.com/Zegnat/65ed9a9fb0546fb8c4aa0c0b790b8a40 JSON Schema for microformats2 objects], by [https://vanderven.se/martijn/ Martijn van der Ven]&lt;br /&gt;
* [https://github.com/cleverdevil/microformats2 Type- and vocabulary-aware microformats2 JSON validator in Python], by [https://cleverdevil.io/ Jonathan LaCour]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66787</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66787"/>
		<updated>2018-04-22T10:18:26Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: More content, mark sections as stubs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00;font-size:smaller&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 members named &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
The '''microformats2 object''' is an object with 2 required members named &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt;, as well as an optional member named &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' It needs an example of a microformats2 object that uses multiple types.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; member contains an alphabetically sorted array of root class names. These names express what the microformat is expressing, and are often coupled to which properties to expect through documented conventions.&lt;br /&gt;
&lt;br /&gt;
The root class names are individual strings that match the pattern &amp;lt;code&amp;gt;h-([0-9a-z]+-)?[a-z]+&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example contains an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with a single property attached. The &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type is [[h-entry|documented on the wiki]], this way types point towards documented conventions that hold true no matter what the source document was.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;summary&amp;quot;: &amp;quot;A short published note.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; member contains an object where every member name is a microformats2 property name, and every member value is an array of the found microformats2 values. Even when only one value is given, it will be inside an array.&lt;br /&gt;
&lt;br /&gt;
Valid values in the value array are one of the following:&lt;br /&gt;
&lt;br /&gt;
# a string value, the most common value,&lt;br /&gt;
# an embedded markup object, containing both a plain string value and the verbatim mark-up from the source document, or&lt;br /&gt;
# another microformat2 object.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, it will gain the additional member &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; to express a plain string representation. If a consuming application does not understand the nested microformat2 object, it can opt to treat it as that string.&lt;br /&gt;
&lt;br /&gt;
If a microformat2 object is used as the value of a property, when the parser is also instructed to return it as an embedded markup object, it will gain the additional member &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The following example contains an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type microformats2 object, with 3 properties to show the 3 different types of properties. The &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; is a single string, the &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; contains verbatim HTML from the source document, and the &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; is a nested microformat2 &amp;lt;code&amp;gt;h-card&amp;lt;/code&amp;gt; object. The &amp;lt;code&amp;gt;in-reply-to&amp;lt;/code&amp;gt; property has been added to show how one property may contain multiple valid values.&lt;br /&gt;
&lt;br /&gt;
To see what these properties mean in the context of an &amp;lt;code&amp;gt;h-entry&amp;lt;/code&amp;gt; type, see [[h-entry#Core_Properties|the Core Properties section on the type’s wiki page]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;name&amp;quot;: [&amp;quot;An example entry&amp;quot;],&lt;br /&gt;
    &amp;quot;content&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;html&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.&amp;lt;/p&amp;gt;\n&amp;lt;p&amp;gt;Consequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Ut non sit saepe porro porro est aut. Dicta ut repellat quisquam repellendus et iste consequatur.\nConsequuntur repellat sed aut in et dolores. Consequatur amet quo enim.&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;author&amp;quot;: [&lt;br /&gt;
      {&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;Mx Example&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.com/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;Mx Example&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;type&amp;quot;: [&amp;quot;h-cite&amp;quot;],&lt;br /&gt;
        &amp;quot;properties&amp;quot;: {&lt;br /&gt;
          &amp;quot;name&amp;quot;: [&amp;quot;Example Domain&amp;quot;],&lt;br /&gt;
          &amp;quot;author&amp;quot;: [&amp;quot;IANA&amp;quot;],&lt;br /&gt;
          &amp;quot;url&amp;quot;: [&amp;quot;https://example.org/&amp;quot;]&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;value&amp;quot;: &amp;quot;https://example.org/&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;https://example.net/&amp;quot;&lt;br /&gt;
    ]&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#7FDBFF;font-size:smaller&amp;quot;&amp;gt;ℹ️ '''This section is a stub.''' You can help the microformats.org wiki by expanding it.&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66786</id>
		<title>microformats2-json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-json&amp;diff=66786"/>
		<updated>2018-04-21T19:37:35Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: First draft of page structure.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dfn style=&amp;quot;font-style:normal;font-weight:bold&amp;quot;&amp;gt;microformats2 JSON&amp;lt;/dfn&amp;gt; is the canonical output format of the [[microformats2-parsing|microformats2 parsing]] algorithm. As such it can be used to compare parsers and create [[test-suite|test suites]]. It is also used as the official serialisation format of microformats objects, and relied upon by specifications such as [https://micropub.net/ Micropub].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:1em;padding:1em;background:#FFDC00&amp;quot;&amp;gt;⚠️ The JSON format used is not pinned to a specific [https://indieweb.org/JSON#Specs JSON specification]. See [https://github.com/microformats/microformats2-parsing/issues/23 issue #23] for a discussion on the subject.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parsed Document Format ==&lt;br /&gt;
&lt;br /&gt;
Parsers collect not only microformats2 objects, but also [[rel|link relationships]]. Parsing an entire document will result in an outer object with 3 properties: &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
  &amp;quot;items&amp;quot;: [],&lt;br /&gt;
  &amp;quot;rels&amp;quot;: {},&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is an array of [[microformats2-json#microformat2_Objects|microformats2 objects]], ordered according to their order in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rels&amp;lt;/code&amp;gt; is an object where the member names reflect all &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values found in the source document.&lt;br /&gt;
# &amp;lt;code&amp;gt;rel-urls&amp;lt;/code&amp;gt; is an object where the member names reflect all URLs found in the source document with &amp;lt;code&amp;gt;rel&amp;lt;/code&amp;gt;-values attached.&lt;br /&gt;
&lt;br /&gt;
== microformat2 Objects ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{ &lt;br /&gt;
  &amp;quot;type&amp;quot;: [],&lt;br /&gt;
  &amp;quot;properties&amp;quot;: {},&lt;br /&gt;
  &amp;quot;children&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is an array of the types that identify the microformat, ordered alphabetically.&lt;br /&gt;
# &amp;lt;code&amp;gt;properties&amp;lt;/code&amp;gt; is an object where the member names reflect all properties found for the microformat.&lt;br /&gt;
# The optional member &amp;lt;code&amp;gt;children&amp;lt;/code&amp;gt; is an array of other microformats2 objects that were found nested in the current one.&lt;br /&gt;
&lt;br /&gt;
=== type ===&lt;br /&gt;
&lt;br /&gt;
=== properties ===&lt;br /&gt;
&lt;br /&gt;
=== children ===&lt;br /&gt;
&lt;br /&gt;
== rels Object ==&lt;br /&gt;
&lt;br /&gt;
== rel-urls Object ==&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66784</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66784"/>
		<updated>2018-04-21T07:18:57Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66783 by Sewarental (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rss&amp;diff=66761</id>
		<title>rss</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rss&amp;diff=66761"/>
		<updated>2018-03-29T08:03:32Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66760 by Feep1996 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;RSS&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;RSS&amp;lt;/dfn&amp;gt;''' is a legacy XML format for syndicating typically time-stamped content from web sites. &amp;lt;abbr&amp;gt;RSS&amp;lt;/abbr&amp;gt; is an acronym that that stands for: Rich Site Summary (originally RDF Site Summary, often dubbed Really Simple Syndication)[http://en.wikipedia.org/wiki/RSS]. [[Atom]] is an alternative XML format for feeds. &lt;br /&gt;
&lt;br /&gt;
There are many problems consuming RSS feeds.&lt;br /&gt;
&lt;br /&gt;
See the 40+ problems documented here:&lt;br /&gt;
* http://inessential.com/2013/03/18/brians_stupid_feed_tricks&lt;br /&gt;
&lt;br /&gt;
Instead of publishing/consuming RSS:&lt;br /&gt;
* Publish [[h-entry]] in your HTML. See http://indiewebcamp.com/ for more&lt;br /&gt;
* Consume [[h-entry]], e.g. with a [[microformats2]] parser&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* http://indiewebcamp.com/&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66759</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66759"/>
		<updated>2018-03-29T07:20:45Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66758 by Blinqdigital (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66756</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66756"/>
		<updated>2018-03-26T08:46:48Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Reverted edits by User:Paketwisata (Talk) to last version by User:Tantek&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66733</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66733"/>
		<updated>2018-03-23T21:19:08Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66732 by Masterseo (Talk) - spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66730</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66730"/>
		<updated>2018-03-22T12:41:44Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66729 by Ahliqiu (Talk) - spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66728</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66728"/>
		<updated>2018-03-21T13:23:37Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66727 by Dagototo (Talk) - spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66726</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66726"/>
		<updated>2018-03-21T10:36:01Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66725 by Parlaybola (Talk) - spam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-parsing&amp;diff=66695</id>
		<title>microformats2-parsing</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-parsing&amp;diff=66695"/>
		<updated>2018-03-04T20:27:43Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* parsing for implied properties */ Add further limitations to implying a name value per https://github.com/microformats/microformats2-parsing/issues/6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2 parsing specification&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;[[microformats2]]&amp;lt;/dfn&amp;gt; is a simple, open format for marking up data in HTML. The microformats2 parsing specification describes how to [[#implementations|implement]] a microformats2 parser, independent of any specific vocabularies.&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''' with several interoperable [[#implementations|implementations]]. This specification is stable, subject to editorial changes only for improving clarity of existing meaning. While substantive changes 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 (since 2015-01-21) as part of an explicit [[#change_control|change control]] process. There are currently no draft or proposed new features in this specification, and if any were to be added, they would be explicitly labeled as such.&amp;lt;br/&amp;gt;Note: This specification is only marked as a &amp;quot;Draft Specification&amp;quot; because of pending edits from [[microformats2-parsing-issues|resolved issues before 2016-06-20]]. Once those edits have been completed, the link to &amp;lt;nowiki&amp;gt;[[Category:Draft Specifications]]&amp;lt;/nowiki&amp;gt; at the bottom of this document should be changed to &amp;lt;nowiki&amp;gt;[[Category:Specifications]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
;Participate&lt;br /&gt;
:[https://github.com/microformats/microformats2-parsing/issues Open Issues]&lt;br /&gt;
:[[microformats2-parsing-issues|Resolved issues before 2016-06-20]]&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;
== algorithm ==&lt;br /&gt;
=== parse a document for microformats ===&lt;br /&gt;
To parse a document for microformats, follow the HTML parsing rules and do the following:&lt;br /&gt;
* start with an empty JSON &amp;quot;items&amp;quot; array and &amp;quot;rels&amp;quot; &amp;amp; &amp;quot;rel-urls&amp;quot; hashes: &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;rels&amp;quot;: {},&lt;br /&gt;
 &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* parse the root element for class microformats, adding to the JSON items array accordingly&lt;br /&gt;
* parse all hyperlink (&amp;lt;code&amp;gt;&amp;amp;lt;a&amp;gt; &amp;amp;lt;area&amp;gt; &amp;amp;lt;link&amp;gt;&amp;lt;/code&amp;gt;) elements for rel microformats, adding to the JSON rels &amp;amp; rel-urls hashes accordingly&lt;br /&gt;
* return the resulting JSON&lt;br /&gt;
Parsers may simultaneously parse the document for both class and rel microformats (e.g. in a single tree traversal).&lt;br /&gt;
&lt;br /&gt;
=== parse an element for class microformats ===&lt;br /&gt;
To parse an element for class microformats:&lt;br /&gt;
* parse element class for root class name(s) &amp;quot;h-*&amp;quot; and if none, backcompat root classes&lt;br /&gt;
** if none found, parse child elements for microformats (depth first, doc order)&lt;br /&gt;
** else if found, start parsing a new microformat&lt;br /&gt;
*** keep track of whether the root class name(s) was from backcompat&lt;br /&gt;
*** create a new { } structure with:&lt;br /&gt;
**** &amp;lt;code&amp;gt;type: &amp;lt;nowiki&amp;gt;[array of microformat &amp;quot;h-*&amp;quot; type(s) on the element]&amp;lt;/nowiki&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
**** &amp;lt;code&amp;gt;properties: { } &amp;lt;/code&amp;gt; - to be filled in when that element itself is parsed for microformats properties&lt;br /&gt;
*** parse child elements (document order) by:&lt;br /&gt;
**** if parsing a backcompat root, parse child element class name(s) for backcompat properties&lt;br /&gt;
**** else parse a child element class for property class name(s) &amp;quot;p-*,u-*,dt-*,e-*&amp;quot;&lt;br /&gt;
**** if such class(es) are found, it is a property element&lt;br /&gt;
***** add properties found to current microformat's &amp;lt;code&amp;gt;properties: { } &amp;lt;/code&amp;gt; structure&lt;br /&gt;
**** parse a child element for microformats (recurse)&lt;br /&gt;
***** if that child element itself has a microformat (&amp;quot;h-*&amp;quot; or backcompat roots) and is a property element, add it into the array of values for that property as a { } structure, add to that { } structure:&lt;br /&gt;
****** &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: &lt;br /&gt;
******* if it's a &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; property element, use the first p-name of the h-* child &lt;br /&gt;
******* else if it's an &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; property element, re-use its { } structure with existing &amp;lt;code&amp;gt;value:&amp;lt;/code&amp;gt; inside.&lt;br /&gt;
******* else if it's a &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; property element and the h-* child has a u-url, use the first such u-url&lt;br /&gt;
******* else use the parsed property value per p-*,u-*,dt-* parsing respectively&lt;br /&gt;
***** else add found elements that are microformats to the &amp;quot;children&amp;quot; array&lt;br /&gt;
*** imply properties for the found microformat (see below)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;*&amp;quot; for root (and property) class names consists only of lowercase a-z and '-' characters.&lt;br /&gt;
&lt;br /&gt;
=== parse an element for properties ===&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;p-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;p-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* Parse the element for the [[value-class-pattern]]. If a value is found, return it.&lt;br /&gt;
* If &amp;lt;code&amp;gt;abbr.p-x[title]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;link.p-x[title]&amp;lt;/code&amp;gt;, return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.p-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.p-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;img.p-x[alt]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.p-x[alt]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after:&lt;br /&gt;
** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
** removing all leading/trailing whitespace&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;u-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;u-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* if &amp;lt;code&amp;gt;a.u-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.u-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;link.u-x[href]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;img.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;audio.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;video.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;source.u-x[src]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;video.u-x[poster]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;poster&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;object.u-x[data]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* if there is a gotten value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
* else parse the element for the [[value-class-pattern]]. If a value is found, return it.&lt;br /&gt;
* else if &amp;lt;code&amp;gt;abbr.u-x[title]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.u-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.u-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after removing all leading/trailing whitespace and nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;gt;&amp;lt;/code&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;dt-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;dt-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;dt-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* parse the element for the [[value-class-pattern]], including the date and time parsing rules. If a value is found, then return it.&lt;br /&gt;
* if &amp;lt;code&amp;gt;time.dt-x[datetime]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ins.dt-x[datetime]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;del.dt-x[datetime]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;datetime&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;abbr.dt-x[title]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.dt-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.dt-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after removing all leading/trailing whitespace and nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== parsing an &amp;lt;code&amp;gt;e-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;e-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;quot;&amp;lt;code&amp;gt;e-*&amp;quot;&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* return a dictionary with two keys:&lt;br /&gt;
** &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;: the &amp;lt;code&amp;gt;innerHTML&amp;lt;/code&amp;gt; of the element by using the [https://html.spec.whatwg.org/multipage/parsing.html#serialising-html-fragments HTML spec: Serializing HTML Fragments algorithm], with leading/trailing whitespace removed.&lt;br /&gt;
** &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after:&lt;br /&gt;
*** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
*** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
*** removing all leading/trailing whitespace&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== parsing for implied properties ====&lt;br /&gt;
&lt;br /&gt;
Imply properties only on explicit &amp;lt;code&amp;gt;h-x&amp;lt;/code&amp;gt; class name root microformat element (no backcompat roots):&lt;br /&gt;
&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&amp;quot; property, and no other &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; properties, and no nested microformats,&lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;img.h-x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.h-x&amp;lt;/code&amp;gt;, then use its &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;abbr.h-x[title]&amp;lt;/code&amp;gt; then use its &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;img:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;area:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;abbr:only-child[title]:not([title=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;img:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;area:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;abbr:only-child[title]:not([title=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; use that &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else use the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;.h-x&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; after:&lt;br /&gt;
*** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
*** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
** remove all leading/trailing whitespace&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;&amp;quot; property, &lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;img.h-x[src]&amp;lt;/code&amp;gt;, then use &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;object.h-x[data]&amp;lt;/code&amp;gt; then use &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;img[src]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;object[data]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;img[src]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;object[data]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** if there is a gotten photo value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;&amp;quot; property,&lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;a.h-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.h-x[href]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;a[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;area[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;a[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;area[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** if there is a gotten url value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; The same markup for a property should not be causing that property to occur in &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; a microformat and one embedded inside - such a property should only be showing up on one of them. The parsing algorithm has details to prevent that, such as the &amp;lt;code&amp;gt;:not[.h-*]&amp;lt;/code&amp;gt; tests above.&lt;br /&gt;
&lt;br /&gt;
=== parse a hyperlink element for rel microformats ===&lt;br /&gt;
To parse a hyperlink element (e.g. a or link) for rel microformats: use the following algorithm or an algorithm that produces equivalent results:&lt;br /&gt;
* if the &amp;quot;rel&amp;quot; attribute of the element is empty then exit&lt;br /&gt;
* set url to the value of the &amp;quot;href&amp;quot; attribute of the element, normalized to be an absolute URL following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element if any).&lt;br /&gt;
* treat the &amp;quot;rel&amp;quot; attribute of the element as a space separate set of rel values&lt;br /&gt;
* for each rel value (rel-value)&lt;br /&gt;
** if there is no key rel-value in the rels hash then create it with an empty array as its value&lt;br /&gt;
** if url is not in the array of the key rel-value in the rels hash then add url to the array&lt;br /&gt;
* end for&lt;br /&gt;
* if there is no key with name url in the top-level &amp;quot;rel-urls&amp;quot; hash then add a key with name url there, with an empty hash value&lt;br /&gt;
* add keys to the hash of the key with name url for each of these attributes (if present) and key not already set:&lt;br /&gt;
** &amp;quot;hreflang&amp;quot;: the value of the &amp;quot;hreflang&amp;quot; attribute&lt;br /&gt;
** &amp;quot;media&amp;quot;: the value of the &amp;quot;media&amp;quot; attribute&lt;br /&gt;
** &amp;quot;title&amp;quot;: the value of the &amp;quot;title&amp;quot; attribute&lt;br /&gt;
** &amp;quot;type&amp;quot;: the value of the &amp;quot;type&amp;quot; attribute&lt;br /&gt;
** &amp;quot;text&amp;quot;: the text content of the element if any&lt;br /&gt;
* if there is no &amp;quot;rels&amp;quot; key in that hash, add it with an empty array value&lt;br /&gt;
* set the value of that &amp;quot;rels&amp;quot; key to an array of all unique items in the set of rel values unioned with the current array value of the &amp;quot;rels&amp;quot; key&lt;br /&gt;
&lt;br /&gt;
==== rel parse examples ====&lt;br /&gt;
Here are some examples to show how parsed rels may be reflected into the JSON (empty items key).&lt;br /&gt;
&lt;br /&gt;
E.g. parsing this markup:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;author&amp;quot; href=&amp;quot;http://example.com/a&amp;quot;&amp;gt;author a&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;author&amp;quot; href=&amp;quot;http://example.com/b&amp;quot;&amp;gt;author b&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;in-reply-to&amp;quot; href=&amp;quot;http://example.com/1&amp;quot;&amp;gt;post 1&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;in-reply-to&amp;quot; href=&amp;quot;http://example.com/2&amp;quot;&amp;gt;post 2&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;alternate home&amp;quot;&lt;br /&gt;
   href=&amp;quot;http://example.com/fr&amp;quot;&lt;br /&gt;
   media=&amp;quot;handheld&amp;quot;&lt;br /&gt;
   hreflang=&amp;quot;fr&amp;quot;&amp;gt;French mobile homepage&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Would generate this 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;rels&amp;quot;: { &lt;br /&gt;
    &amp;quot;author&amp;quot;: [ &amp;quot;http://example.com/a&amp;quot;, &amp;quot;http://example.com/b&amp;quot; ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [ &amp;quot;http://example.com/1&amp;quot;, &amp;quot;http://example.com/2&amp;quot; ],&lt;br /&gt;
    &amp;quot;alternate&amp;quot;: [ &amp;quot;http://example.com/fr&amp;quot; ], &lt;br /&gt;
    &amp;quot;home&amp;quot;: [ &amp;quot;http://example.com/fr&amp;quot; ] &lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {&lt;br /&gt;
    &amp;quot;http://example.com/a&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;author a&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/b&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;author b&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/1&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;in-reply-to&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;post 1&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/2&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;in-reply-to&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;post 2&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/fr&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
      &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;, &lt;br /&gt;
      &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;, &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;French mobile homepage&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;
== what do the CSS selector expressions mean ==&lt;br /&gt;
''This section is non-normative.''&lt;br /&gt;
&lt;br /&gt;
Use [http://gallery.theopalgroup.com/selectoracle/ SelectORacle] to expand any of the above CSS selector expressions into longform English prose.&lt;br /&gt;
&lt;br /&gt;
Exception:&lt;br /&gt;
* ''':not[.h-*]''' is not a valid CSS selector but is used here to mean:&lt;br /&gt;
** does not have any class names that start with &amp;quot;h-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== note HTML parsing rules ==&lt;br /&gt;
''This section is non-normative.''&lt;br /&gt;
&lt;br /&gt;
microformats2 parsers are expected to follow HTML parsing rules, which includes for example:&lt;br /&gt;
* ignore &amp;lt;code&amp;gt;&amp;amp;lt;template&amp;amp;gt;&amp;lt;/code&amp;gt; elements - stuff between &amp;lt;code&amp;gt;&amp;amp;lt;template&amp;amp;gt;&amp;lt;/code&amp;gt; tags don't end up in the DOM&lt;br /&gt;
** test-case in the wild: http://sixtwothree.org/blog/now-accepting-webmentions/&lt;br /&gt;
&lt;br /&gt;
== note backward compatibility details ==&lt;br /&gt;
The parsing algorithm and details refer to &amp;quot;backcompat root classes&amp;quot; (backcompat roots for short) and &amp;quot;backcompat properties&amp;quot;. These conditions and steps in the algorithm document how to parse pre-microformats2 microformats which all defined their own specific root class names and explicit sets of properties.&lt;br /&gt;
&lt;br /&gt;
Some details to be aware of (which are explicitly in the algorithm, this is just an informal summary)&lt;br /&gt;
* If an element has one or more microformats2 root class name(s) (&amp;lt;code&amp;gt;h-*&amp;lt;/code&amp;gt;) &lt;br /&gt;
** all backcompat root class names are ignored on that element.&lt;br /&gt;
** all backcompat properties, without an intervening root class name, are ignored inside that element&lt;br /&gt;
* If an element has only a backcompat root class name (or names)&lt;br /&gt;
** all microformats2 property class names (p-* u-* dt-* e-*), without an intervening element with root class name, are ignored inside that element&lt;br /&gt;
** there is no implied property value parsing (p-name, u-url, u-photo) for that element&lt;br /&gt;
&lt;br /&gt;
=== backward compatibility mappings ===&lt;br /&gt;
Note: several parser implementations have encoded backward compatible mappings into source and data files. Implementers of parsers may find these useful:&lt;br /&gt;
* search for &amp;quot;modules.maps[&amp;quot; in https://github.com/glennjones/microformat-shiv/blob/master/microformat-shiv.js&lt;br /&gt;
* search for &amp;quot;$classicPropertyMap&amp;quot; in https://github.com/indieweb/php-mf2/blob/master/Mf2/Parser.php&lt;br /&gt;
* https://github.com/tommorris/mf2py/blob/master/mf2py/backcompat.py&lt;br /&gt;
&lt;br /&gt;
== questions ==&lt;br /&gt;
See the FAQ:&lt;br /&gt;
* [[microformats2-parsing-faq]]&lt;br /&gt;
&lt;br /&gt;
== issues ==&lt;br /&gt;
See the issues page:&lt;br /&gt;
* [[microformats2-parsing-issues]]&lt;br /&gt;
&lt;br /&gt;
== implementations ==&lt;br /&gt;
{{main|microformats2#Implementations}}&lt;br /&gt;
There are open source [[microformats2#Implementations|microformats2 parsers]] available for Javascript, node.js, PHP, Ruby and Python.&lt;br /&gt;
&lt;br /&gt;
== test suite ==&lt;br /&gt;
See:&lt;br /&gt;
* https://github.com/microformats/tests&lt;br /&gt;
* https://github.com/indieweb/php-mf2/tree/master/tests/Mf2&lt;br /&gt;
&lt;br /&gt;
Ports to/for other languages encouraged.&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;
Per the stable status of this document, substantive issue filing, resolution, and edits are done with the following change control steps, which may nearly all be done asynchronously once an issue is filed to reach the required state of &amp;quot;Resolve by implementation verified rough consensus&amp;quot;. All steps should be openly documented (e.g. on this wiki or GitHub issues) such that others may later verify the history of an issue, and all steps are encouraged to be announced on #microformats [[IRC]] with a link to the issue.&lt;br /&gt;
&lt;br /&gt;
* '''File an issue.''' Anyone may file a new [[microformats2-parsing-issues|issue]] and is encouraged to do so, with the caveat that per the stable status, only issues originating as a result of implementation experience are likely to have a substantive impact on this specification.&lt;br /&gt;
* '''Propose a resolution.''' Anyone may propose resolutions to existing issues, and should encourage others in the community, especially implementers, to provide feedback. Proposed resolutions should include what specific text of the spec needs changing, preferably with replacement text, and test cases if applicable (e.g. a resolution could just document the current state more precisely without needing to provide any new test cases).&lt;br /&gt;
* '''Provide feedback on proposed resolution(s).''' Anyone may provide feedback on proposed resolutions with their name attached, in summary (e.g. +1/0/-1 opinions), and additionally with reasoning (required for objections, optional otherwise), or optionally with suggested improvements, or counter-proposals (per &amp;quot;Propose a resolution&amp;quot; above).&lt;br /&gt;
* '''Iterate to resolve objections if any.''' If there are any objections to a proposed resolution, proposer(s) and anyone agreeing should work to iterate on the proposal to resolve objections to the satisfaction (or at least withdrawal of objection) of anyone objecting. The more objections resolved the better, and incremental progress is forward progress.&lt;br /&gt;
* '''Broaden implementer consensus.''' Proposer(s) and anyone agreeing should reach out (e.g. via #microformats [[IRC]]) to multiple implementers of the specification to get their opinions and feedback on proposal(s). The more implementers providing feedback the better. Iterate to resolve any new objections per &amp;quot;Iterate to resolve objections if any&amp;quot; above.&lt;br /&gt;
* '''Encourage and get 1+ implementation(s).''' Encourage, get, and document 1+ implementation(s) of implementation affecting aspects of a proposed resolution, preferably with a test case if applicable.&lt;br /&gt;
* '''Resolve by implementation verified rough consensus.''' Once there is rough consensus on a proposal (where &amp;lt;dfn&amp;gt;rough consensus&amp;lt;/dfn&amp;gt; means &amp;lt;strong&amp;gt;either no objections, or at a minimum no objections by implementers, and explicit positive opinions by 2+ implementers&amp;lt;/strong&amp;gt;) and a proposal's feasibility is verified by at least 1 implementation of aspects of the proposal that affect implementations (none needed if there are none, e.g. purely editorial), cite those in a &amp;quot;Resolution:&amp;quot; statement on the issue (e.g. in a comment), and explicitly share this resolution statement and link to issue in the #microformats [[IRC]] channel.&lt;br /&gt;
* '''Edit specification.''' Normally the spec editor(s) will make edits per implementation verified rough consensus resolutions, however anyone (though especially issue discussion participants) may make a specification edit per a resolution if they are able to verify the citations that the resolution has achieve rough consensus, and has 1+ implementation(s) per &amp;quot;Encourage and get 1+ implementation(s)&amp;quot; above. Edits must contain a &amp;quot;Summary&amp;quot; field entry that at a minimum mention the issue by name, should provide a URL to the issue resolution, and preferably be done by a spec editor or an implementer. Once the edit is made, the issue should be closed, or at least a comment made on the issue requesting that the opener of the issue close the issue.&lt;br /&gt;
&lt;br /&gt;
These change control steps are inspired by the tradition of &amp;quot;Rough consensus and running code&amp;quot; as exhibited by example by IETF and W3C processes, and in that regard, seek to be a philosophically compatible approach to specification iteration. They have been in rough practice since 2015-01-21, increasingly strictly applied since then with consensus of issue discussion participants, and explicitly documented based on issue resolving and spec editing experience.&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing-faq]]&lt;br /&gt;
* [[microformats2-parsing-issues]]&lt;br /&gt;
* [[microformats2-parsing-brainstorming]] - for background, thinking, exploring possibilities&lt;br /&gt;
* [[microformats2-parsing-rdf]]&lt;br /&gt;
* [[microformats2-implied-properties]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=microformats2-parsing&amp;diff=66694</id>
		<title>microformats2-parsing</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=microformats2-parsing&amp;diff=66694"/>
		<updated>2018-03-03T18:58:41Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Serialisation algo is moved to the parsing page of the HTML spec&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;microformats2 parsing specification&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;[[microformats2]]&amp;lt;/dfn&amp;gt; is a simple, open format for marking up data in HTML. The microformats2 parsing specification describes how to [[#implementations|implement]] a microformats2 parser, independent of any specific vocabularies.&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''' with several interoperable [[#implementations|implementations]]. This specification is stable, subject to editorial changes only for improving clarity of existing meaning. While substantive changes 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 (since 2015-01-21) as part of an explicit [[#change_control|change control]] process. There are currently no draft or proposed new features in this specification, and if any were to be added, they would be explicitly labeled as such.&amp;lt;br/&amp;gt;Note: This specification is only marked as a &amp;quot;Draft Specification&amp;quot; because of pending edits from [[microformats2-parsing-issues|resolved issues before 2016-06-20]]. Once those edits have been completed, the link to &amp;lt;nowiki&amp;gt;[[Category:Draft Specifications]]&amp;lt;/nowiki&amp;gt; at the bottom of this document should be changed to &amp;lt;nowiki&amp;gt;[[Category:Specifications]]&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
;Participate&lt;br /&gt;
:[https://github.com/microformats/microformats2-parsing/issues Open Issues]&lt;br /&gt;
:[[microformats2-parsing-issues|Resolved issues before 2016-06-20]]&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;
== algorithm ==&lt;br /&gt;
=== parse a document for microformats ===&lt;br /&gt;
To parse a document for microformats, follow the HTML parsing rules and do the following:&lt;br /&gt;
* start with an empty JSON &amp;quot;items&amp;quot; array and &amp;quot;rels&amp;quot; &amp;amp; &amp;quot;rel-urls&amp;quot; hashes: &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;rels&amp;quot;: {},&lt;br /&gt;
 &amp;quot;rel-urls&amp;quot;: {}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* parse the root element for class microformats, adding to the JSON items array accordingly&lt;br /&gt;
* parse all hyperlink (&amp;lt;code&amp;gt;&amp;amp;lt;a&amp;gt; &amp;amp;lt;area&amp;gt; &amp;amp;lt;link&amp;gt;&amp;lt;/code&amp;gt;) elements for rel microformats, adding to the JSON rels &amp;amp; rel-urls hashes accordingly&lt;br /&gt;
* return the resulting JSON&lt;br /&gt;
Parsers may simultaneously parse the document for both class and rel microformats (e.g. in a single tree traversal).&lt;br /&gt;
&lt;br /&gt;
=== parse an element for class microformats ===&lt;br /&gt;
To parse an element for class microformats:&lt;br /&gt;
* parse element class for root class name(s) &amp;quot;h-*&amp;quot; and if none, backcompat root classes&lt;br /&gt;
** if none found, parse child elements for microformats (depth first, doc order)&lt;br /&gt;
** else if found, start parsing a new microformat&lt;br /&gt;
*** keep track of whether the root class name(s) was from backcompat&lt;br /&gt;
*** create a new { } structure with:&lt;br /&gt;
**** &amp;lt;code&amp;gt;type: &amp;lt;nowiki&amp;gt;[array of microformat &amp;quot;h-*&amp;quot; type(s) on the element]&amp;lt;/nowiki&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
**** &amp;lt;code&amp;gt;properties: { } &amp;lt;/code&amp;gt; - to be filled in when that element itself is parsed for microformats properties&lt;br /&gt;
*** parse child elements (document order) by:&lt;br /&gt;
**** if parsing a backcompat root, parse child element class name(s) for backcompat properties&lt;br /&gt;
**** else parse a child element class for property class name(s) &amp;quot;p-*,u-*,dt-*,e-*&amp;quot;&lt;br /&gt;
**** if such class(es) are found, it is a property element&lt;br /&gt;
***** add properties found to current microformat's &amp;lt;code&amp;gt;properties: { } &amp;lt;/code&amp;gt; structure&lt;br /&gt;
**** parse a child element for microformats (recurse)&lt;br /&gt;
***** if that child element itself has a microformat (&amp;quot;h-*&amp;quot; or backcompat roots) and is a property element, add it into the array of values for that property as a { } structure, add to that { } structure:&lt;br /&gt;
****** &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: &lt;br /&gt;
******* if it's a &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; property element, use the first p-name of the h-* child &lt;br /&gt;
******* else if it's an &amp;lt;code&amp;gt;e-*&amp;lt;/code&amp;gt; property element, re-use its { } structure with existing &amp;lt;code&amp;gt;value:&amp;lt;/code&amp;gt; inside.&lt;br /&gt;
******* else if it's a &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; property element and the h-* child has a u-url, use the first such u-url&lt;br /&gt;
******* else use the parsed property value per p-*,u-*,dt-* parsing respectively&lt;br /&gt;
***** else add found elements that are microformats to the &amp;quot;children&amp;quot; array&lt;br /&gt;
*** imply properties for the found microformat (see below)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;*&amp;quot; for root (and property) class names consists only of lowercase a-z and '-' characters.&lt;br /&gt;
&lt;br /&gt;
=== parse an element for properties ===&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;p-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;p-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;p-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* Parse the element for the [[value-class-pattern]]. If a value is found, return it.&lt;br /&gt;
* If &amp;lt;code&amp;gt;abbr.p-x[title]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;link.p-x[title]&amp;lt;/code&amp;gt;, return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute.&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.p-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.p-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;img.p-x[alt]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.p-x[alt]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after:&lt;br /&gt;
** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
** removing all leading/trailing whitespace&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;u-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;u-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;u-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* if &amp;lt;code&amp;gt;a.u-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.u-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;link.u-x[href]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;img.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;audio.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;video.u-x[src]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;source.u-x[src]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;video.u-x[poster]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;poster&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;object.u-x[data]&amp;lt;/code&amp;gt;, then get the &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* if there is a gotten value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
* else parse the element for the [[value-class-pattern]]. If a value is found, return it.&lt;br /&gt;
* else if &amp;lt;code&amp;gt;abbr.u-x[title]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.u-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.u-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after removing all leading/trailing whitespace and nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;gt;&amp;lt;/code&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== parsing a &amp;lt;code&amp;gt;dt-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;dt-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;lt;code&amp;gt;dt-*&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* parse the element for the [[value-class-pattern]], including the date and time parsing rules. If a value is found, then return it.&lt;br /&gt;
* if &amp;lt;code&amp;gt;time.dt-x[datetime]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ins.dt-x[datetime]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;del.dt-x[datetime]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;datetime&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;abbr.dt-x[title]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else if &amp;lt;code&amp;gt;data.dt-x[value]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;input.dt-x[value]&amp;lt;/code&amp;gt;, then return the &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* else return the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after removing all leading/trailing whitespace and nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
==== parsing an &amp;lt;code&amp;gt;e-&amp;lt;/code&amp;gt; property ====&lt;br /&gt;
To parse an element for a &amp;lt;code&amp;gt;e-x&amp;lt;/code&amp;gt; property value (whether explicit &amp;quot;&amp;lt;code&amp;gt;e-*&amp;quot;&amp;lt;/code&amp;gt; or backcompat equivalent):&lt;br /&gt;
&lt;br /&gt;
* return a dictionary with two keys:&lt;br /&gt;
** &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt;: the &amp;lt;code&amp;gt;innerHTML&amp;lt;/code&amp;gt; of the element by using the [https://html.spec.whatwg.org/multipage/parsing.html#serialising-html-fragments HTML spec: Serializing HTML Fragments algorithm], with leading/trailing whitespace removed.&lt;br /&gt;
** &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;: the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the element after:&lt;br /&gt;
*** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
*** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
*** removing all leading/trailing whitespace&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== parsing for implied properties ====&lt;br /&gt;
&lt;br /&gt;
Imply properties only on explicit &amp;lt;code&amp;gt;h-x&amp;lt;/code&amp;gt; class name root microformat element (no backcompat roots):&lt;br /&gt;
&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;&amp;quot; property, &lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;img.h-x&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.h-x&amp;lt;/code&amp;gt;, then use its &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;abbr.h-x[title]&amp;lt;/code&amp;gt; then use its &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; attribute for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;img:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;area:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;abbr:only-child[title]:not([title=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;img:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;area:only-child[alt]:not([alt=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;abbr:only-child[title]:not([title=&amp;quot;&amp;quot;]):not[.h-*]&amp;lt;/code&amp;gt; use that &amp;lt;code&amp;gt;abbr&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; for name&lt;br /&gt;
** else use the &amp;lt;code&amp;gt;textContent&amp;lt;/code&amp;gt; of the &amp;lt;code&amp;gt;.h-x&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; after:&lt;br /&gt;
*** dropping any nested &amp;lt;code&amp;gt;&amp;amp;lt;script&amp;amp;gt;&amp;lt;/code&amp;gt; &amp;amp;amp; &amp;lt;code&amp;gt;&amp;amp;lt;style&amp;amp;gt;&amp;lt;/code&amp;gt; elements;&lt;br /&gt;
*** replacing any nested &amp;lt;code&amp;gt;&amp;amp;lt;img&amp;amp;gt;&amp;lt;/code&amp;gt; elements with their &amp;lt;code&amp;gt;alt&amp;lt;/code&amp;gt; attribute, if present; otherwise their &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; attribute, if present, adding a space at the beginning and end, resolving the URL if it’s relative;&lt;br /&gt;
** remove all leading/trailing whitespace&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;photo&amp;lt;/code&amp;gt;&amp;quot; property, &lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;img.h-x[src]&amp;lt;/code&amp;gt;, then use &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;object.h-x[data]&amp;lt;/code&amp;gt; then use &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;img[src]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;object[data]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;img[src]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;src&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;object[data]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;’s &amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; for photo&lt;br /&gt;
** if there is a gotten photo value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
* if no explicit &amp;quot;&amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;&amp;quot; property,&lt;br /&gt;
* then imply by:&lt;br /&gt;
** if &amp;lt;code&amp;gt;a.h-x[href]&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;area.h-x[href]&amp;lt;/code&amp;gt; then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;a[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;area[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;a[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** else if &amp;lt;code&amp;gt;.h-x&amp;gt;:only-child:not[.h-*]&amp;gt;area[href]:only-of-type:not[.h-*]&amp;lt;/code&amp;gt;, then use that &amp;lt;code&amp;gt;[href]&amp;lt;/code&amp;gt; for url&lt;br /&gt;
** if there is a gotten url value, return the normalized absolute URL of it, following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element, if any).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Note:&amp;lt;/strong&amp;gt; The same markup for a property should not be causing that property to occur in &amp;lt;em&amp;gt;both&amp;lt;/em&amp;gt; a microformat and one embedded inside - such a property should only be showing up on one of them. The parsing algorithm has details to prevent that, such as the &amp;lt;code&amp;gt;:not[.h-*]&amp;lt;/code&amp;gt; tests above.&lt;br /&gt;
&lt;br /&gt;
=== parse a hyperlink element for rel microformats ===&lt;br /&gt;
To parse a hyperlink element (e.g. a or link) for rel microformats: use the following algorithm or an algorithm that produces equivalent results:&lt;br /&gt;
* if the &amp;quot;rel&amp;quot; attribute of the element is empty then exit&lt;br /&gt;
* set url to the value of the &amp;quot;href&amp;quot; attribute of the element, normalized to be an absolute URL following the containing document's language's rules for resolving relative URLs (e.g. in HTML, use the current URL context as determined by the page, and first &amp;lt;code&amp;gt;&amp;amp;lt;base&amp;amp;gt;&amp;lt;/code&amp;gt; element if any).&lt;br /&gt;
* treat the &amp;quot;rel&amp;quot; attribute of the element as a space separate set of rel values&lt;br /&gt;
* for each rel value (rel-value)&lt;br /&gt;
** if there is no key rel-value in the rels hash then create it with an empty array as its value&lt;br /&gt;
** if url is not in the array of the key rel-value in the rels hash then add url to the array&lt;br /&gt;
* end for&lt;br /&gt;
* if there is no key with name url in the top-level &amp;quot;rel-urls&amp;quot; hash then add a key with name url there, with an empty hash value&lt;br /&gt;
* add keys to the hash of the key with name url for each of these attributes (if present) and key not already set:&lt;br /&gt;
** &amp;quot;hreflang&amp;quot;: the value of the &amp;quot;hreflang&amp;quot; attribute&lt;br /&gt;
** &amp;quot;media&amp;quot;: the value of the &amp;quot;media&amp;quot; attribute&lt;br /&gt;
** &amp;quot;title&amp;quot;: the value of the &amp;quot;title&amp;quot; attribute&lt;br /&gt;
** &amp;quot;type&amp;quot;: the value of the &amp;quot;type&amp;quot; attribute&lt;br /&gt;
** &amp;quot;text&amp;quot;: the text content of the element if any&lt;br /&gt;
* if there is no &amp;quot;rels&amp;quot; key in that hash, add it with an empty array value&lt;br /&gt;
* set the value of that &amp;quot;rels&amp;quot; key to an array of all unique items in the set of rel values unioned with the current array value of the &amp;quot;rels&amp;quot; key&lt;br /&gt;
&lt;br /&gt;
==== rel parse examples ====&lt;br /&gt;
Here are some examples to show how parsed rels may be reflected into the JSON (empty items key).&lt;br /&gt;
&lt;br /&gt;
E.g. parsing this markup:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;author&amp;quot; href=&amp;quot;http://example.com/a&amp;quot;&amp;gt;author a&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;author&amp;quot; href=&amp;quot;http://example.com/b&amp;quot;&amp;gt;author b&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;in-reply-to&amp;quot; href=&amp;quot;http://example.com/1&amp;quot;&amp;gt;post 1&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;in-reply-to&amp;quot; href=&amp;quot;http://example.com/2&amp;quot;&amp;gt;post 2&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a rel=&amp;quot;alternate home&amp;quot;&lt;br /&gt;
   href=&amp;quot;http://example.com/fr&amp;quot;&lt;br /&gt;
   media=&amp;quot;handheld&amp;quot;&lt;br /&gt;
   hreflang=&amp;quot;fr&amp;quot;&amp;gt;French mobile homepage&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Would generate this 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;rels&amp;quot;: { &lt;br /&gt;
    &amp;quot;author&amp;quot;: [ &amp;quot;http://example.com/a&amp;quot;, &amp;quot;http://example.com/b&amp;quot; ],&lt;br /&gt;
    &amp;quot;in-reply-to&amp;quot;: [ &amp;quot;http://example.com/1&amp;quot;, &amp;quot;http://example.com/2&amp;quot; ],&lt;br /&gt;
    &amp;quot;alternate&amp;quot;: [ &amp;quot;http://example.com/fr&amp;quot; ], &lt;br /&gt;
    &amp;quot;home&amp;quot;: [ &amp;quot;http://example.com/fr&amp;quot; ] &lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;rel-urls&amp;quot;: {&lt;br /&gt;
    &amp;quot;http://example.com/a&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;author a&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/b&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;author&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;author b&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/1&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;in-reply-to&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;post 1&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/2&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;in-reply-to&amp;quot;], &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;post 2&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;http://example.com/fr&amp;quot;: {&lt;br /&gt;
      &amp;quot;rels&amp;quot;: [&amp;quot;alternate&amp;quot;, &amp;quot;home&amp;quot;],&lt;br /&gt;
      &amp;quot;media&amp;quot;: &amp;quot;handheld&amp;quot;, &lt;br /&gt;
      &amp;quot;hreflang&amp;quot;: &amp;quot;fr&amp;quot;, &lt;br /&gt;
      &amp;quot;text&amp;quot;: &amp;quot;French mobile homepage&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;
== what do the CSS selector expressions mean ==&lt;br /&gt;
''This section is non-normative.''&lt;br /&gt;
&lt;br /&gt;
Use [http://gallery.theopalgroup.com/selectoracle/ SelectORacle] to expand any of the above CSS selector expressions into longform English prose.&lt;br /&gt;
&lt;br /&gt;
Exception:&lt;br /&gt;
* ''':not[.h-*]''' is not a valid CSS selector but is used here to mean:&lt;br /&gt;
** does not have any class names that start with &amp;quot;h-&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== note HTML parsing rules ==&lt;br /&gt;
''This section is non-normative.''&lt;br /&gt;
&lt;br /&gt;
microformats2 parsers are expected to follow HTML parsing rules, which includes for example:&lt;br /&gt;
* ignore &amp;lt;code&amp;gt;&amp;amp;lt;template&amp;amp;gt;&amp;lt;/code&amp;gt; elements - stuff between &amp;lt;code&amp;gt;&amp;amp;lt;template&amp;amp;gt;&amp;lt;/code&amp;gt; tags don't end up in the DOM&lt;br /&gt;
** test-case in the wild: http://sixtwothree.org/blog/now-accepting-webmentions/&lt;br /&gt;
&lt;br /&gt;
== note backward compatibility details ==&lt;br /&gt;
The parsing algorithm and details refer to &amp;quot;backcompat root classes&amp;quot; (backcompat roots for short) and &amp;quot;backcompat properties&amp;quot;. These conditions and steps in the algorithm document how to parse pre-microformats2 microformats which all defined their own specific root class names and explicit sets of properties.&lt;br /&gt;
&lt;br /&gt;
Some details to be aware of (which are explicitly in the algorithm, this is just an informal summary)&lt;br /&gt;
* If an element has one or more microformats2 root class name(s) (&amp;lt;code&amp;gt;h-*&amp;lt;/code&amp;gt;) &lt;br /&gt;
** all backcompat root class names are ignored on that element.&lt;br /&gt;
** all backcompat properties, without an intervening root class name, are ignored inside that element&lt;br /&gt;
* If an element has only a backcompat root class name (or names)&lt;br /&gt;
** all microformats2 property class names (p-* u-* dt-* e-*), without an intervening element with root class name, are ignored inside that element&lt;br /&gt;
** there is no implied property value parsing (p-name, u-url, u-photo) for that element&lt;br /&gt;
&lt;br /&gt;
=== backward compatibility mappings ===&lt;br /&gt;
Note: several parser implementations have encoded backward compatible mappings into source and data files. Implementers of parsers may find these useful:&lt;br /&gt;
* search for &amp;quot;modules.maps[&amp;quot; in https://github.com/glennjones/microformat-shiv/blob/master/microformat-shiv.js&lt;br /&gt;
* search for &amp;quot;$classicPropertyMap&amp;quot; in https://github.com/indieweb/php-mf2/blob/master/Mf2/Parser.php&lt;br /&gt;
* https://github.com/tommorris/mf2py/blob/master/mf2py/backcompat.py&lt;br /&gt;
&lt;br /&gt;
== questions ==&lt;br /&gt;
See the FAQ:&lt;br /&gt;
* [[microformats2-parsing-faq]]&lt;br /&gt;
&lt;br /&gt;
== issues ==&lt;br /&gt;
See the issues page:&lt;br /&gt;
* [[microformats2-parsing-issues]]&lt;br /&gt;
&lt;br /&gt;
== implementations ==&lt;br /&gt;
{{main|microformats2#Implementations}}&lt;br /&gt;
There are open source [[microformats2#Implementations|microformats2 parsers]] available for Javascript, node.js, PHP, Ruby and Python.&lt;br /&gt;
&lt;br /&gt;
== test suite ==&lt;br /&gt;
See:&lt;br /&gt;
* https://github.com/microformats/tests&lt;br /&gt;
* https://github.com/indieweb/php-mf2/tree/master/tests/Mf2&lt;br /&gt;
&lt;br /&gt;
Ports to/for other languages encouraged.&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;
Per the stable status of this document, substantive issue filing, resolution, and edits are done with the following change control steps, which may nearly all be done asynchronously once an issue is filed to reach the required state of &amp;quot;Resolve by implementation verified rough consensus&amp;quot;. All steps should be openly documented (e.g. on this wiki or GitHub issues) such that others may later verify the history of an issue, and all steps are encouraged to be announced on #microformats [[IRC]] with a link to the issue.&lt;br /&gt;
&lt;br /&gt;
* '''File an issue.''' Anyone may file a new [[microformats2-parsing-issues|issue]] and is encouraged to do so, with the caveat that per the stable status, only issues originating as a result of implementation experience are likely to have a substantive impact on this specification.&lt;br /&gt;
* '''Propose a resolution.''' Anyone may propose resolutions to existing issues, and should encourage others in the community, especially implementers, to provide feedback. Proposed resolutions should include what specific text of the spec needs changing, preferably with replacement text, and test cases if applicable (e.g. a resolution could just document the current state more precisely without needing to provide any new test cases).&lt;br /&gt;
* '''Provide feedback on proposed resolution(s).''' Anyone may provide feedback on proposed resolutions with their name attached, in summary (e.g. +1/0/-1 opinions), and additionally with reasoning (required for objections, optional otherwise), or optionally with suggested improvements, or counter-proposals (per &amp;quot;Propose a resolution&amp;quot; above).&lt;br /&gt;
* '''Iterate to resolve objections if any.''' If there are any objections to a proposed resolution, proposer(s) and anyone agreeing should work to iterate on the proposal to resolve objections to the satisfaction (or at least withdrawal of objection) of anyone objecting. The more objections resolved the better, and incremental progress is forward progress.&lt;br /&gt;
* '''Broaden implementer consensus.''' Proposer(s) and anyone agreeing should reach out (e.g. via #microformats [[IRC]]) to multiple implementers of the specification to get their opinions and feedback on proposal(s). The more implementers providing feedback the better. Iterate to resolve any new objections per &amp;quot;Iterate to resolve objections if any&amp;quot; above.&lt;br /&gt;
* '''Encourage and get 1+ implementation(s).''' Encourage, get, and document 1+ implementation(s) of implementation affecting aspects of a proposed resolution, preferably with a test case if applicable.&lt;br /&gt;
* '''Resolve by implementation verified rough consensus.''' Once there is rough consensus on a proposal (where &amp;lt;dfn&amp;gt;rough consensus&amp;lt;/dfn&amp;gt; means &amp;lt;strong&amp;gt;either no objections, or at a minimum no objections by implementers, and explicit positive opinions by 2+ implementers&amp;lt;/strong&amp;gt;) and a proposal's feasibility is verified by at least 1 implementation of aspects of the proposal that affect implementations (none needed if there are none, e.g. purely editorial), cite those in a &amp;quot;Resolution:&amp;quot; statement on the issue (e.g. in a comment), and explicitly share this resolution statement and link to issue in the #microformats [[IRC]] channel.&lt;br /&gt;
* '''Edit specification.''' Normally the spec editor(s) will make edits per implementation verified rough consensus resolutions, however anyone (though especially issue discussion participants) may make a specification edit per a resolution if they are able to verify the citations that the resolution has achieve rough consensus, and has 1+ implementation(s) per &amp;quot;Encourage and get 1+ implementation(s)&amp;quot; above. Edits must contain a &amp;quot;Summary&amp;quot; field entry that at a minimum mention the issue by name, should provide a URL to the issue resolution, and preferably be done by a spec editor or an implementer. Once the edit is made, the issue should be closed, or at least a comment made on the issue requesting that the opener of the issue close the issue.&lt;br /&gt;
&lt;br /&gt;
These change control steps are inspired by the tradition of &amp;quot;Rough consensus and running code&amp;quot; as exhibited by example by IETF and W3C processes, and in that regard, seek to be a philosophically compatible approach to specification iteration. They have been in rough practice since 2015-01-21, increasingly strictly applied since then with consensus of issue discussion participants, and explicitly documented based on issue resolving and spec editing experience.&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* [[microformats2-parsing-faq]]&lt;br /&gt;
* [[microformats2-parsing-issues]]&lt;br /&gt;
* [[microformats2-parsing-brainstorming]] - for background, thinking, exploring possibilities&lt;br /&gt;
* [[microformats2-parsing-rdf]]&lt;br /&gt;
* [[microformats2-implied-properties]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Draft Specifications]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=hcard-examples-in-wild-fr&amp;diff=66680</id>
		<title>hcard-examples-in-wild-fr</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=hcard-examples-in-wild-fr&amp;diff=66680"/>
		<updated>2018-02-19T17:28:04Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66679 by Christaylor88 (Talk). Per hcard-examples-in-wild no new submissions will be accepted.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Exemples de hCards dans la jungle&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:7.5em;text-align:center;font-weight:bold;font-size:larger&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;padding:3em 0;float:left;width:33%&amp;quot;&amp;gt;[[hcard-examples-in-wild-fr#exemples_par_catégories|Vous voulez des hCards]]&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;padding:3em 0;float:left;width:33%&amp;quot;&amp;gt;[[hcard-examples-in-wild-fr#exemples_nouveaux_et_non-catégorisés|Vous avez des hCards]]&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette page est une section '''informative''' de la [[hcard-fr|spécification hCard]].&lt;br /&gt;
&lt;br /&gt;
Les sites suivants ont publié des [[hcard-fr|hCards]] et sont par conséquent un endroit merveilleux pour quiconque cherchant des exemples &amp;quot;dans la jungle&amp;quot; pour l'inspiration, ou essayer de parser et d'indexer.&lt;br /&gt;
&lt;br /&gt;
== exemples nouveaux et non catégorisés ==&lt;br /&gt;
'''Vous avec une hCard ?''' Si vous avez un site avec une ou plusieurs hCard, ajoutez-le en haut de cette liste. Assurez-vous svp d'inclure au moins une URL vers une page sur votre site qui comprenne un véritable balisage [[hcard-fr|hCard]]. Les exemples ajoutés sans une URL vers une page avec un balisage hCard pourront être supprimés. Revenez après quelques jours, pour voir si quelqu'un aurait trouvé quelque problème avec les exemples fournis. Notez que les exemples peuvent être catégorisés et migrés sur la section groupée au-dessous.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez vouloir utiliser ces boutons sur vos pages avec des hCards. Voir [[buttons-fr#hCard]] pour les ajouts récents.&lt;br /&gt;
http://www.davidjanes.com/images/mf_hcard.png &amp;lt;!-- initialement http://www.crowley.nl/images/hcard.png --&amp;gt; &amp;lt;!-- http://rbach.priv.at/2006/buttons/hcard.png --&amp;gt; http://www.boogdesign.com/images/buttons/microformat_hcard.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
SVP ajoutez les nouveaux exemples *en haut de cette section*&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* [http://www.vtcreative.fr Vtcreative] utilise hCard dans le footer du site pour mettre à disposition des visiteurs ses informations de contact.&lt;br /&gt;
* [http://aquelito.fr Axel Roche] utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://jerba.be Djerba] utilise hCard pour les services listés dans l'annuaire et permet le téléchargement des données au format (.VCF) Exemple : [http://jerba.be/fr/annuaire/radisson-blu-djerba-s4.html Radisson Blu Djerba]&lt;br /&gt;
* [http://johanramon.fr Johan Ramon] utilise hCard sur son &amp;lt;abbr title=&amp;quot;Curriculum Vitae&amp;quot;&amp;gt;CV&amp;lt;/abbr&amp;gt;.&lt;br /&gt;
* [http://cuisine-ultime.fr Cuisine ultime] - Utilise une hCard sur toutes ces pages pour lien de contact avec l'administrateur (contact invisible seul l'importation est possible).&lt;br /&gt;
* [http://survie.org Survie France] - présente les coordonnées de son siège national via une hCard dans le pied de page.&lt;br /&gt;
* [http://www.norfolkblackhistorymonth.org.uk/contact.html Norfolk Black History Month] - utilise hCard sur la page de contact et sur le site, fournissant une information de contact pour les lieux des évènements, organisateurs et organisations partenaires.&lt;br /&gt;
* [http://www.veganusofa.com/ VeganUSofA] - utilise hCard pour l'adresse organisation et entreprise. Exemple : [http://www.veganusofa.com/index.php?listing=4 The All Vegan Store].&lt;br /&gt;
*[http://adrianindo.blogspot.com Blog d'ADRIAN] a placé une hCard pour se présenter plus précisément aux visiteurs. la hCard a été listée comme un nom, une url de blog et les organisations. Vous pouvez la voir en bas de la barre latérale droite du blog.&lt;br /&gt;
* [http://www.canadianpokerexpo.com The Canadian Poker Expo (Toronto)], Une Expo de Poker se concentrant sur le marché à Toronto utilise hCard pour [http://www.canadianpokerexpo.com/Contact-Us/Contact-Form sa page de contact].&lt;br /&gt;
* [http://www.semineeas.ro Seminee As], un producteur roumain d'extincteur utilise hCard pour [http://www.semineeas.ro/contact/ l'info de contact] avec téléchargement optionnel de la vCard&lt;br /&gt;
*[http://www.gastrohep.com/aboutus.asp GastroHep.com] la page &amp;quot;About Us&amp;quot; utilise une hCard pour l'adresse de contact.&lt;br /&gt;
*[http://leemannphotography.ca/?p=contact Lee Mann Photography] utilise une hCard pour l'adresse de contact tout comme sur le blog. Idéalement elle sera bientôt en pied de page de chacune des pages.&lt;br /&gt;
*[http://www.kimburgess.info Kim Burgess] information minimaliste du site web avec marquage hCard.&lt;br /&gt;
*[http://www.plumbset.co.uk/ContactUs.htm PlumbSet UK Ltd] utilise hCard pour l'information de contact, y compris plusieurs adresses.&lt;br /&gt;
*[http://www.manuhealth.com/products/manuka-soap-75gm Manuhealth Natural Remedies] utilise hCard pour l'adresse de retour sur les pages produits.&lt;br /&gt;
*[http://www.farmaciasarria.com/esp/mapa.php Farmàcia Sarrià - Farmàcia Finestres Capdevila] utilise une hCard pour son information de contact.&lt;br /&gt;
*[http://www.naturesbestshot.com Nature's Best Shot Photography] - utilise une hCard sur la page contact&lt;br /&gt;
*[http://www.noomii.com/life-coach Noomii.com Coach Directory] - chaque coach professionnel dans l'annuaire est une hCard.&lt;br /&gt;
*[http://www.ethical-junction.org/member/org-2012.html Ethical Junction CIC - Profile page] Nous utilisons hCard pour chaque organisation sur sa page de profil.&lt;br /&gt;
*[http://www.bowtietv.com Bow Tie Television] utilise hCard pour l'information de contact sur chaque page et dans la section contacts.&lt;br /&gt;
*[http://www.tauruslogistics.co.nz/about/contact Taurus Logistics] utilise hCard pour l'information de contact.&lt;br /&gt;
*[http://www.professdiamond.com/ professdiamond] encode Thai sous UTF8 dans une hCard dans la ligne au bas de chaque page.&lt;br /&gt;
*[http://avonvalleylocalguide.iinet.net.au/ Avon Valley Local Guide] utilise hCard pour l'information de contact des annonceurs.&lt;br /&gt;
*[http://www.arizonafirstresponse.com/ Arizona First Response] utilise une hCard sur chaque pied de page.&lt;br /&gt;
*[http://dillingham.me.uk/ Iain Dillingham] utilise une hCard sur chaque pied de page, et a un exemple stylisé (avec le logo microformats) sur sa [http://dillingham.me.uk/contact.html page contact].&lt;br /&gt;
*[http://www.pixeflips.com/ Pixelflips Web &amp;amp;amp; Interface Design] hCard est utilisé dans le pied de page de toutes les pages pour un accès facile à l'information.&lt;br /&gt;
*[http://www.herminesperr.at/ Hermine Sperr, Qualified Practitionier of the Grinberg Method&amp;amp;reg; à Vienne/Autriche] Une hcard est utilisée pour l'information de contact sur chaque page du site.&lt;br /&gt;
* [http://www.barnard.edu/ Barnard College] - Les profils utilisent hCard pour l'information de contact. Exemple : [http://www.barnard.edu/faculty/profiles/mehrling_p.html Profil de P. Mehrling].&lt;br /&gt;
* [http://www.ivycat.com/ IvyCat Website Services] - Société de design web et hébergement. Une hcard pour l'information de contact. Exemple : [http://www.ivycat.com/contact/ Contact Us].&lt;br /&gt;
* [http://www.modeltrainswithlarry.com/ ModelTrainsWithLarry] - Utilise hCard pour l'adresse. Exemple : [http://www.modeltrainswithlarry.com/index.php?listing=502 Choo Choo Barn].&lt;br /&gt;
* [http://www.gardeningwithlarry.com/ GardeningWithLarry] - Utilise hCard pour l'adresse. Exemple : [http://www.gardeningwithlarry.com/index.php?listing=2681 United States Botanic Garden].&lt;br /&gt;
* [http://abyrvalg.com/ Abyrvalg] - communauté de ville en Russie. Utilise hCard pour afficher les adresses des sociétés locales. Exemple : [http://moscow.abyrvalg.com/biz/faq-cafe FAQ cafe à Moscou].&lt;br /&gt;
* [http://www.jdclark.org/v1 Jordan Clark], from the Swansea area of Wales in the United Kingdom, uses [http://www.jdclark.org/card hcard for contact information].&lt;br /&gt;
* [http://whichtwitterapp.com/ WhichTwitterApp] provides [http://whichtwitterapp.com/reviews/iphone/tweetie reviews of twitter apps] using hCard, hReview, rel-tag and rel-home.&lt;br /&gt;
* [http://www.robinleysen.be/Robin.html Robin Leysen] has a hCard on a separate page. Tried to be as complete as possible. hCard validated with Optimus.&lt;br /&gt;
* [http://www.jay-photographics.de/ Jay Photographics] Photographer from Stuttgart, Germany. The hcard format is used on all pages for contact information.&lt;br /&gt;
* [http://www.uniquesite.co.uk/ UNIQUEsite] Website designer based in Brighton, UK. Uses the hcard format for contact information.&lt;br /&gt;
* [http://www.slideshare.net/ SlideShare] uses hcard to identify its users. see [http://hcard.geekhood.net/?url=http%3A%2F%2Fwww.slideshare.net%2Fkcmani#result Validated hcard] and [http://www.slideshare.net/kcmani Mani's SlideShare profile]&lt;br /&gt;
* [http://chrisruppel.com Chris Ruppel], a web developer in Dallas, TX, uses an hcard for contact information site-wide (as well as XFN)&lt;br /&gt;
* [http://greenspiritgardeners.com/ Green Spirit Gardeners] uses the hCard format throughout the site, including on the portfolio page for [http://greenspiritgardeners.com/portfolio/ commercial clients] and the [http://greenspiritgardeners.com/contact/ contact] page.&lt;br /&gt;
* [http://www.dorettebos.nl/ Dorette Bos Coaching &amp;amp;amp; Training] uses hcard microformat on the [http://www.dorettebos.nl/contact.php contactpage]&lt;br /&gt;
* [http://volunteers.st/ Steffi &amp;amp;amp; the volunteers] is an Austrian band and uses hcards for [http://volunteers.st/ band-contact in the footer] and on the page of the [http://volunteers.st/crew.html crew]&lt;br /&gt;
* [http://www.textundkonzept.at Bernhard Ulrich] an Austrian copywriter uses the hcard format [http://www.textundkonzept.at on all pages of his website] for his contact information&lt;br /&gt;
* [http://www.powerbrand.at/contact.html POWERBRAND] a brand name development agency uses a [http://www.powerbrand.at/contact.html hcard for contact information]&lt;br /&gt;
*[http://www.koerperarbeit.net/ Anita Braunsberger, Qualified Practitionier of the Grinberg Method&amp;amp;reg; in Linz/Austria] A hcard is used for contact information on her website.&lt;br /&gt;
*[http://www.carpetscleansandiego.com Durbin's Carpet Care] displays a vCard for contact information and relevancy&lt;br /&gt;
*[http://www.nationalrural.org/organisation.aspx?id=96a3fc04-5c03-4d31-bb8a-2c55cc29aed4 National Rural Knowledge Exchange] uses an hCard with geo tags when displaying an organisations information&lt;br /&gt;
* [http://www.tinstar.co.uk/about-tinstar-design/contact-tinstar-design.html Tinstar Design] uses an hCard for company contact information.&lt;br /&gt;
* [http://www.interdixit.com/esp/contacto.php Interdixit] uses an hCard for his contact information.&lt;br /&gt;
* [http://www.sisnova.com/ Sisnova] uses hCard for his location pages.&lt;br /&gt;
* [http://www.fenoyarquitectura.com/esp/situacion.php Eduard Fenoy i Associats] uses an hCard.&lt;br /&gt;
* [http://www.deltronic.com/ Deltronic Corporation] of Santa Ana, CA has posted an hCard with geo tags on its [http://www.deltronic.com/contact.shtml Contact] page.  Background image of a contact card reinforces content.  For those without enabling browser extensions, both hCard &amp;quot;logo&amp;quot; and text link make vCard available via external parser.&lt;br /&gt;
* [http://transitionsmft.org/ Transitions Marriage and Family Therapy] has an hCard with geo tags in the footer of each page. There is also an hCard for each counselor on the [http://transitionsmft.org/about.php About] and [http://transitionsmft.org/contact.php Contact]pages.&lt;br /&gt;
* [http://ball.in.th/ ball.in.th] uses hCard to display all usernames.&lt;br /&gt;
* Italian business directory and community portal [http://www.cylex.it/ cylex.it] implements hCard for companies’ contact information with geo tags. Example: [http://www.cylex.it/azienda/computerland-10559319.html company profile]&lt;br /&gt;
* [http://jermy.musicremedy.com/ Jermy Leeuwis MSc] uses an hCard for his contact information.&lt;br /&gt;
* [http://idoinfotech.com Gary Eckstein] uses an hCard for [http://idoinfotech.com/contact contact information].&lt;br /&gt;
* [http://www.drsuarez.net/  Dr. Suarez]  uses hCard on his  [http://www.drsuarez.net/cvitae.html resume page]&lt;br /&gt;
* [http://sourceforge.net/projects/adx/ addressbook.xml] provides hCard support:  [http://elektronengehirn.net/addressbook/addressbook.html adx live example]&lt;br /&gt;
* [http://aplawrence.com APlawrence.com] is using hCard for its [http://aplawrence.com/Links/consultants.html Unix and Linux Consultants Page]&lt;br /&gt;
* [http://www.afonsoduarte.com Afonso Duarte's Portfolio]. Uses an hCard for the contact information.&lt;br /&gt;
* [http://www.rafe.me Web development by Rafe Harwood]. Uses an hCard for the contact line in the footer of every page.&lt;br /&gt;
* [http://www.frogmeat.com Los Angeles Web Design]. Uses an hCard for contact information.&lt;br /&gt;
* [http://www.arbea.basilicata.it/ ARBEA - Agenzia della Regione Basilicata per le Erogazioni in Agricoltura]. hCard is used both for classic [http://www.arbea.basilicata.it/index.php?option=com_contact&amp;amp;view=contact&amp;amp;id=4&amp;amp;Itemid=101 Contact page] and for farms showcase (&amp;quot;Vetrina Aziende Agricole&amp;quot;) available for registered users. I've embedded it modifying Joomla! 1.5 com_contact core component. Users of this CMS can [http://joomlacode.org/gf/project/hcardcontact/ download my patch].&lt;br /&gt;
* [http://trumps.net Los Angeles Search Engine Optimization] Uses hCard in the footer of all pages.&lt;br /&gt;
* [http://reaganvick.com Personal Portfolio of Lance Reagan Vick]. Includes examples of PGP and SSH public keys I have not seen used anywhere else. Hopefully someone finds it helpful!&lt;br /&gt;
* [http://www.fracturedstudios.com Los Angeles Search Engine Optimization] uses hCard to provide address information at bottom of page&lt;br /&gt;
* [http://www.csid.upt.ro/home.php The Distance Learning Center - CSID, &amp;quot;Politehnica&amp;quot; University Timisoara], Romania uses hCard, including geo information, in every page's footer for encoding the University address. hCard is also used for [http://www.csid.upt.ro/personal.php staff] and student contact information.&lt;br /&gt;
* [http://rehabpizza.co.uk Rehab Restaurant] London restaurant, see the sidebar for link to [http://rehabpizza.co.uk/rehab.hcard the hcard].&lt;br /&gt;
* [http://www.outdoorla.org/ Los Angeles Hiking Trails] at the bottom right, our contact information is marked up as an hcard.&lt;br /&gt;
* [http://c7.se Code7 Interactive] uses a hCard for Peter's [http://c7.se/contact contact details].&lt;br /&gt;
* The [http://www.austinartcollective.com Austin Art Collective] is a group dedicated to helping emerging artists sell their artwork online. There is space for users to submit [http://www.austinartcollective.com/gallery/Art-City-Austin.html art gallery reviews] as well, [http://www.austinartcollective.com/austin-galleries/Downtown.html organized by neighborhood] in Austin, TX USA.&lt;br /&gt;
* [http://www.squaremeal.co.uk/ Square Meal Restaurant Guide] uses hCards and hReviews for all restaurant listings and [http://www.squaremeal.co.uk/review/Ristorante_Semplice/1596 visitor reviews].&lt;br /&gt;
* [http://www.vegan-nottingham.co.uk/ Vegan Nottingham Guide] uses hcards, including geo information, for each entry in the guide.&lt;br /&gt;
* [http://www.cgtworld.com/ Cybernation Gamers Tournament] uses hCard in all users profiles like [http://www.cgtworld.com/profile/id-1/ Moonlext's Profile] and in the [http://www.cgtworld.com/about/press.html press page of CGT].&lt;br /&gt;
* [http://fcctlh.org First Christian Church of Tallahassee] Uses hCard in the footer of all pages.&lt;br /&gt;
* [http://www.pseps.com/vc-people/a.cfm The PSEPS Venture Capital and Private Equity Directory] Venture capital and private equity directory using microformats (both for professionals and firms).&lt;br /&gt;
* [http://www.koningskindkadootjes.nl koningskindkadootjes.nl] Hcard located at the bottom of the pages.&lt;br /&gt;
* [http://www.futurix.nl futurix.nl website and webshop development] At the bottom of the pages you'll find the hcard. With a link to technorati the hcard is used to get a vcard out of the hcard.&lt;br /&gt;
* [http://romjon.com/contact-us romjon.com website design &amp;amp;amp; development] Contact Us page using hcard to markup address details. By using Operator, Google Maps and Yahoo! Maps can be made to open with the pointer, respectively, in pretty much and more or less exactly the right place.&lt;br /&gt;
* [http://www.thebeanmachine.nl/ The Bean Machine] at the bottom right, our contact information is marked up as a hcard&lt;br /&gt;
* [http://www.universalmedicalid.com/canada Universal Medical ID Canada] uses hCard to provide address information at bottom of page, as well as on a number of pages within the site.&lt;br /&gt;
* [http://web.mac.com/a.gibson/ Alex Gibson Web Developer] uses hCard for contact info on his homepage.&lt;br /&gt;
* [http://www.wardelldesign.com/html/contact/index.php Wardell Design] uses hCard for contact info with optional vCard download.&lt;br /&gt;
* [http://www.drfosterhealth.co.uk/hospital-guide/  Dr Foster Hospital Guide] uses hCard to mark up hospital addresses. See [http://www.drfosterhealth.co.uk/hospital-guide/hospital/nhs/Basingstoke-and-North-Hampshire-Hospital-366.aspx Basingstoke hospital page] for example.&lt;br /&gt;
* [http://www.drfosterhealth.co.uk/complementary-therapist-guide/ Dr Foster Complementary therapist guide] The [http://www.drfosterhealth.co.uk/complementary-therapist-guide/objectlist.aspx?w=32&amp;amp;p=8&amp;amp;obid=&amp;amp;sub=0 regulatory bodies page] uses hCard for contact details.&lt;br /&gt;
* [http://wayne.edu/ Wayne State University] uses hCard for University address and contact details in the global footer used on most web pages.&lt;br /&gt;
* [http://www.brakemeters.co.nz/ Portable Brake Meters N.Z. Ltd] uses hCard for business address and contact details.&lt;br /&gt;
* [http://www.tallpoppieshamilton.co.nz/ Tall Poppies Florist] uses hCard for business address and contact details.&lt;br /&gt;
* [http://www.livingcolour.co.nz/ Living Colour Florist] uses hCard for business address and contact details. See [http://www.livingcolour.co.nz/Information.aspx Information] page&lt;br /&gt;
* [http://www.m-ephotographsen.fr/ m-ephotographsen] utilise hCard.&lt;br /&gt;
* [http://www.2imahl.fr/fr/page/contact.html 2imahl fabricant de mobilier] utilise hCard sur sa page de contact ainsi que Geo sur sa page &amp;quot;[http://www.2imahl.fr/fr/info/plan.html plan]&amp;quot;.&lt;br /&gt;
* [http://www.energies-reseaux-expo.com/ Forum Energies Réseaux] utilise hCard dès lors que des données nominatives sont utilisées (organisateurs du salon, exposants, conférenciers, etc.)&lt;br /&gt;
* [http://www.allogarage.fr/ Allogarage] - Comparatif des garages automobiles en France. Plus de 13 000 garages déjà référencés et disponibles au format hCard avec géolocalisation, exemple pour le garage &lt;br /&gt;
[http://www.allogarage.fr/garages/details-garage-GRAND-GARAGE-PELLEPORT-10239.html GRAND GARAGE PELLEPORT].&lt;br /&gt;
* [http://MyVcf.com MyVcf.com] affiche les infos au format hcard et permet de les télécharger au format vcard.&lt;br /&gt;
* Les Explorateurs du Web ont publié une hCard sur la [http://explorateursduweb.com/blog/about/ page contact] avec une hCard&lt;br /&gt;
* [http://www.areaguides.net areaguides.net] utilise le marquage hCard pour toutes les adresses sur le site.&lt;br /&gt;
** Exemples : http://chicagoil.areaguides.net/ypcyellowpg/restaurants.html, http://newyorkny.areaguides.net/hotels.html&lt;br /&gt;
* [http://www.ll.georgetown.edu/ Georgetown University Law Library] à Washington, D.C. utilise maintenant hCard pour les adresses sur toutes les pages.  Signalons aussi, que les pages de bio du personnel de la bibliothèque utilisent hCard comme  [http://www.ll.georgetown.edu/staff/bio.cfm?id_no=105 here] and [http://www.ll.georgetown.edu/staff/bio.cfm?id_no=32 ici].&lt;br /&gt;
* [http://www.mtgd.gov.md/ Le Ministère des Transports et Industries de la Route] de la République de Moldavie. Le premier site gouvernemental moldave utilisant des hCards sur les [http://www.mtgd.gov.md/ministrul/ pages du personnel], [http://www.mtgd.gov.md/subdiviziunile-ministerului/ page des sous-divisions] et dans le pied de page de chaque page (contact) &lt;br /&gt;
**Seules les versions en [http://www.mtgd.gov.md/ roumain] et [http://www.mtgd.gov.md/ru/ russe] sont disponibles à cette heure&lt;br /&gt;
* [http://www.auctionlink.com.au/ AuctionLink] utilise hCard pour les enregistrements d'enchères comme [http://www.auctionlink.com.au/Auctioneers/Auctioneer/Cam_Brown_Auctions/ Cam Brown Auctions] (utilise aussi hCalendar)&lt;br /&gt;
* [[User:WebOrganics|User WebOrganics]] Le Wiki Microformats wiki a des hCards sur ses pages utilisateurs.&lt;br /&gt;
* [http://www.ontwerpkliniek.nl Ontwerpkliniek - Bureau voor Visuele Identiteit] utilise l'information de contact hCard sur la page d'accueil et la page contac.&lt;br /&gt;
* [http://www.instantdes.com L'instant des...] utilise le format hCard pour tous les photographes publiés sur ce photoblog collectif.&lt;br /&gt;
* le blog de groupe mediadesigner [http://www.pixeltapete.de Pixeltapete] utilise la hCard pour l'information de contact des pages des auteurs d'[http://www.pixeltapete.de/alex Alex] et [http://www.pixeltapete.de/carsten Carsten] et aussi  [http://www.pixeltapete.de/kontakt imprint]. [http://www.pixeltapete.de Pixeltapete] utilise son propre  [http://www.pixeltapete.de/2007/11/hcard-sidebarwidget-fuer-wordpress/ widget hcard] pour les barres latérales wordpress. &lt;br /&gt;
* [http://www.thorsten-ott.de Thorsten Ott] utilise le format hCard pour la section contact de son résumé en ligne.&lt;br /&gt;
* [http://rosebleed.net/ Rosebleed] supporte [[hCard user profiles-fr|les profils utilisateurs hCard]] - votre URL profil est &amp;lt;nowiki&amp;gt;http://rosebleed.net/users/profile.php/&amp;lt;/nowiki&amp;gt; suivi de votre nomutilisateur, par ex. [http://rosebleed.net/users/profile.php/silvermoon82 silvermoon82].&lt;br /&gt;
**'''Réparé''' les profils sont marqués explictement 'n' chaque fois que possible, autrement il l'omet&lt;br /&gt;
* [http://www.whitepages.com WhitePages.com] Désormais WhitePages.com a implémenté hCard sur toutes ses listes. Plus de 120 millions de hCards ! Comprend l'information professionnelle.&lt;br /&gt;
* [http://www.warmoth.com Warmoth Guitar Products] présente l'information hCard à deux endroits,  [http://www.warmoth.com/customerservice/customer.cfm?fuseaction=order How To Order] et tout le [http://www.warmoth.com/catalog Warmoth E-Store]&lt;br /&gt;
* [http://www.bbc.co.uk/worldservice/bangladeshboat BBC World Service Bangladesh River Journey] un mashup de réseau social, avec hCard &amp;amp; d'autres microformats. Voir le [http://dharmafly.com/blog/bangladeshboat blog de discussion Dharmafly].&lt;br /&gt;
* [http://www.amants-du-chocolat.net/ ACCP :Les Amants du Chocolat de la Couronne Parisienne] utilise hCard sur sa page de contact et celles des fabricants de chocolats qu'ils ont dégustés.&lt;br /&gt;
* [http://www.accountviewsoftware.nl/ AccountviewSoftware.nl] fait usage de hCards pour le répertoire des distributeurs  [http://www.accountviewsoftware.nl/dir/ (répertoire)]&lt;br /&gt;
* [http://www.crystalvision.co.il/ CrystalVision] utilise hCard sur sa page contact et dans le pied de page sur tout le site.&lt;br /&gt;
* [http://www.indigoclothing.com/ Indigo Clothing] une société de t-shirt basée à Londre utilise hCard avec le lien Technorati &amp;quot; Add to Address Book&amp;quot; sur tout le site dans le pied de page.&lt;br /&gt;
* [http://www.joshuamcginnis.com Joshua McGinnis] utilise hCard pour afficher son information de contact aux clients potentiels.&lt;br /&gt;
* La [http://www.myaffordablemarketing.com/contact.php page contact de Affordable Marketing Solutions] utilise hCard avec Technorati &amp;quot;Add to Address Book&amp;quot;.&lt;br /&gt;
* [http://www.bo.ingv.it/contents/INGV-Bologna/Staff.html INGV Bologna] a implémenté les hCards pour les membres du personnel, marquées sous des lignes de table HTML (l'[[include-pattern-fr|include-pattern]] a aussi été utilisé pour ajouter le nom de l'organisation et le numéro de fax à chaque hCard).&lt;br /&gt;
* [http://ideance.net/cv.php Sébastien Delorme] utilise une hCard sur son CV en ligne. Il a également créé une [http://ideance.net/lab/hCard/ hCard de Noah Bennet] (personnage d'une série américaine) dans le cadre d'un concours&lt;br /&gt;
* [http://www.lefora.com Lefora] est un site gratuit d'hébergement de forums. Chaque profil utilisateur contient une hCard. (Exemple de forum pour tester :[http://funstuff.lefora.com funstuff.lefora.com])&lt;br /&gt;
* [http://www.handlairsystems.com H&amp;amp;L Air Systems] utilise hCard avec un lien Technorati vers le Carnet d'Adresses sur toutes les pages de contact.&lt;br /&gt;
* [http://theultimates.whitepages.com WhitePages.com] Une version spéciale de whitepages.com a toutes ses listes marquées avec hCard.&lt;br /&gt;
* [http://piermontweb.com/contact/ Piermont Web Design] utilise hCard sur sa page contact.&lt;br /&gt;
* [http://www.ie.asm.md/en/ The Institute of Power Engineering] de l'Académie des Sciences de Moldovie. Premier site moldave utiisant des hCards sur les pages du staff, par ex. [http://www.ie.asm.md/employees/oleschuk-valentin/]&lt;br /&gt;
**Aussi en russe : [http://www.ie.asm.md/employees-ru/sit-michail-lvovich/] et en roumain : [http://www.ie.asm.md/angajati/chiorsac-mihail/]&lt;br /&gt;
* Le bateau [http://styrheim.com/test/leonid.html Leonid Miloslavskiy] a fait escale dans l'Atlantique Nord&lt;br /&gt;
* [http://richi.co.uk/blog/2005/12/structured-blogging.html Richi Jennings] a placé son essai&lt;br /&gt;
*[http://oberrycavanaugh.com O'Berry|Cavanaugh] a une hCard d'organisation dans le pied de page de chaque page tout comme des hCards individuelles sur la page [http://oberrycavanaugh.com/team.php &amp;quot;Team&amp;quot;].&lt;br /&gt;
* [http://fortisgc.com Fortis General Counsel], par ex. le [http://fortisgc.com/joyce_lan_kim.html profil de Joyce Kim], utilise hCard pour l'information de profil et de contact.&lt;br /&gt;
* [http://peryplo.com Peryplo.com], par ex. [http://peryplo.com/personal/7e6786e711c6d051a39a1b7085f34955 Page Echantillon], utilise hCard pour les Hôtels, les endroits gastronomiques et les services pour touristes.&lt;br /&gt;
* [http://www.navitraveler.com/places/629/ NaviTraveler], par ex. [http://www.navitraveler.com/places/629/Lincoln_Memorial.html Lincoln Memorial], comprenant un [[geo-fr|Geo]].&lt;br /&gt;
** Réponse en 12 heures à une demande de soutien-  [[User:AndyMabbett|Andy Mabbett]]&lt;br /&gt;
* [http://corewar.atspace.com/about.html sfghoul] a marqué son information de contact avec [[hcard-fr|hCard]]&lt;br /&gt;
* [http://www.zaadz.com Zaadz] utilise [[hcard-fr|hCard]] et [http://gmpg.org/xfn XFN] pour ses amis sur une page profil des utilisateurs.&lt;br /&gt;
*[http://www.xoxiety.com/about.html Xoxiety] utilise les hCards sur sa page &amp;quot;about&amp;quot;, en liant les données à partir d'un bloc intérieur de texte.&lt;br /&gt;
*[http://yedda.com Yedda] - Yedda fournit des identités basées sur hCard sur tous les profils des personnes&lt;br /&gt;
*[http://openid.ne.jp OpenID.ne.jp] Premier service de fournisseur OpenID au Japon (日本語). Chaque page personnelle OpenID (par ex :[http://eouia.openid.ne.jp http://eouia.openid.ne.jp]) est marquée avec hCard. Et il existe aussi une hCard de société sur chaque page.&lt;br /&gt;
* [http://www.goldenglovepromotions.com/ Golden Glove Promotions] a utilisé des hcards sur le pied de page de chaque page pour l'information de contact.&lt;br /&gt;
* Les sites d'actualités Australiens &amp;quot;The Australian&amp;quot; et &amp;quot;Australian IT&amp;quot; utilisent hCard sur leurs pages de contacts : [http://www.theaustralian.com.au/contactus The Australian (contact us)] et [http://www.australianit.news.com.au/contactus Australian IT (contact us)]&lt;br /&gt;
* [http://www.thekiwiholiday.com/ The Kiwi Holiday] utilise des hCards pour les [http://www.thekiwiholiday.com/view-hostels Hôtels en Nouvelle Zélande], les  [http://www.thekiwiholiday.com/view-restaurants Restaurants en Nouvelle Zélande] et les  [http://www.thekiwiholiday.com/view-activities Activités en Nouvelle Zélande]. Fournit aussi une fonctionnalité hCard &amp;quot;download to address book&amp;quot; sur les pages de détails des listes, par ex. le Restaurant [http://www.thekiwiholiday.com/restaurant/tonys-steak Tonys Steak]&lt;br /&gt;
* [http://www.serviceworksglobal.com/pages/contact-us.php Service Works Global] utilise des hcards sur la page &amp;quot;contactus&amp;quot; et dans le pied de page du site.&lt;br /&gt;
* [http://www.qcindustries.com/ QC Industries Conveyors] utilise des hcards pour stocker l'information de contact dans le pied de page du site et dans ses [http://www.qcindustries.com/news/press-releases/ communiqués de presse].&lt;br /&gt;
* [http://www.confuciusinstitute.ac.uk/ The Confucius Institute for Scotland à l'Université d'Edinbourg] a utilisé une hCard pour stocker l'information de contact dans le pied de page de la page.&lt;br /&gt;
* [http://admnj.com/ Affiliated Direct Mail] est une société de marketing direct dans le New Jersey qui a son information de contact en format hCard.&lt;br /&gt;
* [http://www.golfdigest.com/ Golf Digest] supporte maintenant hCard dans des pages de [http://www.golfdigest.com/courses/places Recherche de Cours]. [http://www.golfdigest.com/courses/places/2483 exemple]&lt;br /&gt;
* [http://dev.opera.com/authors/ Dev Opera] Le site des développeurs d'Opera utilise des hCards sur les pages de détails des auteurs.&lt;br /&gt;
* [http://www.alexandrebalmes.fr/blog Le blog d'Alexandre BALMES incluant hCard]&lt;br /&gt;
* [http://www.logicieldessin.com/ Logiciel de dessin] Site de téléchargement de logiciel de dessin pour enfant incluant hCard&lt;br /&gt;
* [http://www.telechargerfacile.com/ logiciel gratuit] Site utilisant les hCard pour la présentation de fiche logiciel&lt;br /&gt;
* [http://annuaire.handica.com/ Annuaire du handicap Handica.com] incluant des hCards ([http://annuaire.handica.com/resultats.php?act=10681587434&amp;amp;sel_name=handica] Exemple) &lt;br /&gt;
* [http://chrischerry.name/blog/contact/ la page contact de Chris Cherry avec sa hCard]&lt;br /&gt;
* [http://www.kiteboarder.com.au/php/search.php www.kiteboarder.com.au] Un nouveau portail australien de kiteboarding. Les microformats ont été utilisés de façon que les utilisateurs puissent exporter les magasins &amp;lt;s&amp;gt;directement vers outlook&amp;lt;/s&amp;gt;. J'ai pu apprendre les microformats durant la conférence Media 2007 à Londres - Auteur : Damien King&lt;br /&gt;
* [http://krevi.dk/ KREVI] Un institut de recherche Danois. Utilisant la hCard dans le pied de page de chaque page et sur la liste du personnel. C'est le premier site web Danois connu du secteur public à utiliser les microformats.[http://krevi.dk/om-krevi/organisation/medarbejdere exemple liste du personnel]&lt;br /&gt;
* [http://www.hss.ed.ac.uk/web-team/ Le site de l'équipe web du &amp;quot;College of Humanities and Social Science&amp;quot;] à l'Université d'Edinburgh utilise une hCard dans le pied de page de chaque page.&lt;br /&gt;
* [http://www.theglobeandmail.com/ globeandmail.com] Le journal national du Canada utilise une hCard pour son information de contact.&lt;br /&gt;
* [http://www.logisteam.pl/ Krzysztof Rucinski] utilise une hCard pour ses détails de contacts sur la page [http://www.logisteam.pl/keylogger.kontakt.html contact Logisteam].&lt;br /&gt;
* Creation design &amp;amp; marketing a des hCards sur le site, y compris la page  [http://www.creation.uk.com/contact/ contact], les [http://www.creation.uk.com/company/leigh-scott/ pages profils de la société] et les  [http://www.creation.uk.com/news/2007/06/06/easy-money/#comments-view commentaires sur les articles]&lt;br /&gt;
* &amp;lt;s&amp;gt;Wikipedia a désormais un gabarit, [http://en.wikipedia.org/wiki/Template:Hcard-geo hcard-geo], pour les hCards dans la ligne avec les coordonnées, tel que celui présent sur [http://en.wikipedia.org/wiki/Engine_Arm Engine Arm] &amp;lt;/s&amp;gt;&lt;br /&gt;
* [http://www.corissia.com Corissia Group Hotels en Crète Grèce] a inclus l'information de contact sous une hCard sur le pied de page de chaque page du site web. Il existe aussi une implémentation multilingue.&lt;br /&gt;
* [http://zucchetti.co.uk/2007/03/06/simple-address-formatting-solution/ Laura Zucchetti] illustre une solution de mise en forme simple d'adresse sous une hCard et balisée dans une liste de définition.&lt;br /&gt;
* [http://www.feike.de/Kontakt.html Feike Contact] a une hcard en haut de la page.&lt;br /&gt;
* [http://www.londondrum.com/ London Drum] utilise un hébergement global de microformats - il y a des hcards et des geos sur les pages des hôtels, les événements sont écrits en format hCalendar sur la page d'accueil, et vous pouvez aussi trouver quelques critiques (comme sur la la page de [http://www.londondrum.com/accommodation/athenaeum.php l'Hôtel Athenaeum])  &lt;br /&gt;
* [http://www.regels-stadskanaal.nl/ Regelingenbank Stadskanaal] a une hCard sur chaque page, contenant aussi l'information-Geo.&lt;br /&gt;
* [http://www.tomstone.se Tom Stone - Trollkarl] a une hCard dans le pied de page de chaque page du site.&lt;br /&gt;
* La page d'accueil de [http://www.rolandinsh.lv/ Rolands Umbrovskis] a une hcard dans la  [http://www.rolandinsh.lv/?ro=contacts page contact] et toutes les autres pages avec l'information de contact.&lt;br /&gt;
* [http://www.epiphanysolutions.co.uk/ Epiphany Solutions Ltd] utilise une hcard sur sa page &amp;quot;contact us&amp;quot;. Nous avons l'intention d'utiliser la hCard sur chaque page si c'est implémeté avec succès, associé à un lien vers le générateur de vCard Technorati.&lt;br /&gt;
* [http://twitter.com Twitter] utilise hCard pour l'information utilisateur (associé à plusieurs [http://ihack.us/2007/05/14/twitter-gets-microformatted/ autres microformats]) &lt;br /&gt;
* [http://www.bendodson.com/developer/ Ben Dodson] utilise une hCard pour sa carte de visite sur chaque page de ce site tout comme il utilise les hCards pour toutes les relations XFN dans ses blogrolls.&lt;br /&gt;
*[http://www.pats.ua.ac.be/group Les Membres du Groupe PATS] uses hCard to mark up member contact information. &lt;br /&gt;
*[http://couchsurfing.com CouchSurfing] a une information limitée dans la hCard disponible sur les profils des membres (comme celui de [http://www.couchsurfing.com/people/guaka Guaka]). &lt;br /&gt;
*Wikipedia-UK (Ukranian) &lt;br /&gt;
** En cours de démarrage sur les biographies par ex. [http://uk.wikipedia.org/wiki/%D0%93%D0%B5%D1%82%D1%8C%D0%BC%D0%B0%D0%BD_%D0%92%D0%B0%D0%B4%D0%B8%D0%BC_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87 Vadym Hetman] &lt;br /&gt;
* [http://christophertcressman.com Christopher T. Cressman] utilise une hCard sur la page d'accueil de son , [http://christophertcressman.com christopher t cressman]. &lt;br /&gt;
* [http://kpumuk.info Dmytro Shteflyuk] utilise une hCard sur ses pages [http://kpumuk.info/contact/ contact] et [http://kpumuk.info/curriculum-vitae/ curriculum vitae]. &lt;br /&gt;
*Wikipedia-EN &lt;br /&gt;
**démarrage sur les articles traitant des personnes, par exemple  [http://en.wikipedia.org/wiki/Albert_einstein Albert Einstein]. La nature de Wikipedia signifie qu'il existe un grand nombre de gabarits à mettre à jour (celui d'Albert est en anglais &amp;quot;infobox scientist ; il existe aussi &amp;quot;infobox military people&amp;quot;, &amp;quot;infobox musician&amp;quot; et ainsi de suite, presque à l'infini). La date d'anniversaire n'est seulement incluse que si elle est saisie en utilisant un gabarit date de naissance, pas sous forme de texte brut.  &lt;br /&gt;
** commencé à initialiser les articles sur les lieux, par exemple le gabarit sur les gares de trains anglaises, par ex. [http://en.wikipedia.org/wiki/Birmingham_New_Street Birmingham New Street station] (comprend Geo) ; et les villes, par ex. [http://en.wikipedia.org/wiki/New_York_City New York]. Voir ci-dessus pour la remarque sur les gabarits de Wikipedia. &lt;br /&gt;
** N'importe quel éditeur de Wikipedia souhaitant aider à mettre à jour les gabarits devrait regarder le [http://en.wikipedia.org/wiki/Wikipedia:WikiProject_Microformats projet microformat de Wikipedia] ; [http://en.wikipedia.org/wiki/Category:Templates_generating_hCards les gabarits Wikipedia générant des hCards]&lt;br /&gt;
**Malheureusement, [http://en.wikipedia.org/w/index.php?title=Template:Infobox_Protected_area&amp;amp;diff=prev&amp;amp;oldid=152308153 d'autres éditeurs sont déjà en train de briser quelques-unes des implémentations sur Wikipedia] ; par ex. [http://en.wikipedia.org/wiki/Grand_Canyon_National_Park Grand Canyon National Park]; [http://en.wikipedia.org/w/index.php?title=List_of_islands_of_Argentina&amp;amp;diff=prev&amp;amp;oldid=155590535 retrait des attributs &amp;quot;region&amp;quot;]&lt;br /&gt;
* Le site de [http://www.bayofislands.net/ Bay of Islands] a implémenté hCard sur toutes ses pages, par ex : [http://www.bayofislands.net/accommodation/backpackers/saltwater-lodge/ Saltwater Lodge] &lt;br /&gt;
* [http://people.cs.uchicago.edu/~mpschaef/index.html Merrick Schaefer] utilise hCard sur sa page personnelle pour son information de contact.&lt;br /&gt;
*Wikipedia-EN - démarrage par exemple sur les gabarits des gares britanniques, par ex. [http://en.wikipedia.org/wiki/Birmingham_New_Street Birmingham New Street station] (inclut le microformat geo).&lt;br /&gt;
* Christian Hess (de San José, Costa Rica) a une hcard sur sa [http://www.hess-cr.com home page], ses pages [http://www.hess-cr.com/utilidades/correo.shtml#postal contact] et [http://www.hess-cr.com/secciones/curriculum/datos.shtml personal résumé] (toutes en espagnol). Il recommande aussi d'utiliser l'extension [https://addons.mozilla.org/es-ES/firefox/addon/4106 Operator] dans Firefox pour les vérifier.&lt;br /&gt;
* [http://www.anisfield-wolf.org/ The Anisfield-Wolf Book Awards], conçu spécifiquement pour reconnaître les travaux résolvant des problèmes de racisme et de diversité, utilise hCard pour les bios des auteurs des [http://www.anisfield-wolf.org/Winners/PastWinners/ 'past winners'].&lt;br /&gt;
* [http://www.buy-our-honeymoon.com/ Buy Our Honeymoon], un [http://www.buy-our-honeymoon.com/usa enregistreur de liste de mariage] utilise hCard dans sa page [http://www.buy-our-honeymoon.com/contact Contact Us].&lt;br /&gt;
* '''Le Webmestre du W3C ''' [http://www.w3.org/People/Jean-Gui/ Jean-Guilhem Rouel] a maintenant une hCard.&lt;br /&gt;
* [http://source.ibegin.com/ iBegin Source] - Plus de 10.8 millions d'entreprises ont leur information balisée avec hCard. Exemple : [http://source.ibegin.com/california/adelanto/aeronautical-supplies/general-atomics-9779-yucca-rd-1.html General Atomics]&lt;br /&gt;
* [http://claimid.com/jeanchristophe Jean-Christophe Capelli] sur une  [http://www.wikiservice.at/fractal/wikidev.cgi?FR/PinkoMarketing/JeanChristopheCapelli page personnelle] d'une branche-wiki dédiée à construire un groupe francophone sur le pinkomarketing. Aidé par Christophe Ducamp, microformateur de tous les instants.&lt;br /&gt;
* [http://www.lounews.com/ The Louisville News Company] utilise hCard pour l'information de contact sur tout le site pour la société et le développeur du site.&lt;br /&gt;
* [http://cloudislands.com/contact.php Cloud Islands] utilise hCard pour l'innformation de contact.&lt;br /&gt;
* [http://www.international.unt.edu UNT International] utilise hCard pour baliser l'information de contact sur tout le site (voir particulièrement [http://www.international.unt.edu/offices/ieli/people/instructors/profiles la liste des profils des instructeurs IELI])&lt;br /&gt;
* [http://www.giraffo.de giraffo.de] a différentes hCards sur chaque page (+ geo dans &amp;quot;kontakt&amp;quot;)&lt;br /&gt;
* [http://www.enap.com ENAP, Inc.] liste le contact de la DRH en format hCard sur la page  [http://www.enap.com/career.aspx Career Opportunities].&lt;br /&gt;
* Les listes des panélistes et participants à [http://sxsw07.conferenceer.com/people Conferenceer]  durant la conférence interactive 2007 South de Southwest est au format hCard.&lt;br /&gt;
* [http://news.stanford.edu Stanford News] (Redesign) hCard dans le pied de page sur chaque page tout comme le balisage pour chaque membre du staff sur la page Staff.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/St_George%27s_Minster%2C_Doncaster St George's Minster, Doncaster, sur Wikipedia] &lt;br /&gt;
* AOL Journals publie des hCards pour les auteurs. [http://journals.aol.com/carowill/whats-happening Example] &lt;br /&gt;
* La [http://ian.mckellar.org/ home page] de Ian McKellar est une hCard stylisée pour ressembler à une carte de visite professionnelle.&lt;br /&gt;
* [[Christophe Ducamp]] sur une  [http://www.wikiservice.at/fractal/wikidev.cgi?FR/MicroFormats/ChristopheDucamp page personnelle] d'une branche-wiki dédié à construire un groupe francophone sur les microformats. Aidé par [http://www.wikiservice.at/fractal/wikidev.cgi?LaurentLunati Laurent Lunati] pour le design, tout le monde peut la corriger en [http://www.wikiservice.at/fractal/wikidev.cgi?action=edit&amp;amp;id=FR/MicroFormats/ChristopheDucamp éditant la page].&lt;br /&gt;
* [http://www.matthewwest.co.uk Matthew West] a une hCard sur sa page [http://www.matthewwest.co.uk/email contact].&lt;br /&gt;
* Le portofolio du FreeLance en développement web [http://www.webmaster.waw.pl Paweł Wrzosek] &lt;br /&gt;
*[http://thibeaultstudios.com Thibeault Studios] a une hCard d'entreprise dans le pied de page sur chaque page tout comme des hCards individuelles sur la page [http://thibeaultstudios.com/contact_us.php Contact].&lt;br /&gt;
*Le balisage hCard [http://www.stanford.edu/ Stanford.edu] est inclus dans le pied de page de la page d'accueil et toutes les pages subséquentes dans le répertoire /home.&lt;br /&gt;
*[http://openid.ne.jp OpenID.ne.jp] Premier fournisseur de service OpenID au Japon (日本語). Chaque page personnelle OpenID (par ex :[http://eouia.openid.ne.jp http://eouia.openid.ne.jp]) est balisée sous hCard. Et il y a aussi une hCard de société sur chaque page.&lt;br /&gt;
* L'adresse de [http://www.qwertycars.co.uk/garages/mechanics-near-tadworth.aspx UK Car Garages] au Royaume Uni au format hCard.&lt;br /&gt;
* La page About Us de [http://www.columbiaautomation.com/sub/contact.php Columbia Automation] a balisé chaque employé sous une hCard et dispose aussi d'une hCard de société avec l'information geo.&lt;br /&gt;
* [http://www.pointermix.com Pointermix Design] utilise le format hCard.&lt;br /&gt;
* La page contact de [http://eight6.com/contact/ eight6] utilise le format hCard&lt;br /&gt;
* Les listes d'annonces de [http://www.raveaboutit.com.au Rave About It] utilisent le format hCard.&lt;br /&gt;
* La page de l'équipe d'[http://optics.org/cws/Contact/OurTeam.do optics.org].&lt;br /&gt;
* La première tentative de [http://www.robcottingham.ca/contact Rob Cottingham] dans les microformats est une hCard sur la page contact de son blog personnel (Il a été inspiré par la présentation de Tantek Çelik lors de Web Directions North 2007.)&lt;br /&gt;
* [http://redmonk.net/about-this-site Steve Ivy] - hcard sur la page &amp;quot;about&amp;quot;, inclut les suspects usuels + XFN sur les 'url's, photo, et geo.&lt;br /&gt;
* L'[http://seattleu.edu Université de Seattle] utilise hCard sur sa page d'accueil et la plupart des pages qui partagent un gabarit officiel.&lt;br /&gt;
* [http://www.josemarti.waw.pl L'école secondaire José Marti XXII à Varsovie] inclut hCard sur les sections Contact et A propos de l'auteur &lt;br /&gt;
* [http://www.jaama.co.uk Jaama] a mis ses détails de société  sous une vcard téléchargeable sur  page [http://www.jaama.co.uk/Contact.aspx contact]&lt;br /&gt;
* [http://3amproductions.net 3AM Productions] a les détails de société balisés sous hCard sur tout le site et particulièrement pour [http://3amproductions.net/jason.php Jason] et  [http://3amproductions.net/gilbert.php Gilbert] &lt;br /&gt;
* [http://berlin.barwick.de/index.html Berlin Guide] est en train de convertir son balisage d'adresses en hCard, par ex. [http://berlin.barwick.de/shopping/kadewe-kaufhaus-des-westens.html KaDeWe] &lt;br /&gt;
* [http://www.xlntads.com XLNTads] a son information de contact balisée en hCard, tout comme son plan de développement balisé en hCalendar&lt;br /&gt;
* [http://derrick.pallas.us Derrick Pallas] dit aux personnes de le chercher là.&lt;br /&gt;
* [http://bluemonkcreative.com/contact/ Bill Turner] ajoute une hCard à la page contact de son site web de freelance.&lt;br /&gt;
* [http://www.oppenheim.com.au/ Le blog de James Oppenheim] inclut une hCard de l'auteur dans la ligne dans le pied de page de chaque page et aussi sur la page de contact.&lt;br /&gt;
* [http://steinhardt.nyu.edu/ NYU Steinhardt] a [http://steinhardt.nyu.edu/faculty_bios/list/Faculty plus de 240 bios de faculté balisées], par ex. [http://steinhardt.nyu.edu/faculty_bios/view/Susan_Murray].&lt;br /&gt;
* [http://www.boogdesign.com/aboutus.html boogdesign.com] a ajouté une syntaxe hCard sur la page de contact.&lt;br /&gt;
* [http://www.gptg.org GreatPlaceToGolf], hCards pour les clubs de golf autour du monde, par exemple [http://www.gptg.org/club/12/]. Utilisation de hCard pour les joueurs et les terrains de golf, geo pour les coordonnées des terrains, et hAtom. Réalisé par FredericLepied&lt;br /&gt;
* [http://www.economie-poitiers.fr/ Le Service Développement Economique de la Communauté d'agglomération de Poitiers] a utilisé une hCard pour son information de contact en bas de page.&lt;br /&gt;
* [http://www.lesgenets.com/ Le camping des Genêts à l'ile de Ré] a utilisé une hCard pour inclure ses informations de contact.&lt;br /&gt;
* [http://www.entrepots-lafond.fr/ Le site des entrepots Lafond] a publié ses informations de contact à l'aide d'une hCard.&lt;br /&gt;
* [http://www.walkerfineart.com Walker Fine Art Gallery] La plupart des pages contiennent une hCard en pied de page.&lt;br /&gt;
* [http://www.brdatasystems.com.au/contact-us.html B&amp;amp;R Data Systems] est une hCard d'organisation. Nous avons aussi utilisé l'outil technorati pour la télécharger sous une vCard, ce qui je pense est utile pour une entreprise.&lt;br /&gt;
* [http://chewbittel.com/contact.php Chew Bittel Assoc., Inc.] est une hCard d'organisation. Il y a des abbr's dedans et un champ téléphone dupliqué et quelques choses cachées. J'essaie vraiment de pousser les choses à leur limite ici. Ce devrait être un bon test pour votre parseur.&lt;br /&gt;
* la [http://redmonk.net/about-this-site/ page about] de [[User:Steve Ivy|Steve Ivy]] a sa hCard, comprenant un lien vers son fil de contact Technorati pour laisser les visiteurs télécharger son information de contact.&lt;br /&gt;
* La hCard de Scott Allan Wallick est [[User:ScottWallick|sa page utilisateur]] et sur son blog, [http://www.plaintxt.org/about/2/ plaintxt.org]&lt;br /&gt;
* La hCard de [[User:Bob_Jonkman|Bob Jonkman]] '''sur ce 'wiki'''' &lt;br /&gt;
* [http://thetenwordreview.com The Ten Word Review] contient simplement des critiques de dix mots. Toutes les critiques sont balisées sous des [[hreview-fr|hReviews]] et l'information utilisateur est balisée sous hCard.&lt;br /&gt;
* Le [http://www.westmidlandbirdclub.com/ West Midland Bird Club] (Club d'oiseau d'intérieur occidental d'Angleterre) utilise hCard sur sa [http://www.westmidlandbirdclub.com/ home page], son [http://www.westmidlandbirdclub.com/diary/ annuaire d'événements], sa page [http://www.westmidlandbirdclub.com/club/contact.htm contact], sa page de [http://www.westmidlandbirdclub.com/site/links.htm liens], la  [http://www.westmidlandbirdclub.com/club/older.htm liste des anciens] et dans un pied de page qui est graduellement implémenté sur tout le site.&lt;br /&gt;
* OffshoreAgile.com, un sous-site de Starsoft Development Labs, utilise hCard dans les sections [http://www.offshoreagile.com/company/contact/ Contacts Starsoft] et 'Media Inquiries'.&lt;br /&gt;
* T-Mobile utilise hCard pour la [http://t-mobilepressoffice.co.uk/press/contact-details/ page T-Mobile UK Press Contact Details], tout comme pour quelques-uns de ses derniers communiqués de presse.&lt;br /&gt;
* La division de publication 'Psychology Press' et 'Routledge's Behavioral' a implémenté des pages contact sur 17 de ses sites web (exemple sur la page contact de [http://www.clinicalpsychologyarena.com/contact/ Clinical Psychology Arena])&lt;br /&gt;
*[http://72ppi.us 72ppi], utilise hCard dans le pied de page.&lt;br /&gt;
*[http://www.csarven.ca Sarven Capadisli] utilise hCard dans tout le site (y compris les commentaires utilisateurs dans les articles).&lt;br /&gt;
* [https://www.urbanbody.com/information/contact-us Urban Body Men's Clothing] utilise hCard pour les adresses des magasins et hCalendar pour les horaires d'ouverture.&lt;br /&gt;
* [http://www.iqair.us/ IQAir North America], utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://www.infoiasi.ro/ Le site web de la Faculté des Computer Science], &amp;quot;A. I. Cuza&amp;quot; University Ia&amp;amp;#351;i, Romania utilise hCard pour chaque membre du staff.&lt;br /&gt;
* [http://www.finds.org.uk/ The Portable Antiquities Scheme au British Museum] a des hCards ajoutées dans le pied de page de chaque page et vers les section des contacts. En train de travailler pour en ajouter plus.&lt;br /&gt;
* Dans [http://www.ideasfornet.com/ IdeasForNet.com - the ideas repository] des hCards ont été implémentées partiellement dans le pied de page de chaque page, et de façon plus compréhensive dans les pages contact et à propos.&lt;br /&gt;
* Le [http://www.cst.ed.ac.uk/ Centre of Canadian Studies] à l'Université d'Edinburgh utilise les hCards pour l'information de contact dans le pied de page du site.&lt;br /&gt;
* [http://www.theatrestudies.llc.ed.ac.uk/ Theatre Studies: European Theatre] à l'Univiersité d'Edinburg utilise les hCards pour l'information de contact sur sa page d'accueil.&lt;br /&gt;
* [http://www.carolinemockett.com/design/about.aspx Caroline Mockett] a une hCard sur sa page About Me&lt;br /&gt;
* [http://wait-till-i.com Christian Heilmann] a une adresse en pied de page utilisant hCard &lt;br /&gt;
*[http://www.audience-response-rentals.com/ Audience Response System Rentals] utilise hCard comme un popup dans l'aire d'accessibilité du site (en bas à droite) pour un copier/coller facile de l'adresse par ses clients.&lt;br /&gt;
* [http://www.fischsolutions.com/ Fisch Internet Solutions] utilise une hCard embarquée et une vCard pour fournir aux clients un moyen facile de les contacter sur leur section [http://fischsolutions.com/contactus.html Contact Us] du site web. &lt;br /&gt;
* [http://www.micatholicconference.org/ Michigan Catholic Conference] utilise hCard pour l'information de contact dans la barre latérale.&lt;br /&gt;
* [http://www.adambunn.co.uk/ Adam Bunn] fournit les détails de contact dans la barre latérale en utilisant hCard.&lt;br /&gt;
* [http://www.belkin.com/pressroom/releases/uploads/10_10_06NotebookExpansionDock.html Les communiqués de presse de Belkin] utilisent les hCards pour les contacts de Relations Publiques et les bureaux. &lt;br /&gt;
* [http://mybank.com myBank.com] utilise hCard pour ses listings de chaque branche de chaque banque assurée FDIC aux Etats-Unis.&lt;br /&gt;
* [http://leftlogic.com Left Logic] utilise hCard pour l'information de contact embarquée. &lt;br /&gt;
* [http://inga-art.co.uk/artist Inga Scholes] utilise hCard pour l'information de contact dans la barre latérale.&lt;br /&gt;
* [http://www.lussumo.com/ Lussumo] utilise hCard sur les pages de profil dans son forum de discussions logiciel [http://www.getvanilla.com/ Vanilla]. &lt;br /&gt;
* [http://www.creative-ways.nl/ Ron Kok] utilise des hCards pour baliser les noms et URLs des commentateurs sur son blog. Il utilise aussi les hCards en combinaison avec XFN dans ses billets de blog pour pointer vers des amis et a une hcard pour lui-même dans le pied de page de son blog.&lt;br /&gt;
* La page des [http://www.parisweb2006.org/orateurs.php orateurs de paris web 2006] (Paris-France) contient une hCard pour tous les intervenants.&lt;br /&gt;
* [http://tagg.no Tagg Media] utilise hCard pour l'[http://heine.tagg.no/contact.php  information de contact] et fournit un lien vers un téléchargement de vcard dans la section contact.&lt;br /&gt;
* L'article à propos du personnage de Matrixx [http://en.wikipedia.org/wiki/Neo_%28The_Matrix%29 Thomas A Anderson dans Wikipedia] est maintenant balisé avec hCard.&lt;br /&gt;
* [http://dconstruct06.madgex.com/ d.Construct 2006 Backnetwork] utilise des hCards pour les congressistes à la conférence (et fournit le balisage de façon à ce que les congressistes puisses copier et coller leurs cartes dans leurs propres sites).&lt;br /&gt;
* [http://www.brown.edu Brown University] utilise maintenant hCard sur la page d'accueil.&lt;br /&gt;
* [http://www.wideblueyonderweb.co.uk Dunks chez Wide Blue Yonder Web Design] a ajouté un balisage hCard sur sa [http://www.wideblueyonderweb.co.uk/wbyw/pages/contact.htm page contact] et cherche à l'implémenter sur toutes les pages des contacts passés et futurs pour les clients.&lt;br /&gt;
* [http://southamptonrubberstamp.com Southampton Rubber Stamp Company] a déspormais un balisage hCard avec un téléchargement de vCard sur chaque page.&lt;br /&gt;
* [http://barefoot-ceramics.com Barefoot Ceramics paint your own pottery studio] (à Newport, South Wales) a ajouté un balisage hCard à sa page [http://barefoot-ceramics.com/find#address &amp;quot;Find&amp;quot;] page et d'autres exemples d'adresses. Ils espèrent mettre en oeuvre un listing d'événement hCalendar dès qu'une classe PHP ics vers hCalendar puisse être trouvée ou écrite.&lt;br /&gt;
* [http://dsingleton.co.uk/ David Singleton] a ajouté une hCard à son blog.&lt;br /&gt;
* [http://www.thestreet.org.au The Street Theatre (Canberra, Australia)] a ajouté un balisage hCard pour baliser vers sa page [http://www.thestreet.org.au/contact.htm Contact Us]. Un balisage hCalendar sera bientôt ajouté pour toutes les pièces.&lt;br /&gt;
* [http://www.informatik.uni-hamburg.de/SVS/personnel/henrich/index.php Henrich C. P&amp;amp;ouml;hls] a balisé sa page &amp;quot;about&amp;quot; en utilisant hcard, y compris sa clé PGP qui est stockée dans une &amp;quot;abbr title&amp;quot;, en utilisant class=key.&lt;br /&gt;
* [http://www.yalf.de Yalf Webentwicklung] a sa page [http://www.yalf.de/kontakt d'information de contact] disponnible sous hCard (et vCard).&lt;br /&gt;
* [http://www.zeldman.com/about/ Jeffrey Zeldman]. Jeffrey Zeldman a balisé sa page 'about' en utilisant hCard.&lt;br /&gt;
* [http://WhereAreYouCamping.com Where Are You Camping]. Des hCards pour tous les membres et  camps, employant tout aussi bien 'include pattern'. A la limite de ce que je connais, c'est le premier Burning Man en rapport avec l'implémentation des microformats, pour ne pas citer des adresses dans Black Rock City.&lt;br /&gt;
* [http://www.clacksweb.org.uk Clackmannanshire Council ]. hCard est implémenté pour tous les détails de contact sur le site et pour des individus spécifiques comme les membres élus (les 'Councillors').&lt;br /&gt;
* [http://www.webdirections.org Web Directions ]. La hCard est utilisée comme information de contact pour la conférence, et les conférenciers sont balisés avec hCard.&lt;br /&gt;
* [http://www.markthisdate.com/contactform.html MarkThisDate.com ]. Une hCard est implémentée sur notre formulaire de contact. Pour nos calendriers les hCalendars suivront dès que possible.&lt;br /&gt;
* [http://kollitsch.de/ Patrick Kollitsch] a construit son Profil personnel sous hCard.&lt;br /&gt;
* [http://www.msiinet.com/contact/ MSI Systems Integrators] a sa page &amp;amp;quot;Contact MSI&amp;amp;quot; encodé avec des hCards.&lt;br /&gt;
* [http://www.coolblue.nl/ Le site web corporate de Coolblue BV]. Les hCards ont été implémentées à la fois dans le pied de page de chaque page, et dans la section &amp;quot;News&amp;quot; pour l'information contact presse.&lt;br /&gt;
* [http://www.besancon.fr/index.php?p=32 Le site officiel de la ville de Besançon (France)] utilise hCard pour chaque page concernant les petites villes entourant Besançon.&lt;br /&gt;
* [http://2006.dconstruct.org/speakers/ la liste des conférenciers d.Construct 2006] a été implémentée en utilisant des hCards.&lt;br /&gt;
* [http://local.yahoo.com Yahoo Local] supporte maintenant les hCards pour les commerces et endroits dans les résultats de recherche&lt;br /&gt;
* [http://learningtheworld.eu/imprint/ Learning the World] a une information hCard sur l'impression, parce ce que nous n'avons pas réussi à baliser proprement les numéros de téléphone et de fax professionnels.&lt;br /&gt;
* Le site web [http://www.fuckparade.org F’parade] utilise hcard, même s'il n'a pas trouvé un type pour distinguer les numéros de téléphone mobile et fixes ''(recommandation utiliser  &amp;lt;code&amp;gt;cell&amp;lt;/code&amp;gt; pour les mobiles)''.&lt;br /&gt;
* [http://www.miranet.nl/contact.htm Miranet Webdesign] a ajouté une hCard sur sa [http://www.miranet.nl/contact.htm page 'contact']&lt;br /&gt;
* [http://weblog.200ok.com.au/ Ben Buchanan] a ajouté une vCard à la page [http://weblog.200ok.com.au/about/ 'About'sur le welbog 200ok]&lt;br /&gt;
* [http://www.radiantcore.com Radiant Core] a son information de contact [http://www.radiantcore.com/contact/ disponible dans la hCard].&lt;br /&gt;
* [http://www.mikerumble.co.uk/ Mike Rumble] [http://www.mikerumble.co.uk/contact.html a mis en ligne sa hCard].&lt;br /&gt;
* [http://www.saumag.edu/ Southern Arkansas University] a son pied de page encodé comme une hCard.&lt;br /&gt;
* [http://main.uab.edu/ University of Alabama at Birmingham] a son pied de page contact encodé sous hCard.&lt;br /&gt;
* [http://www.capital.edu Capital University] a le contact en pied de page et les noms des blogueurs encodés sous hCard. Aussi, toutes les informations de pages spécifiques de contact sont encodées sous hCards (voir la page [http://www.capital.edu/Internet/Default.aspx?pid=67 Admissions] pour un exemple)&lt;br /&gt;
* [http://main.uab.edu/shrp/ UAB School of Health Professions] utilise hCard dans son pied de page contact&lt;br /&gt;
* [http://green.carisenda.com/ Stephen Stewart] a sa hCard sur la page d'accueil de son weblog (section 'You are here')&lt;br /&gt;
* [http://www.direction.es/ Direction] utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://audiobank.tryphon.org AudioBank] utilise hCard pour afficher les informations des membres.&lt;br /&gt;
* [http://www.vivabit.com/atmedia2006/speakers/ @media speakers] sont balisés avec hCard (les photos  dépendent du support du tag BASE ce qui fait de cela un très bon cas de test)&lt;br /&gt;
* [http://www.dougransom.com Doug Ransom] utilise hCard pour sa pratique de conseil financier. &lt;br /&gt;
* [http://rubyandrails.org/usergroups/newcastle/members.html ncl.rb] utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://www.snowinteractive.com/ Snow Interactive] utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://flickr.com Flickr] supporte maintenant [[hcard-fr|hCard]] et [http://gmpg.org/xfn XFN] sur les pages de profil. Voir [http://flickr.com/photos/factoryjoe/113866484/ photo d'écran de l'interface utilisateur dans le navigateur Flock utilisant l'extension Flocktails - 17 mars 2006].&lt;br /&gt;
* [http://www.ndiyo.org/contact information contact pour le projet Ndiyo]&lt;br /&gt;
* [http://www.pixelenvy.co.uk/ Pixel Envy] utilise hCard pour l'information de contact sur chaque page.&lt;br /&gt;
* [http://stilbuero.de/contact/ Klaus Hartl] utilise hCard dans la barre latérale pour l'information de contact (peut être plus facile à parser à travers la distribution xhtml que xml).&lt;br /&gt;
* [http://charlvn.virafrikaans.com/contact hCard de Charl van Niekerk]&lt;br /&gt;
* [http://billy-girlardo.com/WP/ BillyBLOGirlardo] utilise hCard pour l'information de contact.&lt;br /&gt;
* [http://www.hicksdesign.co.uk/ Hicksdesign] utilise hCard pour l'information de contact.&lt;br /&gt;
* http://www.gr0w.com/articles/press/growsearch_launched_press_release/ - hCard dans un communiqué de presse pour l'information contact de presse.&lt;br /&gt;
* http://www.redmonk.com/cote/archives/2006/03/testing_out_mic.html - hCard avec explication&lt;br /&gt;
* [http://andy.ciordia.info/ it's my island], blog personnel, hcard sur la page ''[http://andy.ciordia.info/pages/about_me About the Writer]''. [[User:Ciordia9|Andy Ciordia]]&lt;br /&gt;
* [http://www.windowonwoking.org.uk/ Window on Woking], un site de communauté locale au Royaume-Uni, utilise hCard dans la page d'accueil de chaque membre de l'organisation et conseiller local.&lt;br /&gt;
* [http://ChunkySoup.net/ ChunkySoup.net] a reconçu le site complet en utilisant hAtom 0.1 et les hCards -- par [[User:ChrisCasciano|Chris Casciano]]&lt;br /&gt;
* [http://www.30boxes.com/ 30 Boxes], une application de calendrier social et agrégateur de style de vie digital, crée automatiquement une hcard pour vous avec votre compte.  Il est trouvé sous Settings &amp;gt; Syndication.&lt;br /&gt;
* [http://www.nearwhere.com/ Nearwhere.com] vous permet de mettre une hcard sur une carte interactive.&lt;br /&gt;
* [http://www.brentozar.com/ Brent Ozar] a ajouté une page [http://www.brentozar.com/contact.php contact] hCard.&lt;br /&gt;
* [http://www.kerihenare.com/ Keri Henare] a récrit sa page [http://www.kerihenare.com/contact/ contact] hCard. Utilisant maintenant &amp;lt;code&amp;gt;&amp;lt;object&amp;gt;&amp;lt;/code&amp;gt; au lieu de &amp;lt;code&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/code&amp;gt; pour la photo. (Merci à Brian Suda pour avoir mis à jour le convertisseur vCard)&lt;br /&gt;
* [http://michaelraichelson.com/contact/ Michael Raichelson] avait un hCard sur sa page contact avant SXSW, mais n'avait jamais pensé à l'ajouter ici jusqu'à ce que Tantek lui ait demandé. &lt;br /&gt;
* [http://www.commoner.com/~lsimon/lindsey_simon_hcard.html Lindsey Simon] a ajouté une hCard à son site suite à la demande SXSW de Tantek pour que les types l'essayent.&lt;br /&gt;
* [http://www.davidgagne.net/ David Gagne] a une hCard dans sa barre latérale.&lt;br /&gt;
* [http://www.churchzip.com/map/ Churchzip.com/map] et [http://www.skiwhere.com/map/ Skiwhere.com/map], mettent des églises, hôtels et stations de ski sur les mêmes cartes.  Les endroits sont mis en page sous forme de hcards.&lt;br /&gt;
* Toutes les [http://www.iqdir.com/ IQ Directory Solutions] des portails web des Yellow Pages utilisent la syntaxe [[hcard-fr|hCard]] sur les listes. Par exemple, [http://www.yellowpages-cambodia.com/ Cambodia Yellow Pages] et [http://www.superpages.com.my/ Malaysia Super Pages]&lt;br /&gt;
* L'application cloneable Group de ning utilise la correspondance floue pour mapper les champs personnalisés en syntaxe [[hcard-fr|hCard]] sur ses [http://group.ning.com/index.php?controller=person&amp;amp;action=view&amp;amp;content=JonathanAquino pages profile].&lt;br /&gt;
* [http://claimid.com/factoryjoe La hCard ClaimID de Chris Messina]&lt;br /&gt;
* [http://factoryjoe.com/blog/hcard La hCard de Chris Messina]&lt;br /&gt;
* [http://flock.com/about Flock About]&lt;br /&gt;
* [http://tantek.com/microformats/2006/03-01-TechPlenAgenda.html Agenda: W3C Technical Plenary Day, March 1 2006] a une syntaxe [[hcard-fr|hCard]] et [[hcalendar-fr|hCalendar]]. ([http://www.w3.org/2006/03/01-TechPlenAgenda.html original ici]).&lt;br /&gt;
* [http://www.gr0w.com/articles/press/growsearch_launched_press_release/ GrowSearch Launched (Press Release)] utilise un hCard pour fournir le Contact du Point Presse.&lt;br /&gt;
* La [http://www.arborday.org/ National Arbor Day Foundation] a commencé à utiliser les hCards pour ses [http://arborday.org/programs/conferences/hazardtrees-treeplanting/ conférences] &lt;br /&gt;
[http://arborday.org/programs/conferences/communityforestry/index.cfm à venir] &lt;br /&gt;
* [http://www.multipack.co.uk The Multipack] a de nombreuses hCards, tout spécialement sur [http://www.multipack.co.uk/members/ les pages membres], tout comme pour les informations des prochaines réunions.&lt;br /&gt;
* [http://deadringrancor.livejournal.com/ Justin McDowell] a utilisé une hCard pour faire référence [http://deadringrancor.livejournal.com/221332.html à une personne dans son billet de blog]&lt;br /&gt;
* [http://davecardwell.co.uk/cv/ Dave Cardwell] a inclus sa hCard dans son Curriculum Vitae.&lt;br /&gt;
* [http://blog.usweb.com/ Shaun Shull] a écrit un billet magnifique sur [http://blog.usweb.com/archives/how-microformats-affect-search-engine-optimization-seo How Microformats Affect SEO], et a inclus sa [[hcard-fr|hCard]] comme l'un des exemples. &lt;br /&gt;
* [http://www.thefutureoftheweb.com/ Jesse Skinner] a écrit un [http://www.thefutureoftheweb.com/blog/2006/1/hcard tutoriel simple avec des exemples]&lt;br /&gt;
* [http://www.w3.org/2005/12/allgroupoverview.html 2006 W3C Technical Plenary Week] a marqué tous les participants, contacts et membres du comité de programme avec hCard.&lt;br /&gt;
* [http://www.avf-nexus.co.uk AVF-Nexus] a une hCard sur sa [http://www.avf-nexus.co.uk/contact/ page contact] - (par [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://www.thefantasticos.com/andrew/ Andrew White] a posté [http://www.thefantasticos.com/andrew/index.php/my-hcard/ sa hCard] et [http://www.thefantasticos.com/andrew/index.php/62/microformats-the-should-have-been-obvious-web-dev-tool/ a blogué à propos].&lt;br /&gt;
* [http://www.2sheds.ru Oleg &amp;quot;2sheds&amp;quot; Kourapov] dans son [http://www.2sheds.ru/blog/ blog] ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog X2V]) a transformé son profil personnel en hCard ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/hcard.html X2V]) et sa blogroll - par une combinaison de XFN/hCards ([http://suda.co.uk/projects/X2V/get-vcard.php?uri=http://www.2sheds.ru/blog/friends.html X2V])&lt;br /&gt;
* [http://www.approveddesign.co.uk Approved Design Consultancy] a une hCard sur sa [http://www.approveddesign.co.uk/about/contact/ page contact] tout comme sur sa [http://www.approveddesign.co.uk/about/people/ section &amp;quot;people&amp;quot;] - (par [http://creation.uk.com Creation&amp;quot;])&lt;br /&gt;
* [http://weblog.200ok.com.au/ Ben Buchanan] et [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search Colin Morris] ont [http://weblog.200ok.com.au/2006/01/griffith-phonebook-adds-hcard-and.html implémenté les hCards et vCards] pour [http://www.griffith.edu.au/find/content_phonebook.html l'annuaire téléphonique en ligne] de l'[http://www.griffith.edu.au Université Griffith]. par ex. [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=ben+buchanan&amp;amp;format=search la vCard de Ben] et [http://www.griffith.edu.au/cgi-bin/phone_search.pl?string=colin+morris&amp;amp;format=search la vCard de Colin]&lt;br /&gt;
* WWF-Australia [http://wwf.org.au/about/contactdetails/ page &amp;quot;contact details&amp;quot;]&lt;br /&gt;
* [http://rasterweb.net/raster/ Pete Prodoehl] a utilisé le format hCard sur sa page [http://rasterweb.net/raster/contact.html Contact]&lt;br /&gt;
* [http://alexander-mette.de amette] utilise le format hCard dans un module de son blog motorisé par TikiWiki&lt;br /&gt;
* [http://staff.washington.edu/oren/weblog2/ Oren Sreebny] a une hCard sur son gabarit principal &lt;br /&gt;
* [http://www.cs.brandeis.edu/~zippy/ Patrick Tufts] a une hCard sur sa page personnelle.&lt;br /&gt;
* [http://ascii20.blogspot.com/ Mathias Kolehmainen et Jamie Taylor] ont des hCards sur leur weblog.&lt;br /&gt;
* [http://www.hoppsan.org/jamesb/blogger/ Barnaby James] a une hCard sur son weblog.&lt;br /&gt;
* [http://esa-education.com/schools/map ESA Education] utilise les hCards pour ses 100+ écoles et chacun des sites individuels des écoles.&lt;br /&gt;
* [http://www.thereisnocat.com/#vcard Ralph Brandi] a ajouté une hCard à la barre latérale de son weblog suite à la présentation des Microformats de Tantek Çelik lors de SXSW 2006.&lt;br /&gt;
* [http://www.yellowpencil.com/contact/ Yellow Pencil] utilise les microformats pour présenter l'information de contact de la société.&lt;br /&gt;
* [http://www.pierce.ctc.edu/ephone/ Pierce College] -- le répertoire de la communauté du collège utilise hCard sur toutes les entrées individuelles des carnets d'adresses.&lt;br /&gt;
* [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/ the Institutional Web Management Workshop 2006] a balisé tous ses [http://www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2006/committee/ présentateurs avec hCard].&lt;br /&gt;
* http://wikitravel.org/en/Singapore/Sentosa. Wikitravel est en train d'expérimenter hcard sur ses guides de voyage. Ce guide utilise hcard pour tous ses listings d'affaires. Plus d'informations sur http://wikitravel.org/en/Wikitravel_talk:Listings.&lt;br /&gt;
* [http://www.musik-erber.de/ Musik-Erber] utilise hcard pour présenter l'information de contact dans sa barre latérale.&lt;br /&gt;
* [http://cdevroe.com/about/#contact Colin D. Devroe] utilise hCard pour afficher son information de contact sur sa page &amp;quot;about&amp;quot;.&lt;br /&gt;
* L'ECS (Scool of Electronics and Computer Science à l'Université de Southampton), les [http://www.ecs.soton.ac.uk/people People Pages] utilisent vCard. Contactez cjg@ecs.soton.ac.uk s'il y a quelque bug.&lt;br /&gt;
* [http://www.southwestern.edu/~ramseyp Pat Ramsey] a son information de contact sur son blog balisée avec hCard. Contacter [mailto:ramsey.pat@gmail.com ramsey.pat@gmail.com] s'il y a quelque bug.&lt;br /&gt;
* [http://www.vyre.com/company/contact-us/ VYRE] est une société de développement de CMS avec une hCard &amp;quot;contact us&amp;quot;&lt;br /&gt;
* [http://www.lefdal.cc/info.php Alf Kåre Lefdal] utilise hCard dans le balisage de son information de contact.&lt;br /&gt;
* [http://www.pignwhistle.com.au/ Pig N Whistle, une chaîne de pubs dans Brisbane, Australie] utilise hCard pour baliser toutes les pages contacts pour ses établissements et son siège social.&lt;br /&gt;
* [http://kollitsch.de/ Patrick Kollitsch] a construit son Profil personnel sous hCard.&lt;br /&gt;
* [http://www.hbs.edu/faculty/dspar/ Harvard Business School] a des hCards sur ses pages 'faculty'&lt;br /&gt;
* [http://openmikes.org/ openmikes.org] utilise des hCards pour les adresses des lieux dans les pages listes détaillées.&lt;br /&gt;
* [http://www.intertecnollc.com/ InterTecno, LCC] publie une hCard sur la page d'accueil et la page contact.&lt;br /&gt;
* [http://canaltcm.com/ver/sobre-tcm Le site web de Turner Classic Movies TCM espagnol] a publié les détails de contacts sous une hCard&lt;br /&gt;
* [http://rejuvenation.com/ Rejuvenation] utilise maintenant hCard pour son information de contact.&lt;br /&gt;
* [http://www.mattash.com/contact/ Matthew Ash] utilise hCard dans sa section contacts.&lt;br /&gt;
* [http://yarmouthguide.com/business.php Yarmouth Guide] utilise hCard pour chaque page de détails sur le business.&lt;br /&gt;
* [http://www.merchantcircle.com MerchantCircle] a embarqué une hCard dans chacun de ses listings professionnels de plus de 15 millions d'adresses.&lt;br /&gt;
* [http://blog.roub.net/ Paul Roub]  a une hcard pour lui-même sur la page d'accueil de son blog.&lt;br /&gt;
* [http://citizenspace.us/citizens Citizen Space Citizens] est une liste des locataires pour un espace de coworking à San Francisco. La problématique a été soulevée que les ''nicknames'' sont généralement situés au milieu du ''fn'', qui n'est pas valide comme selon la règle [[hcard-brainstorming-fr#FN_implicite_.C3.A0_partir_de_N|FN implicite à partir de N]. Il semble qu'il sevrait être possible néanmoins d'inclure un &amp;quot;nickname&amp;quot; au milieu d'un FN ou même entre un ''given-name'' et un ''family-name''.&lt;br /&gt;
* [http://www.fixya.com/repair/cars/us/ca/san_francisco FixYa] (the troubleshooting site) has an hCard (vCard) in the repair directory displaying information about all kinds service providers.&lt;br /&gt;
* [http://www.alive77.cn/ z.Yleo77] it's my blog, from now on, supports hCard, eg: article pages..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
&lt;br /&gt;
SVP ajoutez les nouveaux exemples *en haut de cette section*&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== exemples par catégories ==&lt;br /&gt;
'''Vous voulez une hCard ?''' Commencez par écrire une [[hcard-fr|hCard]] en utilisant le [http://microformats.org/code/hcard/creator hCard creator] pour écrire quelque information de contact, [[validators-fr#hCard|validez]] et publiez-la, ou suivez [[hcard-authoring-fr|les trucs de rédaction hCard]] pour ajouter un marquage hCard à votre site. Regardez cette section pour des exemples similaires de types de pages qui tirent profit du marquage hCard.&lt;br /&gt;
&lt;br /&gt;
Cette section organise les exemples en plusieurs catégories comme suit. Si un exemple rentre dans plus d'une catégorie, utilisez la *dernière* catégorie dans cette liste qui correspond aux exemples spécifiques de hCard dans la jungle que vous essayez de catégoriser.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Individuels|Individuels]]''' - une carte par personne, peut-être trier alphabétiquement par &amp;quot;nom de famille&amp;quot;. Les personnes avec leurs propres hCards (typiquement) sur leurs propres sites.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Organisations|Organisations]]''' - une carte par organisation, alphabétiquement par &amp;quot;fn&amp;quot;. Les organisations avec leurs propres hCard(s) sur leur propre site.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Institutions|Institutions]]''' - qui listent plus d'une personne, avec un compteur estimant le # de hCards, par ex. plus de 40k pour Avon. Indiquez aussi la complexité de l'information fournie, par ex. juste le nom et le numéro de tél vs détails complets. Trié alphabétiquement par &amp;quot;org&amp;quot; avec peut-être quelques individus listés dans une sous-bulle unique, délimitée par une virgule, triée par &amp;quot;family-name&amp;quot;.&lt;br /&gt;
# '''[[hcard-supporting-user-profiles-fr|Profils en ligne]] triés alphabétiquement par société / nom de service.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Lieux_en_linge|Lieux en ligne]]''' - listings pour entreprises ou organisations, avec un comptage  estimant le nombre de lieux, par ex. ~10k pour Upcoming.org. Triés alphabétiquement par nom de service/site, avec peut-être quelques lieux spécifiques listés dans une sous-bulle unique, délimités par des virgules, triés par &amp;quot;fn&amp;quot;.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Listes_de_Conférenciers|Listes de conférenciers]]''' - les pages des sites événements où les conférenciers sont marqués avec hCard. Triés par date, sous-groupés par années. Les plus récents en premier. Peut-être quelques individus listés dans une sous-bulle unique de chaque événement.. Triés par date, sous-groupés par année. Les plus récents en premier. Peut-être quelques individus listés dans une sous-bulle unique de chaque événement, délimités par des virgules, triés par &amp;quot;family-name&amp;quot;.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Blogs_de_groupes|Blogs de groupe]]''' - blogs avec plusieurs auteurs marqués avec hCard&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Auteurs|Auteurs]]''' - les pages à propos d'autre chose, telles que des livres, des critiques, qui ont marqué leurs auteurs avec hCard&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Résultats_de_recherche|Résultats de Recherche]]''' - les pages résultantes des moteurs de recherche (soit générique ou pour les personnes/organisations) qui renvoient des personnes marquées avec hCard.&lt;br /&gt;
# '''[[hcard-examples-in-wild-fr#Listing_Contact|Listing Contact]]''' - information de contact pour un listing comme les annonces d'emploi, petites annonces, etc.&lt;br /&gt;
&lt;br /&gt;
En outre, il existe une section séparée &amp;quot;[[hcard-examples-in-wild-fr#Exemples_UTF8|Exemples UTF8]]&amp;quot; qui peut être utilisée pour déposer un autre lien vers tout exemple de hCard dans la jungle qui exerce différents caractères non-ASCII7 / non-anglais pour différentes valeurs de propriétés.&lt;br /&gt;
&lt;br /&gt;
Au fur et à mesure que chaque section en elle-même deviendra trop grande (nous pourrions être encore là, une fois que nous aurons trié les &amp;quot;Exemples critiqués&amp;quot; ci-dessus), elle sera probablement migrée sur une page séparée, laissant son titre ici en place et remplaçant ses contenus ici avec un lien vers la page séparée et peut-être un résumé statistique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Individus ===&lt;br /&gt;
Groupés alphabétiquement par &amp;quot;family-name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Joliment stylisées : &lt;br /&gt;
* la page d'accueil de [http://www.jaredhanson.net/ Jared Hanson] a une hCard magnifique avec de nombreux moyens de le contacter, et une mise à jour en temps réel de son statut en ligne sur différents réseaux de messagerie (utilise javascript).&lt;br /&gt;
* l'information de contact de [http://rogieking.com/#contact Rogie King] est marquée avec hCard et très joliment stylisée.&lt;br /&gt;
* la page d'accueil de [http://timvandamme.com/ Tim Van Damme] est une très belle hCard.&lt;br /&gt;
** a besoin de quelques réparations mineures : http://tr.im/hctvd (lien vers les résultats du validateur de hCard)&lt;br /&gt;
			&lt;br /&gt;
	&lt;br /&gt;
Pages web simples :&lt;br /&gt;
* hCard UID d'[http://abernier.name Antoine Bernier] :&lt;br /&gt;
** Lien de téléchargement Dynamique VCF (à travers le [http://suda.co.uk/projects/microformats/hcard/get-contact.php?uri= hcard parseur])&lt;br /&gt;
** QRcode dynamique (à travers [http://microform.at/hcard2qrcode/ hcard2qrcode])&lt;br /&gt;
** Avtar dynamique (à travers [http://www.gravatar.com/ Gravatar])&lt;br /&gt;
** Prêt pour [http://wiki2008.openid.net/Delegation openID] &lt;br /&gt;
** [http://hcard.geekhood.net/?url=http%3A%2F%2Fabernier.name valide]&lt;br /&gt;
* La page d'accueil de [http://dbaron.org/ David Baron] est marquée avec hCard.&lt;br /&gt;
* La page d'accueil de [http://tantek.com/ Tantek Çelik] inclut une hCard d'auteur dans la ligne en bas de la page.&lt;br /&gt;
* [http://christophertcressman.com/ Christopher T. Cressman] place ses détails de contact sur [http://christophertcressman.com/ Who is Chris Cressman?] et elle est marquée avec hCard.&lt;br /&gt;
* [http://factoryjoe.com/hcard.html Chris Messina] a une page dédiée avec ses détails de contact.&lt;br /&gt;
* [http://blog.roub.net/ Paul Roub] a une hCard pour lui-même sur la page de son blog.&lt;br /&gt;
* Patrick Trettenbrein est l'opérateur de [http://skateboardspot.info/ skateboardspot.info] et utilise hCard sur sa  [http://skateboardspot.info/cat/about#operator page &amp;quot;about&amp;quot;] pour son info de contact.&lt;br /&gt;
* [http://blogs.msdn.com/cwilso/ Chris Wilson] a une page hCard pour lui-même sur [http://blogs.msdn.com/cwilso/about.aspx sa page about].&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Cachée ! La donnée invisible est fortement découragée, ces exemples ont été groupés ici dans l'espoir que les auteurs rendront un nour leurs hCards visible :&lt;br /&gt;
* La page d'accueil de [http://ajbrown.org/ A.J. Brown] a une hCard cachée en bas de page.&lt;br /&gt;
&lt;br /&gt;
Avant. Les URLs semblent brisées.&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;http://tomleo.com/about.html&amp;lt;/nowiki&amp;gt; La page about de Tom Leo avait une hCard. (manquante en date du 2009-08-23)&lt;br /&gt;
&lt;br /&gt;
=== Organisations ===&lt;br /&gt;
* [http://www.michrome.com Michrome Marketing Lists (UK)] utilise hCard sur toutes ses données de résultats de recherche. Par exemple, [http://michrome.com/free-leads/162-Bradford-BD9 Startup Companies in Bradford].&lt;br /&gt;
* [http://technorati.com Technorati] (3)&lt;br /&gt;
** Les pages [http://technorati.com/about/ about], [http://technorati.com/press/ press] et  [http://technorati.com/about/contact.html contact] sont balisées avec hCard et ont des liens &amp;quot;Add to Address Book&amp;quot; qui utilisent le [http://feed.technorati.com/contacts/ Technorati service Fil de Contacts].&lt;br /&gt;
* [http://technorati.jp Technorati Japan] (1)&lt;br /&gt;
** [http://technorati.jp/about/contact.html la page contact] est marquée avec hCard&lt;br /&gt;
&lt;br /&gt;
=== Institutions ===&lt;br /&gt;
* [http://conferences.oreillynet.com/contacts.csp La page Team des Conférences O'Reilly] a des hCards pour son équipe (~14) avec un lien vers &amp;quot;Download the below contact info in vcf format&amp;quot; qui utilise le [http://feeds.technorati.com/contacts/ service de fil Technorati contacts] pour convertir les hCards en vCards.&lt;br /&gt;
** '''sous-optimal''': L' &amp;quot;org&amp;quot; ne devrait pas être caché avec &amp;quot;display:none&amp;quot;. Utilisez à la place le [[include-pattern-fr|include-pattern]] pour inclure le &amp;quot;org&amp;quot; à partir du texte quelque part sur la page (pour éviter la duplication du texte).&lt;br /&gt;
* La [http://technorati.com/about/staff.html page Staff de Technorati] a des hCards pour ses collaborateurs (~31)&lt;br /&gt;
** par ex. [http://technorati.com/about/staff.html?s=matthew_levine#matthew_levine Matthew Levine], [http://technorati.com/about/staff.html?s=ryan_king#ryan_king Ryan King], etc.&lt;br /&gt;
'''avec quelques problèmes :'''&lt;br /&gt;
* L'[http://www.ibm.com/contact/employees/ Annuaire des Employés d'IBM] renvoie des hCards dans ses résultats de recherche : &lt;br /&gt;
** par ex. [http://www.ibm.com/contact/employees/servlets/lookup?country=us&amp;amp;language=en&amp;amp;search_country=all&amp;amp;lastname=Kaply&amp;amp;firstname=Michael recherche sur Michael Kaply], &lt;br /&gt;
** mais avec quelques problèmes :&lt;br /&gt;
*** '''invalide''' : pas de &amp;quot;fn&amp;quot; (pourrait se résoudre par would be addressed by the [[hcard-brainstorming-fr#FN_implicite_.C3.A0_partir_de_N|fn implicite à partir de n]]) &lt;br /&gt;
*** '''sous-optimisé : ''': adr n'a pas d'enfants et de ce fait ne fournit pas quelque donnée (peut se résoudre par la [[hcard-brainstorming-fr#sous-propri.C3.A9t.C3.A9s_adr_implicites|proposition implicite des sous propriétés adr]])&lt;br /&gt;
* [http://www.boltonmuseums.org.uk Bolton Museum and Archive Service] utilise hCard sur sa page &lt;br /&gt;
**[http://www.boltonmuseums.org.uk/about/contact/ Contacts]&lt;br /&gt;
***'''invalide''' : Plusieurs n'ont pas de &amp;quot;fn&amp;quot;&lt;br /&gt;
**et sur chacune de ses pages d'attractions visiteur par ex. sur la page [http://www.boltonmuseums.org.uk/visiting/findhallthwood/ Hall i' th' Wood location page].&lt;br /&gt;
***'''sous-optimal''' : les propriété &amp;quot;email&amp;quot; et &amp;quot;tel&amp;quot; incluent par erreur des étiquettes &amp;quot;Email:&amp;quot; et &amp;quot;Telephone:&amp;quot; .&lt;br /&gt;
* [http://soap.stanford.edu/ Stanford Online Accessibility Program] has implemented hCard on every page&lt;br /&gt;
** '''sous-optimal''' : positionnés hors écran via CSS&lt;br /&gt;
* [http://www.belkin.com/pressroom/releases/uploads/10_09_06SportCommand.html Belkin Press Release] - Tous les communiqués de presse de Belkin depuis octobre 2006 utilisent hCard et vCard pour l'information de contact de la société.&lt;br /&gt;
** '''invalide''' : L'exemple a une hCard invalide (sur 3) du au manque de &amp;quot;fn&amp;quot;.&lt;br /&gt;
* [http://www.alexa.com Alexa Internet] a marqué sa page [http://www.alexa.com/site/company/managers managers' page] avec hCard.&lt;br /&gt;
** '''sous-optimal''' : job &amp;quot;title&amp;quot; est inclus dans la propriété &amp;quot;fn&amp;quot;.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Profils En Ligne ===&lt;br /&gt;
Voir [[hcard-supporting-profiles-fr]].&lt;br /&gt;
 &lt;br /&gt;
=== Lieux en Ligne  ===&lt;br /&gt;
* [http://www.sydneydirectory.org/ Sydney Directory Wiki] supporte hCard et les coordonnées géographiques pour les endroits, par ex. [http://www.sydneydirectory.org/index.php/Opera_House Sydney Opera House].&lt;br /&gt;
* [http://www.airfix.com/stockists-and-distributors/ Airfix Stockists and Distributors], par ex. [http://www.airfix.com/stockists-and-distributors/?postcode=b1+1bb&amp;amp;root_rid=1&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;search=search]&lt;br /&gt;
**'''sous-optimal''' : &amp;lt;code&amp;gt;street-address&amp;lt;/code&amp;gt; contient street address, locality et region (par ex. &amp;quot;99 Hobs Moat Rd, Solihull, W. Midlands&amp;quot;)&lt;br /&gt;
**'''sous-optimal''' : &amp;lt;code&amp;gt;postal-code&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;country-name&amp;lt;/code&amp;gt; incluent des virgules&lt;br /&gt;
**'''sous-optimal''' : &amp;lt;code&amp;gt;fn&amp;lt;/code&amp;gt; est utilisé ; devrait être &amp;lt;code&amp;gt;fn org&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Listes de conférenciers===&lt;br /&gt;
==== 2007 ====&lt;br /&gt;
[[to-do]] : jeter un oeil aux [[presentations-fr|présentations]] 2007 car elles contiennent probablement des liens vers des conférences qui ont marqué leurs pages de conférenciers avec hCard.&lt;br /&gt;
* 09: [http://2006.dconstruct.org/speakers/ d.Construct 2007 speakers]&lt;br /&gt;
==== 2006 ====&lt;br /&gt;
[[to-do]]: jeter un oeil aux [[presentations-fr|présentations]] 2006 car elles contiennent probablement des liens vers des conférences qui ont marqué leurs pages de conférenciers avec hCard.&lt;br /&gt;
* 09: [http://2006.dconstruct.org/speakers/ d.Construct 2006 speakers]&lt;br /&gt;
==== 2005 ====&lt;br /&gt;
[[to-do]] : jeter un oeil aux [[presentations-fr|présentations]] 2005 car elles contiennent probablement des liens vers des conférences qui ont marqué leurs pages de conférenciers avec hCard.&lt;br /&gt;
* 12: [http://tantek.com/microformats/2005/syndicate/speakers-list.html Syndicate - Speaker List] (version hCardée hébergée chez  tantek.com)&lt;br /&gt;
* 10: [http://tantek.com/microformats/2005/web2/speakers.html Web 2.0 Conference 2005 -- Speakers] (version hCardée hébergée chez  tantek.com)&lt;br /&gt;
* 09: Web Essentials 2005 - Les Présentateurs &amp;lt;nowiki&amp;gt;http://we05.com/presenters.cfm&amp;lt;/nowiki&amp;gt; (semble avoir cessé de fonctionner en date du 2007-12-18, peut-être plus tôt) renvoient sur tantek.com : [http://tantek.com/microformats/2005/we05/presenters.html Web Essentials 2005 - The Presenters]. Web Essentials 2005 (we05) était la [http://tantek.com/log/2005/10.html#d06t1720 première conférence à avoir adopté hCard et hCalendar] sur son site web.&lt;br /&gt;
&lt;br /&gt;
=== Blogs de Groupe ===&lt;br /&gt;
'''avec quelques problèmes :'''&lt;br /&gt;
* Le [http://www.ibm.com/shortcuts/ Podcast IBM Shortcuts] a des auteurs marqués avec des hCards qui ont quelques problèmes :&lt;br /&gt;
** '''cachée''' : L'élément racine hCard tout comme chaque propriété contenue à l'intérieur est rendu invisible par un attribut de style contenant &amp;quot;position:absolute; visibility:hidden&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Auteurs ===&lt;br /&gt;
* [http://lazylibrary.com LazyLibrary] uses author hCard's on every book page. Example: [http://lazylibrary.com/book/0751370576]&lt;br /&gt;
** '''suboptimal''' [http://lazylibrary.com/book/0751370576 Example] has an fn of &amp;quot;Dorling Kindersley, David West Reynolds&amp;quot; which should be split into two hCards! (site would also benefit from hReview).&lt;br /&gt;
&lt;br /&gt;
=== Résultats de Recherche ===&lt;br /&gt;
* [http://www.bath.ac.uk/contact/ University of Bath] Person Finder results are encoded with hCards so you can easily create a vCard from any result. &lt;br /&gt;
** '''invalid''': attempt to use Implied-N optimization where that's not possible,&lt;br /&gt;
** '''suboptimal''': honorific-prefix could be explicitly marked up&lt;br /&gt;
*** Error appears for external users only. Won't be fixed any time soon. -- [[User:PhilWilson|PhilWilson]] 00:03, 28 Jan 2006 (GMT)&lt;br /&gt;
&lt;br /&gt;
=== Listes de contacts ===&lt;br /&gt;
L'information de contact sur les listings, par ex. les listes d'annonces de recrutement, les items à vendre, etc. &lt;br /&gt;
&lt;br /&gt;
* [http://seogadget.co.uk/search-marketing-executive-upto-30k-portsmouth/ search marketing executive] publiée par  [http://seogadget.co.uk/ SEOgadget].&lt;br /&gt;
** '''propriété url invalide''' - manque href sur l'élément propriété url  &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;, de ce fait il est invalide et lie vers une URL relative inexistante.&lt;br /&gt;
** '''XHTML invalide''' - le validateur W3C rapporte que cette page est [http://validator.w3.org/check?uri=http://seogadget.co.uk/search-marketing-executive-upto-30k-portsmouth/ XHTML 1.0 Transitional] (109 errors en date du 2009-08-20).&lt;br /&gt;
&lt;br /&gt;
===Exemples en UTF8 ===&lt;br /&gt;
Ces exemples contiennent tous un ou plusieurs caractères en UTF8 qui sont en dehors de la gamme ASCII7 et font des cas excellents pour les tests afin de s'assurer que vous gérez bien proprement l'UTF8 à travers votre parseur hCard et la transformation. Et tout spécialement si vous générez des vCards, ces tests aideront à vous assurer que vous générez des vCards UTF8 de façon qu'elles puissent être reconnues par les applications UTF8 supportant les vCards. Trié à peu près par ordre alphabétique (selon l'Unicode).&lt;br /&gt;
&lt;br /&gt;
* [http://sphinx.net.ru/author/ Dmitry Dzhus] a embarqué sa hCard encodée UTF8 avec des caractères russes dans la page &amp;quot;Auteur&amp;quot; de son site web.&lt;br /&gt;
* [http://ecdlweb.com/ ECDLWeb.com] encode l'information hCard et Geo information des centres de test ECDL et ICDL en UTF-8. Le cas de test pour l'Europe Centrale (caractères [http://ecdlweb.com/en/czech-republic/sps-ceska-lipa tchèque], [http://ecdlweb.com/en/hungary/athene-idegenforgalmi-informatikai-es-uzletemberkepzo-szakkozepiskola hongrois] etc.) et [http://ecdlweb.com/en/belarus/belhard cyrillique].&lt;br /&gt;
* [http://tantek.com/ Tantek's Thoughts] encode Çelik comme de l'UTF8 dans la ligne.&lt;br /&gt;
* [http://technorati.jp/about/contact.html L'information de contact Technorati Japon] encode le japonais comme de l'UTF8 dans la ligne.&lt;br /&gt;
* [http://uk.wikipedia.org/wiki/%D0%93%D0%B5%D1%82%D1%8C%D0%BC%D0%B0%D0%BD_%D0%92%D0%B0%D0%B4%D0%B8%D0%BC_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87 Vadym Hetman] (Wikipedia-UK (Ukrainien))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== seulement des nickname ====&lt;br /&gt;
Ces exemples UTF8 n'ont que l'UTF8 pour la propriété &amp;quot;nickname&amp;quot; et sont de ce fait un peu plus faciles pour tester que les exemples précédents.&lt;br /&gt;
* Différents articles de la Wikipedia-EN, par ex. le &amp;quot;nickname&amp;quot; dans : [http://en.wikipedia.org/wiki/Noyabrsk Noyabrsk] (Russe), [http://en.wikipedia.org/wiki/Thessaloniki Thessaloniki] (Grec), [http://en.wikipedia.org/wiki/Kyoto Kyoto] (Japonais) et  [http://en.wikipedia.org/wiki/Beijing Beijing] (Chinois)&lt;br /&gt;
&lt;br /&gt;
===Exemples Non-HTML ===&lt;br /&gt;
* [http://dannyayers.com/misc/microformats/hcard-svg la démo hCard SVG de Danny Ayers]&lt;br /&gt;
&lt;br /&gt;
== Pages Apparentées==&lt;br /&gt;
{{hcard-related-pages-fr}}&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=h-card&amp;diff=66666</id>
		<title>h-card</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=h-card&amp;diff=66666"/>
		<updated>2018-02-02T09:32:25Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66665 by Upseo (Talk) Spammy link, page does not contain h-card. Related blog uses old vcard class instead of modern h-card class.&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.&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;
* [https://joelpurra.com/ Joel Purra] uses a hidden h-card with legacy [[hCard]] fallback markup (to satisfy [https://search.google.com/structured-data/testing-tool Google's Structured Data Testing Tool]) on the front page&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.me/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>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=json&amp;diff=66649</id>
		<title>json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=json&amp;diff=66649"/>
		<updated>2017-12-28T08:05:38Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66648 by Eyecaresoftgel02 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&amp;lt;entry-title&amp;gt;JSON&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dfn&amp;gt;JSON&amp;lt;/dfn&amp;gt; is JavaScript Object Notation (RFC 4627), a popular data format for APIs.&lt;br /&gt;
&lt;br /&gt;
== current microformats support ==&lt;br /&gt;
[[microformats2]] has a canonical JSON representation that is produced by numerous microformats2 parsers across various languages.&lt;br /&gt;
&lt;br /&gt;
== brainstorming ==&lt;br /&gt;
* [[jf2]] - a simplified more minimal mf2 JSON representation&lt;br /&gt;
&lt;br /&gt;
== tools ==&lt;br /&gt;
* http://jsonlint.com/ - use JSON Lint to check any JSON examples for/in the wiki.&lt;br /&gt;
* https://jsonformatter-online.com/ - JSON formatter - Tool to edit, format, and validate JSON.&lt;br /&gt;
&lt;br /&gt;
== previous work ==&lt;br /&gt;
* [[old-json-serializations]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [http://www.json.org www.json.org]: the original specification, documentation, and list of implementations for many different programming languages.&lt;br /&gt;
* RFC 4627, current formal JSON specification.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JSON JSON on Wikipedia]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=rss&amp;diff=66625</id>
		<title>rss</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=rss&amp;diff=66625"/>
		<updated>2017-11-22T13:38:21Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: I think it is safe to say we don’t want to link codebeautify without good new reason. Undo revision 66621 by Jamesmalvi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;RSS&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;dfn&amp;gt;RSS&amp;lt;/dfn&amp;gt;''' is a legacy XML format for syndicating typically time-stamped content from web sites. &amp;lt;abbr&amp;gt;RSS&amp;lt;/abbr&amp;gt; is an acronym that that stands for: Rich Site Summary (originally RDF Site Summary, often dubbed Really Simple Syndication)[http://en.wikipedia.org/wiki/RSS]. [[Atom]] is an alternative XML format for feeds. &lt;br /&gt;
&lt;br /&gt;
There are many problems consuming RSS feeds.&lt;br /&gt;
&lt;br /&gt;
See the 40+ problems documented here:&lt;br /&gt;
* http://inessential.com/2013/03/18/brians_stupid_feed_tricks&lt;br /&gt;
&lt;br /&gt;
Instead of publishing/consuming RSS:&lt;br /&gt;
* Publish [[h-entry]] in your HTML. See http://indiewebcamp.com/ for more&lt;br /&gt;
* Consume [[h-entry]], e.g. with a [[microformats2]] parser&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[h-entry]]&lt;br /&gt;
* [[microformats2]]&lt;br /&gt;
* http://indiewebcamp.com/&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=json&amp;diff=66624</id>
		<title>json</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=json&amp;diff=66624"/>
		<updated>2017-11-22T13:38:08Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: I think it is safe to say we don’t want to link codebeautify without good new reason. Undo revision 66620 by Jamesmalvi (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&amp;lt;entry-title&amp;gt;JSON&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dfn&amp;gt;JSON&amp;lt;/dfn&amp;gt; is JavaScript Object Notation (RFC 4627), a popular data format for APIs.&lt;br /&gt;
&lt;br /&gt;
== current microformats support ==&lt;br /&gt;
[[microformats2]] has a canonical JSON representation that is produced by numerous microformats2 parsers across various languages.&lt;br /&gt;
&lt;br /&gt;
== brainstorming ==&lt;br /&gt;
* [[jf2]] - a simplified more minimal mf2 JSON representation&lt;br /&gt;
&lt;br /&gt;
== tools ==&lt;br /&gt;
* http://jsonlint.com/ - use JSON Lint to check any JSON examples for/in the wiki.&lt;br /&gt;
* https://jsonformatter-online.com/ - JSON formatter - Tool to edit, format, and validate JSON.&lt;br /&gt;
&lt;br /&gt;
== previous work ==&lt;br /&gt;
* [[old-json-serializations]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [http://www.json.org www.json.org]: the original specification, documentation, and list of implementations for many different programming languages.&lt;br /&gt;
* RFC 4627, current formal JSON specification.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/JSON JSON on Wikipedia]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=get-started&amp;diff=66623</id>
		<title>get-started</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=get-started&amp;diff=66623"/>
		<updated>2017-11-22T13:33:40Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: Undo revision 66622 by Lavanya (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;Get Started&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-indent:2em;font-weight:bold;padding:1em;background:yellow&amp;quot;&amp;gt;&lt;br /&gt;
Latest: [http://microformats.org/2014/03/05/getting-started-with-microformats2 Get Started with microformats2]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get started by adding support for microformats to your website, services, and products.&lt;br /&gt;
&lt;br /&gt;
== introduction ==&lt;br /&gt;
Microformats are based on simple markup conventions that enable you to add meaningful structure to your web content.&lt;br /&gt;
&lt;br /&gt;
One of the key [[principles]] of microformats, is to privilege [[humans-first|human readable]] content. This means that you should think first and foremost of your content design being readable and accessible to web viewers. Using the [[semantic-xhtml|most appropriate HTML elements]] and applying structured [[semantic-class-names|class names]] to your markup enables you to produce content that can be clearly understood by a human audience and also used in a structured way by automated programs and other online tools. But the point is that you shouldn't have to go out of your way to produce such machine friendly markup - microformats make it easy to integrate this greater degree of structure into your websites, without the overhead of having to learn complicated new languages or formats.&lt;br /&gt;
&lt;br /&gt;
The best way to understand microformats is to start using them straight away. Since they're embedded in ordinary HTML, you can take existing pages and add these structured class names to the markup, but it's recommended that when doing this, you also take a close look at the overall tag structure that you're using - maybe there is a better way to say what you mean using basic HTML tags.&lt;br /&gt;
&lt;br /&gt;
Many common kinds of content can be marked up in microformats. Microformats are designed to be similar to current markup styles. Chances are, you already have some of them on your site. Start with the obvious ones. For example a simple, and very popular place to start is with [[h-card]] - a microformat for displaying personal and organizational contact details. You can think of [[h-card]] as a way to embed mini business cards in web pages, but glancing over the [[h-card-examples|examples]] shows a lot more possibilities than just that.  Here are some specific places to start using microformats today:&lt;br /&gt;
&lt;br /&gt;
== yourself ==&lt;br /&gt;
=== your website ===&lt;br /&gt;
If you have your own website, read [[h-card-authoring]] for tips and guidelines on how to best markup existing content with h-card and take a look at the [[h-card-examples]], then&lt;br /&gt;
* add [[h-card]] to your contact info page&lt;br /&gt;
* add h-card+[[xfn|XFN]] to your friends list or blog roll&lt;br /&gt;
* add your website and contact page to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
=== your blog ===&lt;br /&gt;
If you have a blog:&lt;br /&gt;
* add [[hatom|hAtom]] to your blog pages&lt;br /&gt;
* add your blog to the [[hatom-examples-in-wild]] page.&lt;br /&gt;
&lt;br /&gt;
== your organization ==&lt;br /&gt;
=== website ===&lt;br /&gt;
==== contact info ====&lt;br /&gt;
* '''Contact info.''' Every company or organization has a contact or about page of some sort on their website. Read [[h-card-authoring]] and add [[h-card]] to the contact/about pages along with &amp;quot;Add to address book&amp;quot; links for each h-card.&lt;br /&gt;
* '''Employee directory.''' If your company has a page listing employees or others that belong to the organization, add [[h-card]] to the listings or search results.&lt;br /&gt;
* add those pages with h-cards to the [[h-card#Examples_in_the_wild|list of examples in the wild]]&lt;br /&gt;
&lt;br /&gt;
==== events ====&lt;br /&gt;
Use hCalendar anywhere on the website that publishes event information. Start with the [http://microformats.org/code/hcalendar/creator hCalendar creator]. &lt;br /&gt;
&lt;br /&gt;
===== history =====&lt;br /&gt;
If your organization publishes its history, mark up the events noted with hCalendar, thus allowing anybody to build a dynamic timeline application with your history.&lt;br /&gt;
&lt;br /&gt;
=== products ===&lt;br /&gt;
Does your company make any products that generate HTML?&lt;br /&gt;
&lt;br /&gt;
* Make sure such products generate [[posh|POSH]] and whenever possible, the appropriate microformats.&lt;br /&gt;
* Then add those products to the [[implementations]] page.&lt;br /&gt;
&lt;br /&gt;
=== enterprise ===&lt;br /&gt;
Wondering how to use microformats in an enterprise scenario?&lt;br /&gt;
&lt;br /&gt;
Any publication of information about people, events, reviews etc. could benefit from being marked up with h-card, hCalendar, and hReview respectively.&lt;br /&gt;
&lt;br /&gt;
== other content ==&lt;br /&gt;
* Do you have an explicit copyright license on your content? Then markup the link to your license with [[rel-license]]. &lt;br /&gt;
* Do you publish social network / relationship info? Then mark that up with [http://gmpg.org/xfn/ XFN]. &lt;br /&gt;
* Are you tagging things? Then use [[rel-tag]] (for your own stuff) or [[xFolk]] (for tagging any URL).&lt;br /&gt;
* Are you publishing lists or outlines? Then use [[XOXO]]. &lt;br /&gt;
* Do you publish reviews? Then use [[hReview]].&lt;br /&gt;
** Start with the [http://microformats.org/code/hreview/creator hReview creator]. &lt;br /&gt;
* Do you publish press releases? Then use [[hatom|hAtom]].&lt;br /&gt;
&lt;br /&gt;
== what next ==&lt;br /&gt;
Once you have added microformats support to your website and helped your company and organization do so as well:&lt;br /&gt;
* [[advocacy|Advocate]] the use and support of microformats on other sites as well.&lt;br /&gt;
&lt;br /&gt;
And here are a few more tips:&lt;br /&gt;
&lt;br /&gt;
Try to produce clean, [[semantic xhtml]], AKA [[POSH]]. Where there aren't [[microformats]] for specific types of content, feel free to experiment with your own [[poshformats]].&lt;br /&gt;
&lt;br /&gt;
* [http://tantek.com/log/2004/07.html#classmeaningnotshow Class for meaning not for show]&lt;br /&gt;
* http://microformats.org/wiki/SemanticXHTMLDesignPrinciples&lt;br /&gt;
* [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html Semantic XHTML]&lt;br /&gt;
* [http://tantek.com/presentations/2005/03/elementsofxhtml Meaningful XHTML]&lt;br /&gt;
* [http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html Real World Semantics]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
== translations ==&lt;br /&gt;
Read about how to [[get-started]] in additional &amp;lt;span id=&amp;quot;languages&amp;quot;&amp;gt;languages&amp;lt;/span&amp;gt;:&lt;br /&gt;
* [[get-started-fr|français]]&lt;br /&gt;
* [[get-started-ru|Русский]]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[advocacy]]&lt;br /&gt;
* [[spread-microformats]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
	<entry>
		<id>https://microformats.org/wiki/index.php?title=gender-examples&amp;diff=66598</id>
		<title>gender-examples</title>
		<link rel="alternate" type="text/html" href="https://microformats.org/wiki/index.php?title=gender-examples&amp;diff=66598"/>
		<updated>2017-10-29T10:58:46Z</updated>

		<summary type="html">&lt;p&gt;Zegnat: /* sites and services */ Add one more link to the Twitter thing, thanks kevinmarks!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;entry-title&amp;gt;gender examples&amp;lt;/entry-title&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This page documents how people currently publish [[gender]] information on the web (sometimes implicitly - so not easily machine parsable - such as names (Andrew, Andrea), titles (Mr, Mrs, Miss), relationships (husband, brother), pronouns (he, she), etc.)), and what gender terms are supported by current web user interfaces.  This research will hopefully be useful to the [[genealogy]] microformat effort, as well as efforts to [[vcard-suggestions|extend vCard]], and therefore [[hcard|hCard]].&lt;br /&gt;
&lt;br /&gt;
== examples ==&lt;br /&gt;
These examples are based on two primary sources of real world web site usage (e.g. on social network sites)&lt;br /&gt;
&lt;br /&gt;
* user interfaces for editing (and displaying) [[user profile]] information&lt;br /&gt;
* user interfaces for doing faceted (field-based) search based on value(s) of a gender (or sex) field.&lt;br /&gt;
&lt;br /&gt;
== sites and services ==&lt;br /&gt;
&lt;br /&gt;
Social network sites typically publish the gender of the individual.&lt;br /&gt;
&lt;br /&gt;
Sites and services that allow users to enter and publish their gender. Please add to this list.&lt;br /&gt;
&lt;br /&gt;
In alphabetical order:&lt;br /&gt;
* [https://bagcheck.com/blog/01-the-gender-question Bagcheck] chose to ask which pronoun you want to use:&lt;br /&gt;
** Preferred Possessive Pronoun: ( )Her ( )His ( )Their&lt;br /&gt;
* [http://crush3r.com/ Crusher]'s [http://crush3r.com/account Edit My Account](requires login) page combines gender and person vs organization distinction in an interesting type picker among girl, boy, band, or other with a field.&lt;br /&gt;
** Type: ( ) Girl  ( ) Boy  ( ) Band  ( ) Other: [______]&lt;br /&gt;
* Canada Council for the Arts (need citation to specific sign-up form URL) - [https://twitter.com/heathr/status/189492984188903424 according to Heather Gold]:&lt;br /&gt;
** Female, Male, Transgender, Other (please specify), No answer, Please specify [______]&lt;br /&gt;
** [http://twitter.com/#!/heathr/status/189492984188903424/photo/1/large http://p.twimg.com/AqE23XpCIAArFWA.png]&lt;br /&gt;
* [http://digg.com/ Digg]'s [http://digg.com/settings/about About Me settings page](requires login) has a Gender popup that appears to be inspired by Pownce's list:&lt;br /&gt;
** Guy, Girl, Dude, Lady, Fellow, Bird, Chap, grrrl, Gentleman, Damsel, Male, Female, Transgender, None of the Above&lt;br /&gt;
* [https://www.flirtbox.co.uk/hotornot.php?gender=f flirtbox]: &amp;quot;Women&amp;quot; and &amp;quot;girls&amp;quot;&lt;br /&gt;
* [http://www.eharmony.co.uk/ eHarmony]: &amp;quot;Woman&amp;quot; or &amp;quot;Man&amp;quot;&lt;br /&gt;
* [http://facebook.com facebook.com]: changed from &amp;quot;Male/Female&amp;quot; to Male/Female/Custom&amp;quot; on 2014-02-13&lt;br /&gt;
** custom must be from one of 56 choices, despite being a  free-entry text box - &lt;br /&gt;
** (Agender, Androgyne, Androgynous, Bigender, Cis, Cisgender, Cis Female, Cis Male, Cis Man, Cis Woman, Cisgender Female, Cisgender Male, Cisgender Man, Cisgender Woman, Female to Male, FTM, Gender Fluid, Gender Nonconforming, Gender Questioning, Gender Variant, Genderqueer, Intersex, Male to Female, MTF, Neither, Neutrois, Non-binary, Other, Pangender, Trans, Trans*, Trans Female, Trans* Female, Trans Male, Trans* Male, Trans Man, Trans* Man, Trans Person, Trans* Person, Trans Woman, Trans* Woman, Transfeminine, Transgender, Transgender Female, Transgender Male, Transgender Man, Transgender Person, Transgender Woman, Transmasculine, Transsexual, Transsexual Female, Transsexual Male, Transsexual Man, Transsexual Person, Transsexual Woman, Two-Spirit)&lt;br /&gt;
** list from [http://www.slate.com/blogs/future_tense/2014/02/13/facebook_custom_gender_options_here_are_all_56_custom_options.html Will Oremus at Slate]&lt;br /&gt;
* [http://www.gay.com/ gay.com]: &amp;quot;Male&amp;quot;, &amp;quot;Female&amp;quot;, &amp;quot;MTF&amp;quot; and &amp;quot;FTM&amp;quot;.&lt;br /&gt;
* http://www.adam4adam.com/: &amp;quot;Male&amp;quot;, &amp;quot;Female&amp;quot;&lt;br /&gt;
* [https://plus.google.com Google+]:&lt;br /&gt;
** before 2014-12-10: Male, Female, Other&lt;br /&gt;
** after 2014-12-10: Male, Female, Decline to State, Custom - if Custom selected, a freeform text field is enabled to put in your gender. [https://plus.google.com/app/basic/stream/z12iz5ajslvxe3mup23nud451xfqcfj4l04 Post by Rachael Bennett]&lt;br /&gt;
* [http://www.livejournal.com/ LiveJournal]'s [http://www.livejournal.com/manage/profile/ Edit Profile](requires login) page provides a popup menu for gender with the values in order:&lt;br /&gt;
** (Unspecified), Male, Female&lt;br /&gt;
* [http://ma.gnolia.com Ma.gnolia]'s [http://ma.gnolia.com/account/profile Edit Your Profile on Ma.gnolia](requires login) page provides a popup menu for gender with the values in order:&lt;br /&gt;
** Female, Male, Other&lt;br /&gt;
* MediaWiki.org&lt;br /&gt;
** Radio button choice on Preferences: &amp;quot;(I prefer not to say)&amp;quot;, &amp;quot;She edits wiki pages&amp;quot;, &amp;quot;He edits wiki pages&amp;quot;&lt;br /&gt;
** [https://phabricator.wikimedia.org/T61643 Phabricator thread on non-binary gender preferences]&lt;br /&gt;
*[http://metatalk.metafilter.com/20050/Gender-Go-nuts-Somebody-did#838160 Cortex histogrammed] [http://metafilter.com metafilter's] 10-year-old free-form gender field- [http://stuff.metafilter.com/genders/genderfield.txt data dump]&lt;br /&gt;
** The first entry is blank/null fields; the difference between that and &amp;quot;total records&amp;quot; is the number of people who have put anything at all in the field: 9,325 mefites have as of a few minutes ago put something in that field. Reckoning from the previous note, that means that something like 17-18% of users have actually elected to put something in that field at some point in their membership here. &lt;br /&gt;
** Of the folks who have something in that field, just over 60% use one of the top four options: &amp;quot;male&amp;quot;, &amp;quot;female&amp;quot;, &amp;quot;m&amp;quot;, or &amp;quot;f&amp;quot;.&lt;br /&gt;
** Of the top dozen or so unambiguous labels provided, male-identifying terms (male, m, dude, xy, boy, guy, man, mail) account for about 49% of total labels used; female-identifying terms (female, f, lady, girl, xx, femme, chick) account for about 18%.&lt;br /&gt;
*[http://myspace.com/ MySpace.com] used to only allow male or female. There was a protest on MySpace by some genderqueer users who would put the word &amp;quot;genderqueer&amp;quot; into irrelevant metadata fields as a form of symbolic protest (source: tommorris' memory, [http://www.reddit.com/r/genderqueer/comments/1xtkq5/facebook_recognizes_nonbinary_genders_now/cfestqf reddit comment from tommorris])&lt;br /&gt;
*[http://www.okcupid.com/ OKCupid] - &amp;quot;I'm male&amp;quot; and &amp;quot;I'm female&amp;quot;&lt;br /&gt;
** This has led to a change.org petition: [https://www.change.org/petitions/ensure-that-all-okcupid-users-are-able-to-comfortably-identify-their-gender-and-sexual-orientation Ensure that all OkCupid users are able to comfortably identify their gender and sexual orientation!]&lt;br /&gt;
** In 2014-11, OKCupid modified the gender and sexuality options. You can now select up to five from each of the following lists&lt;br /&gt;
*** Gender: Woman, Man, Agender, Androgynous, Bigender, Cis Man, Cis Woman, Genderfluid, Genderqueer, Gender Nonconforming, Hijra, Intersex, Non-binary, Other, Pangender, Transfeminine, Transgender, Transmasculine, Transsexual, Trans Man, Trans Woman, Two Spirit &lt;br /&gt;
*** Sexuality: Straight, Gay, Bisexual, Asexual, Demisexual, Heteroflexible, Homoflexible, Lesbian, Pansexual, Queer, Questioning, Sapiosexual&lt;br /&gt;
*** Source: [http://www.pinknews.co.uk/2014/11/16/okcupid-begins-rolling-out-new-sexuality-and-gender-options/ pinknews.co.uk]&lt;br /&gt;
*[http://openid.net/specs/openid-attribute-exchange-1_0.html OpenID's Attribute Exchange] includes gender&lt;br /&gt;
* [http://pof.com/ POF]: &amp;quot;Male&amp;quot; or &amp;quot;Female&amp;quot;&lt;br /&gt;
* [http://pownce.com/ Pownce]'s [http://pownce.com/settings/ Profile Settings](requires login) interface has a Gender popup with the following values in order:&lt;br /&gt;
** Guy, Girl, Dude, Chicky-poo, Bloke, Bird, Lady, Gentleman, Male, Female, Transgender, None of the Above&lt;br /&gt;
* [http://blog.xkcd.com/2010/05/06/sex-and-gender/ XKCD] used 'do you have a Y chromosome?' as they were studying colour blindness&lt;br /&gt;
&lt;br /&gt;
Sites and services that internally assign users a gender, e.g. for ad targetting. Please add to this list.&lt;br /&gt;
&lt;br /&gt;
* [https://twitter.com/ Twitter] has been doing this [https://blog.twitter.com/marketing/en_us/a/2012/gender-targeting-for-promoted-products-now-available.html at least since 2012]. Although it claims to be 90% accurate, anecdotally many women in tech have been misgendered creating [https://readwrite.com/2014/09/03/twitter-analytics-demographics-gender-algorithm-male-female-followers/ a big skew towards male] in follower statistics. In 2017 the assigned genders [https://www.teenvogue.com/story/people-react-twitter-guessing-gender became visible to users].&lt;br /&gt;
&lt;br /&gt;
== government/healthcare ==&lt;br /&gt;
&lt;br /&gt;
* NHS Family doctor services registration form ([http://www.nhs.uk/servicedirectories/documents/gms1.pdf GMS1]): male, female&lt;br /&gt;
** Individual medical practices may supplement this form with their own registration form. Some allow for non-binary options for trans and intersex individuals...&lt;br /&gt;
** [http://www.belgravia-surgery-sw1.nhs.uk/website/E87005/files/Under_16s_New_Patient_Questionnaire_-The_Belgravia_Surgery.pdf Belgravia Surgery] (PDF) SW1: Male or Female&lt;br /&gt;
** [http://www.chelwest.nhs.uk/services/hiv-sexual-health/clinics/56-dean-street Dean Street sexual health clinic]: as part of their computerised registration process, they ask whether you are transgender. If you answer 'no', they then ask whether you are male or female. This is used to determine which medical tests are conducted.&lt;br /&gt;
** [http://www.marvenmedicalpractice.co.uk/ Marven Medical Practice], SW1V: &amp;quot;male&amp;quot;, &amp;quot;female&amp;quot;, &amp;quot;indeterminate&amp;quot;&lt;br /&gt;
** [http://www.northamsurgery.nhs.uk/website/L83050/files/NORTHAM_SURGERY_New_Born_Registration_Form.pdf Northam Surgery] (PDF): Male or Female&lt;br /&gt;
** [http://www.sexualhealthoxfordshire.nhs.uk/wp-content/uploads/2014/03/registration.pdf Sexual Health Oxfordshire] (PDF): Male or Female&lt;br /&gt;
** [http://www.gowerplacepractice.nhs.uk/website/F83043/files/UCL-Students-Health-Registration-Form-Protected.pdf UCL Students Health Registration Form] (PDF): Male or Female&lt;br /&gt;
** [http://www.yorksurgeryilford.nhs.uk/website/F86657/files/New_Patient_Registration_Form_2013.pdf York Surgery, Ilford] (PDF): Male or Female&lt;br /&gt;
&lt;br /&gt;
== travel ==&lt;br /&gt;
&lt;br /&gt;
* Eurotunnel.com Advance Passenger Information - if you book a journey on Eurotunnel, you have to provide Advance Passenger Information before travel. This includes name, passport number and gender. Options: Male, Female, Unknown&lt;br /&gt;
&lt;br /&gt;
== discussion elsewhere ==&lt;br /&gt;
* [http://www.myspace.com/queering_gender Because gender isn't binary]&lt;br /&gt;
* [http://community.livejournal.com/feminist/2925885.html Social networking sites &amp;amp; gender identity]&lt;br /&gt;
* [https://meta.wikimedia.org/wiki/Survey_best_practices Survey best practices] on meta.wikimedia.org&lt;br /&gt;
* [http://www.glaad.org/transgender/trans101 Transgender 101], GLAAD&lt;br /&gt;
* [https://tranarchism.wordpress.com/2010/11/26/not-your-moms-trans-101/ Not Your Mom's Trans 101], Asher at Tranarchism&lt;br /&gt;
* [https://blog.wikimedia.org/2015/03/09/gender-as-a-text-field/ Gender as a text field: What Wikipedia can learn from Facebook], Amanda Menking, Wikimedia Blog, 2015-03-09&lt;br /&gt;
* [http://43epnd.axshare.com/gender.html #genderUX – Some guiding principles for handling gender on forms]&lt;br /&gt;
&lt;br /&gt;
== see also ==&lt;br /&gt;
* [[gender]]&lt;br /&gt;
* [[gender-formats]]&lt;br /&gt;
* [[gender-brainstorming]]&lt;br /&gt;
* [[profile-examples]]&lt;br /&gt;
&lt;br /&gt;
== related ==&lt;br /&gt;
* [[genealogy]]&lt;br /&gt;
* [[hcard|hCard]]&lt;br /&gt;
* [[vcard-suggestions]]&lt;/div&gt;</summary>
		<author><name>Zegnat</name></author>
	</entry>
</feed>