到目前为止,我希望你很享受之前所读到的内容,并且写一篇热情洋溢的评论,因为接下来我们将会讲到h-review

不论是谈话还是阅读,人们经常会表达自己的意见或者看法。我们的大脑随时都会产生评论:

上周我租了一盘DVD,1994年的由Humphrey Bogart饰演Sam Spade的《The Maltese Falcon》,它仍然是我最喜欢的电影,给它一个赞”

“电影: 《The Maltese Falcon》: 评分:10/10”

“我对《Who Framed Roger Rabbit》预期很低,但我还是给了5颗星”

电脑不能识别语言的细微差别,对它来说,这些评论信息只不过是一串字符。它是建立在我们学习过的微格式h-cardh-event之上,通过h-review提供的内容识别模式来解析这些内容的。

和我们学过的其他微格式一样,h-review也是用根元素来包含其他元素。它的根元素属性值是h-review,我们可以把它应用到任何恰当的HTML元素上,下面的例子我们用到了article元素上:

The best detective film ever made

编写一个h-review用不了多少时间,因为h-review复用了一些值,这些值你在学习h-cardh-event时已经学过了。首先,像其他微格式一样,我们用p-name来命名评论,但值得注意的是,我们的h-review里的评论项的名字不一定非要一样。

The best detective film ever made

现在我们开始定义我们评论的项目,p-item元素里的内容不一定是企业、人物、地方或者产品,我们可以创新,只要是和项目相关的其他信息。

Who Framed Roger Rabbit, starring the late Bob Hoskins as private investigator Eddie Valiant.

关于这个项目,我们需要更详细的信息,这无关评论。当评论一个人的时候,我们可以嵌入h-card,描述一个企业或者场地的位置时使用h-adr,产品评论使用h-product,其他类型的项目使用h-item来表示。这是一个特定项目的微格式结构信息。当我们正在评论一部电影,而不是一个业务或者产品,我们会选择h-item,并把它添加到我们的p-item元素上。

Who Framed Roger Rabbit, starring the late Bob Hoskins as private investigator Eddie Valiant.

如果没有意见,一条评论是不会有多大用处的,因此我们将使用e-description。如果评论很简短,那么把这个属性值添加到列表或者是其他元素上,这个例子中,我们使用了段落:

How much do I know about show business? Only that there is no business like it, no business I know.

如果描述包含多个段落或者包含其他HTML元素,那么应该用一个元素把它们包起来,再把e-description赋值给这个包裹元素。如果我们的评论是我说的这种情况,那么使用最适当的方法是使用一个引用:

How much do I know about show business? Only that there is no business like it, no business I know.

A Classic film has to work on several different levels and animated action movie Who Framed Roger Rabbit scores on all of them. It's a fantastic children's film with characters like Roger, the Weasels and Benny the Cab for them to enjoy. It also plays perfectly as a detective story for adults. And who will ever forget Jessica Rabbit?

你应该能猜到我们如何在评论里包含一个URL,之前在h-card和h-event里已经看到过了。就是u-url属性值:

Canonical Permalink

星评级是一个用来表明肯定或否定的非常流行的评论方式。它帮助人们一眼就能看出来一个项目是好是坏。在很多评论和购物网站,我们都能看到它们。我们将按照惯例,用星星来创建一个从0(最坏)到5(最好)的评级范围。

用五颗星来评价《Who Framed Roger Rabbit》,我们将使用HTML5的data元素。如果你之前还没有用过data元素,那么很简单,data是处理人类可读的、可见的元素部分。在我们的星星评级的例子中,使用了能提供同样信息的value属性,这是一种机器可读的形式:

★★★★★

如果我们们需要更具体的,而不是一个平均的评价等级,那么我么可以分别使用p-bestp-worst来表示:

★★★★★ 

当然,我们还应该加上一个日期,这将帮助人们判断我们的评价。这对于酒店和餐馆尤为重要。我们将简单的复用h-event中的time元素,并为它加上datetime属性,然后再为它加上dt-reviewedclass名:

因为没必要知道是谁写的评论,所以h-review并没要求我们包含一个名字。但我们可以选择添加一个。因为一个人的身份可以大大提高一个评论的可信度。只要我们想要,就可以使用h-card来包裹很多信息。但在这里,我们只使用p-reviewerh-card来添加评论者的名字:

Andy Clarke

接下来,你将了解h-entry,它是为出版联合内容,如新闻、博客和播客而设计的微格式。h-entry表示单个条目,我们可以和其他条目组合使用,我们来写一个h-entry博客。

微格式社区建议,我们应该用“最精确语义的HTML构建块对象等”。

这是我们最初的HTML,开始用一个标题,后面跟一个段落:

The Maltese Falcon

The film stars Humphrey Bogart as private investigator Sam Spade and Mary Astor as his femme fatale client.

现在我们知道如何像这样单独的使用article元素,我们将在那篇文章里组合使用这些元素:

The Maltese Falcon

The film stars Humphrey Bogart as private investigator Sam Spade and Mary Astor as his femme fatale client.

把一篇文章转换成h-entry,我们将在每个单独条目的根元素上添加h-entry属性值:

The Maltese Falcon

The film stars Humphrey Bogart as private investigator Sam Spade and Mary Astor as his femme fatale client.

h-entry里包括文章、博客和播客的标题在内的一些属性是隐藏的,但是每个属性是可选的,像发布日期和作者姓名之类的最好是在每个条目里显式的添加,这些属性你应该已经比较熟悉。我们先为主标题标记p-name属性:

The Maltese Falcon

这里需要说清一点,日期或者时间指的是一篇文章的发布日期,我们用h-entrydt-pulished属性值:

如果h-entry的发布日期出现更新,我们应该把dt-published值更改为dt-updated:

最后我们添加一个作者到h-entry里,你应该已经很熟悉h-card,这里我们将结合使用h-card里的p-author属性值。

Andy Clarke

不需要使用p-name或者u-url属性值,h-card里都隐含了这些。

但是,这里为什会用address元素?

前面表述过,address元素并不用来描述物理地址,但用来描述作者的联系信息绝对是恰当的。因为我们添加了一个指向作者网站的链接,所以我们需要用HTML链接来表达那个网站和作者的关系:

有些作者往往喜欢把博客分割成多页,比如,我们会主页或者存档里使用摘要,然后在文章详细页展示完整的内容。h-entry可以使用p-summary定义一个小段落当做文章的摘要:

我们的例子里,我们使用第一段:

The film stars Humphrey Bogart as private investigator Sam Spade and Mary Astor as his femme fatale client.

用一个属性值为p-summarysection父元素将几个元素组合包裹起来,这样就形成了一个长摘要:

The film stars Humphrey Bogart as private investigator Sam Spade and Mary Astor as his femme fatale client.

The story follows a San Francisco private detective and his dealings with three unscrupulous adventurers, all of whom are competing to obtain a jewel-encrusted falcon statuette.

p-summary里包含一个永久的全文链接,并出现在多个页面时,就很重要了。需要用rel属性,并赋值为bookmark,来明确p-summary的链接指向:

 
Permalink

现在人们通常在几个渠道发布自己的内容。例如,你可能会在自己的博客上发布一条。也可能在其他媒介上发布,用来获得更多的受众。如果你添加了一个指向其它地方的入口链接,那么使用u-syndication来标识那个链接为联合内容就尤为重要:

 
Also published on Medium

到目前位置,我们已经可以让单个h-entry工作起来。但是很多网站首页或者存档页有相关文章列表。这些条目的组合做称作h-feed。我们需要一个合适的父元素来组合一个feed,这里我们使用了section元素。结合上下文的意思,我们会给它一个描述性的标题:

Hardboiled archives

[…]
[…]
[…]