feat(Experimental): add support for metaformats #229
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #224
Based on PR #226
Checklist
Changes to parsing behaviour
Adds an optional experimental option to fallback to parsing meta tags. This was inspired by the metaformats spec but with some significant changes.
og:typefeaturedrather thanphotoonog:imageto avoid implying a photo post (matches opengraph-mf2 implementation)The parsing approach needed to change significantly from the metaformats spec due to a few challenges with tag order. By parsing all the meta tags before creating the microformats item, we can prefer some tags over others and also handle complex tags like
og:image+og:image:alt.Example input covered by new behaviour
Source HTML of #224
Example output from new behaviour
{ "rels": "abbreviated", "rel-urls": "abbreviated", "items": [ { "properties": { "name": [ "Support metaformats fallback option · Issue #224 · microformats/microformats-parser" ], "summary": [ "Describe the feature An experimental option should be available to use meta tags as a fallback for sites that don't natively implement microformats. The Metaformats spec defines changes to the micr..." ], "featured": [ { "value": "https://opengraph.githubassets.com/ca089fa87f65c6c7175965401c8881676db8e741dd58f52428850467c8578962/microformats/microformats-parser/issues/224", "alt": "Describe the feature An experimental option should be available to use meta tags as a fallback for sites that don't natively implement microformats. The Metaformats spec defines changes to the micr..." } ], "url": [ "https://github.com/microformats/microformats-parser/issues/224" ], "publication": [ "GitHub" ] }, "lang": "en", "type": [ "h-entry" ] } ] }Other changes
isTag('tagName')helper for finding child nodes.Other considerations
og:localefor the lang?