The current
microformats include pattern
offers two methods — using <object>
or
<a>
—
to include in a microformat element parts of a document that are outside
of that microformats element's DOM tree. Both patterns have problems,
and have not been widely adopted. Also, the include pattern has not been
updated for
microformats 2.
This page is a proposal for a new include pattern using a
custom element
without any semantics.
The tag name I'm using for the custom element in
the example pages is <mf-include>
but it could be
anything. The custom element has a custom attribute
includeid
, but again, this attribute name could be anything.
The custom includeid
attribute would work the same way that the standard
itemref
attribute works.
Authors can use the new includeid
to place a space-separated list of
id
attributes. A microformats parser should then search for an
element whose id
matches a token in the
includeid
. If it finds a matching id, it should include
that matched element in the tree of the microformats element, as if
it appeared in the DOM inside the
<mf-include>
element; also, the parser should
ignore any content in the custom element, effectively
replacing the custom element's content with the content
of all included elements.
- example 1
-
The first example is a page with an h-card element and two h-recipe elements.
The h-card element describes the author of the recipes. Rather than repeat
the h-card markup in each h-recipe, the page instead puts the h-card in
the page
<header>
element. Each h-recipe element includes the h-card by using an empty custom element. A microformats parser should include the properties of the h-card as if that element appeared inside the custom element. - example 2
- The second example is identical to the first except for one difference. In this example, the custom element has content, a shortened, simplified h-card. The parser should produce the exact same JSON when it parses the microformat, because the parser should replace the contents of the custom element with the h-card element. Using this pattern, authors can offer a backup for older parsers that don't understand the new include pattern.