# representative-h-card-parsing

(Difference between revisions)

 Revision as of 23:14, 6 October 2014 (view source) (added mf-cleaner implementation)← Previous diff Revision as of 17:53, 23 December 2015 (view source) (disambiguate the case where the page contains only one h-card)Next diff → Line 9: Line 9: * If the page contains an h-card with '''uid''' and '''url''' properties both matching the page URL, the first such h-card is the representative h-card * If the page contains an h-card with '''uid''' and '''url''' properties both matching the page URL, the first such h-card is the representative h-card * If no representative h-card was found, if the page contains an h-card with a '''url''' property value which also has a rel=me relation (i.e. matches a URL in parse_results.rels.me), the first such h-card is the representative h-card * If no representative h-card was found, if the page contains an h-card with a '''url''' property value which also has a rel=me relation (i.e. matches a URL in parse_results.rels.me), the first such h-card is the representative h-card - * If no representative h-card was found, if the page contains '''one single''' h-card with a '''url''' property matching the page URL, that h-card is the representative h-card + * If no representative h-card was found, if the page contains '''one single''' h-card, and the h-card has a '''url''' property matching the page URL, that h-card is the representative h-card * If no representative h-card was found, the page has no representative h-card * If no representative h-card was found, the page has no representative h-card

## Revision as of 17:53, 23 December 2015

Assuming you already have access to a microformats2 parser, the algorithm defined here allows you to determine the representative h-card for a given page.

This algorithm is the microformats2 update to representative-hcard-parsing.

## Algorithm

After parsing the page:

• If the page contains an h-card with uid and url properties both matching the page URL, the first such h-card is the representative h-card
• If no representative h-card was found, if the page contains an h-card with a url property value which also has a `rel=me` relation (i.e. matches a URL in parse_results.rels.me), the first such h-card is the representative h-card
• If no representative h-card was found, if the page contains one single h-card, and the h-card has a url property matching the page URL, that h-card is the representative h-card
• If no representative h-card was found, the page has no representative h-card

### Matching URLs

URLs are to be matched as per the parsing algorithm defined in https://url.spec.whatwg.org:

• Parse the URLs
• If every component matches, the URLs match

## Implementations

Open source implementations of the representative h-card algorithm.

## Back compat

All backcompat for representative h-card parsing should already be handled by the h-card backcompat rules, implemented by a conforming parser.