回想一下你每天在网上看到的一些事件信息,你会发现一些关于会议、体育赛事、音乐会或者电影里的细节。事件信息有时出现在组织中,有时出现在自然语言中。例如,我可能会在我的博客中写道,“今年11月份,我在曼彻斯特的艾伯特大厅看了Kacey Musgraves的演唱会”。

你不必去网上找一些很难找的事件信息,网站与网站之间使用HTML来标记事件信息的差别很大。这是Kacey Musgraves演唱会在Ticketmaster上的标记:

 
    
      
Albert Hall Manchester, GB Mon 16/11/15 19:00

Seetickets使用不同的HTML发布了相同的事件:

Kacey Musgraves

Albert Hall, Manchester

at 7:00 PM

人们可以很容易理解它包含一个事件,但是这种HTML没法帮助机器去理解。这使得微格式成了完美的解决方案。

一个日历事件很可能包含:

我们将构建一个单独的事件,用h-event属性值来指定根元素,然后在一个元素上使用p-name,甚至是u-url来表示,以保证我们的事件足够简单。

The Maltese Falcon

我们需要更多有用的信息来展示《The Maltese Falcon》,然而,我们通过在article嵌入一个使用p-name属性值的主标题来区分开:

The Maltese Falcon

接下来,我们在一个适当的HTML元素上使用属性值p-summary,来添加一个简短的摘要,这里我们使用了一个段落:

The Maltese Falcon

A special showing of the remastered mystery that kicked off the film noir genre of the 1940s…

如果我们的摘要包含多个段落,那么我们可以把标题、段落、列表或者任何其他元素放到一个section中划分出来做摘要。而不要在一个h-event里包含多个段落的摘要,否则,这将是一个无效的事件。

让人们知道事件在哪发生,只需要在一个元素上应用属性值p-location,在这个例子里, 场馆名字用span包起来:

Showing at The Scala Cinema and Art Centre

我们应该需要提供更多关于地点的信息,比如地址,我们应该为场地创建一个h-adr元素,并把它嵌入到h-event里面。h-adr里包含相同的地址,这跟我们使用h-card时一样。

47 High Street Prestatyn Denbighshire Wales

如果这个事件中有个网站,那么我们将会使用和构建h-card时一样的u-url属性值:

The Scala
Cinema Website

我们构建的h-event微格式几乎要完整了,但是还缺少了开始日期和到场时间。首先,我们使用time元素,并为它添加属性值datetime来标记开始时间:

显而易见,这是一个开始日期,我们还需要给time元素添加一个dt-start属性值:

这个事件是从傍晚持续到晚上10点。所以我们可以把这个时间也添加到我们的datetime属性里:

微格式按模块化、可嵌入来设计的,因此我们可以很容易把一个人的h-card嵌入到一个h-event里。

还记得之前我们为《The Maltese Falcon》标记位置信息吗?我们为场馆名添加了属性值p-location:

Showing at The Scala Cinema and Art Centre

现在需要为事件添加更精确的位置信息,所以我们要创建一个h-card,嵌入到我们的h-event里。

The Scala Cinema and Art Centre 47 High Street Prestatyn Denbighshire Wales