h-review: Difference between revisions
(→Parser Compatibility: item handling) |
Cleverdevil (talk | contribs) No edit summary |
||
Line 130: | Line 130: | ||
== Examples in the Wild == | == Examples in the Wild == | ||
* … add any h-review examples you find in the wild | * … add any h-review examples you find in the wild | ||
* https://cleverdevil.io/2015/blood-rites-book-six-of-the-dresden-files | |||
== Implementations == | |||
* [https://github.com/cleverdevil/Known-Reviews Reviews plugin for Known CMS] by [https://cleverdevil.io Jonathan LaCour]. | |||
== Validating == | == Validating == |
Revision as of 03:49, 21 August 2015
<entry-title>h-review</entry-title> Tantek Çelik (Editor)
h-review is a simple, open format for publishing reviews on the web. h-review is one of several open microformat draft standards suitable for embedding data in HTML/HTML5 on the web.
h-review is the microformats2 update to hReview.
Per CC0, to the extent possible under law, the editors have waived all copyright and related or neighboring rights to this work. In addition, as of 2024-11-23, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.
Example
Here is a simple review example:
<div class="h-review">
<h1 class="p-name">Microformats: is structured data worth it?</h1>
<blockquote>
<a class="p-item h-item" href="http://microformats.org">Microformats</a> are the simplest way to publish structured data on the web.
</blockquote>
<p>
<data class="p-rating" value="5">★★★★★</data>
Published <time class="dt-reviewed" datetime="2013-06-12 12:00:00">12<sup>th</sup> June 2013</time>
by <a class="p-reviewer h-card" href="http://example.com">Joe Bloggs</a>.
</p>
<div class="e-description">
<p>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).</p>
</div>
</div>
Parsed JSON:
{
"items": [
{
"type": [
"h-review"
],
"properties": {
"name": [
"Microformats: is structured data worth it?"
],
"item": [
{
"value": "Microformats",
"type": [
"h-item"
],
"properties": {
"name": [
"Microformats"
],
"url": [
"http://microformats.org"
]
}
}
],
"rating": [
"5"
],
"reviewed": [
"2013-06-12 12:00:00"
],
"reviewer": [
{
"value": "Joe Bloggs",
"type": [
"h-card"
],
"properties": {
"name": [
"Joe Bloggs"
],
"url": [
"http://example.com"
]
}
}
],
"description": [
{
"value": "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).",
"html": "<p>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).</p>"
}
]
}
}
]
}
Get started
The class h-review
is a root class name that indicates the presence of an h-review.
p-name, p-item, p-rating, dt-reviewed, p-reviewer, e-description and the other property class names listed below defined elements as properties of the h-review.
The class h-item
is a root class name that indicates an embedded h-item for the p-item property.
The class h-card
is a root class name that indicates an embedded h-card for the p-reviewer property.
See microformats2-parsing to learn more about property class names.
Properties
h-review properties, inside an element with class h-review:
p-name
- name of the reviewp-item
- 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).p-reviewer
- person who authored the review, optionally with an embedded h-carddt-reviewed
- date time of when the review was writtenp-rating
- value from 1-5 indicating a rating for the item (5 best).p-best
- define best rating value. can be numerically lower than worst.p-worst
- define worst rating value. can be numerically higher than best.e-description
- the full text written evaluation and opinion of the reviewerp-category
- freeform categories or tags applied to the item by the revieweru-url
- review permalink URL
All properties are optional.
Status
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.
h-review is ready to use and implemented in the wild.
Property Details
(stub, add any property explanations here)
Examples in the Wild
- … add any h-review examples you find in the wild
- https://cleverdevil.io/2015/blood-rites-book-six-of-the-dresden-files
Implementations
Validating
Test and validate microformats2 markup in general with:
- https://pin13.net/mf2/ - enter your markup directly
- https://pin13.net/ - enter a URL to a page to test where it says "Microformats Parser"
Backward Compatiblity
Publisher Compatibility
For backward compatibility, you may wish to use classic hReview classnames in addition to the more future-proof h-review properties, for example:
<div class="h-review hreview">
<h1 class="p-name fn">My great review</h1>
</div>
Parser Compatibility
Microformats parsers should detect classic properties and parse them as microformats 2 properties. If an "h-review" is found, don't look for an "hReview" on the same element.
Compatibility root class name: hreview
Properties: (parsed as p- plain text unless otherwise specified)
summary
parse asp-name
fn
- parse as p-name of the item being reviewed (p-item h-item p-name)photo
- parse as u-photo of the item being reviewed (p-item h-item u-photo)url
- parse as u-url of the item being reviewed (p-item h-item u-url)item
(without vcard, vevent, hproduct) - parse as p-item h-item including backcompat nested properties:fn
- parse as p-name of the item being reviewed (p-item h-item p-name)photo
- parse as u-photo of the item being reviewed (p-item h-item u-photo)url
- parse as u-url of the item being reviewed (p-item h-item u-url)
item vcard
- parse as p-item h-card including backcompat hCard parsingitem vevent
- parse as p-item h-event including backcompat hCalendar vevent property parsingitem hproduct
- parse as p-item h-product including backcompat hProduct parsingreviewer
- including compat root vcard in the absence of h-carddtreviewed
- parse as dt-rating
best
worst
description
- parse as e-rel=tag
- parse as p-categoryrel="self bookmark"
- parse as u-url. note thatrel
attribute value is treated as a space separated set, thus any presence of "self" and "bookmark" within such a set in a rel value is accepted.
Note: The hReview format has three properties which make use of rel
attribute, these are tag
, permalink (via the self
and bookmark
values) and license
. Microformats 2 parsers SHOULD map these URLs into the page scoped rel collection.
Background
h-review is based on the existing hReview specification.