到目前为止,我希望你很享受之前所读到的内容,并且写一篇热情洋溢的评论,因为接下来我们将会讲到h-review
。
不论是谈话还是阅读,人们经常会表达自己的意见或者看法。我们的大脑随时都会产生评论:
上周我租了一盘DVD,1994年的由Humphrey Bogart饰演Sam Spade的《The Maltese Falcon》,它仍然是我最喜欢的电影,给它一个赞”
“电影: 《The Maltese Falcon》: 评分:10/10”
“我对《Who Framed Roger Rabbit》预期很低,但我还是给了5颗星”
电脑不能识别语言的细微差别,对它来说,这些评论信息只不过是一串字符。它是建立在我们学习过的微格式h-card
和h-event
之上,通过h-review
提供的内容识别模式来解析这些内容的。
和我们学过的其他微格式一样,h-review
也是用根元素来包含其他元素。它的根元素属性值是h-review
,我们可以把它应用到任何恰当的HTML元素上,下面的例子我们用到了article
元素上:
The best detective film ever made
编写一个h-review
用不了多少时间,因为h-review
复用了一些值,这些值你在学习h-card
和h-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-best
和p-worst
来表示:
★★★★★
当然,我们还应该加上一个日期,这将帮助人们判断我们的评价。这对于酒店和餐馆尤为重要。我们将简单的复用h-event
中的time
元素,并为它加上datetime
属性,然后再为它加上dt-reviewed
的class
名:
因为没必要知道是谁写的评论,所以h-review
并没要求我们包含一个名字。但我们可以选择添加一个。因为一个人的身份可以大大提高一个评论的可信度。只要我们想要,就可以使用h-card
来包裹很多信息。但在这里,我们只使用p-reviewer
和h-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-entry
的dt-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链接来表达那个网站和作者的关系:
Andy Clarke
有些作者往往喜欢把博客分割成多页,比如,我们会主页或者存档里使用摘要,然后在文章详细页展示完整的内容。h-entry
可以使用p-summary
定义一个小段落当做文章的摘要:
我们的例子里,我们使用第一段:
The film stars Humphrey Bogart as private investigator
Sam Spade and Mary Astor as his femme fatale client.
用一个属性值为p-summary
的section
父元素将几个元素组合包裹起来,这样就形成了一个长摘要:
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
[…]
[…]
[…]