日历记事本
The hCalendar Microformat is closest in terms of usage and, arguably, usefulness to hCard. Just as you may like to keep your contacts’ details up to date and synchronized between your various devices (phone, PDA, and your desktop or laptop computer) and online services (web-based email, contact and calendar services, and so on), you probably feel the same way about calendar events. As with hCard, there’s an existing standard for calendar events, namely the IETF iCalendar standard. This standard underpins calendar applications such as Google Calendar, Lotus Notes, and Apple’s iCal, to name but a few. If you were to save one of these events from your calendar application and view it in a text editor, you’d see the data marked up quite clearly. Let’s see this in action. I have a tentative date to go and see some camel racing, which appears in Apple’s iCal as shown in the image below. I can drag that calendar entry to my desktop (in your application, it may be a case of right-clicking and selecting Save As), which creates a file with an extension of .ics. Opening that file in a text editor reveals the following, somewhat verbose, underlying data:
hCalendar Microformat在用法方面和与hCard的效用最接近。 正如您可能希望使联系人的详细信息保持最新并在各种设备(电话,PDA和台式机或笔记本电脑)和在线服务(基于Web的电子邮件,联系人和日历服务等)之间保持同步一样,您可能对日历事件有相同的感觉。 与hCard一样,存在日历事件的现有标准,即IETF iCalendar标准 。 该标准为日历应用程序(例如Google日历,Lotus Notes和Apple的iCal)提供了支持。 如果要从日历应用程序中保存这些事件之一,并在文本编辑器中查看它,则会看到标记清楚的数据。 让我们来看看实际情况。 我有一个暂定的约会去看一些骆驼赛车,如下图所示,它出现在Apple的iCal中。 我可以将该日历项拖到我的桌面上(在您的应用程序中,可能是右键单击并选择另存为的情况),这将创建一个扩展名为.ics的文件。 在文本编辑器中打开该文件将显示以下一些冗长的基础数据:
BEGIN:VCALENDAR VERSION:2.0 X-WR-CALNAME:Camel racing? PRODID:-//Apple Computer\, Inc//iCal 2.0//EN X-WR-RELCALID:046F4A00-D853-4F02-BE7B-7DF6B3CD49A7 X-WR-TIMEZONE:Asia/Dubai CALSCALE:GREGORIAN METHOD:PUBLISH BEGIN:VTIMEZONE TZID:Asia/Dubai LAST-MODIFIED:20080120T212715Z BEGIN:STANDARD DTSTART:19321213T204552 TZOFFSETTO:+0400 TZOFFSETFROM:+0000 TZNAME:GST END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTART;TZID=Asia/Dubai:20080124T070000 DTEND;TZID=Asia/Dubai:20080124T090000 SUMMARY:Camel racing? UID:64923D95-98E9-47D7-8AD7-94D62F26B499 SEQUENCE:7 DTSTAMP:20080119T171029Z BEGIN:VALARM ACTION:AUDIO TRIGGER:-PT1H30M X-WR-ALARMUID:2C3DEF4A-4E7E-4FE5-95CF-E86321C9C5AF ATTACH;VALUE=URI:Basso END:VALARM END:VEVENT END:VCALENDARQuite a lot of the information there has been generated automatically by iCal, but you can create a valid hCalendar entry using a handful of data items gleaned from the above, namely:
iCal已经自动生成了很多信息,但是您可以使用上面收集的一些数据项来创建有效的hCalendar条目,即:
summary, for the title of the event
summary ,用于事件的标题
dtstart, for the start date and time
dtstart ,表示开始日期和时间
dtend, for the end date and time
dtend ,表示结束日期和时间
location, for the physical location at
location ,用于位于的实际位置
which the event will take place
该事件将发生
You may also want to add a description, which allows you to expand on the simple summary, although this may not always be necessary or desirable. To mark the camel racing event up using hCalender, you need to wrap it in a container of some kind (most likely a div, but you could use any HTML element) with the class of “vcalendar”. If that seems confusing, remember that Microformats reuse existing naming conventions, but apply them to HTML, so while we refer to hCalendar, it’s marked up using the name defined in iCal:
您可能还想添加一个description ,以使您可以扩展简单的summary ,尽管这不一定总是必要或期望的。 要使用hCalender标记骆驼赛车事件,您需要将其包装在带有“ vcalendar”类的某种容器中(最有可能是div ,但您可以使用任何HTML元素)。 如果这看起来令人困惑,请记住,微格式会重用现有的命名约定,但会将其应用于HTML,因此当我们引用hCalendar时,它使用iCal中定义的名称进行了标记:
<div class="vcalendar"> ⋮ </div>Once the outer container is marked up in this way, Microformat parsers (for example, the Tails or Operator extension) will expect Microformat content relating to hCard to appear inside. The next thing to do is to identify a specific event using the “vevent” class name:
一旦以这种方式标记了外部容器,Microformat解析器(例如Tails或Operator扩展名)将期望与hCard相关的Microformat内容出现在内部。 接下来要做的是使用“ vevent ”类名称来标识特定事件:
<div class="vcalendar"> <p class="vevent"> ⋮ </p> </div>At this point, there are numerous pieces of data that you could include beyond those mentioned above, but for the sake of this example, we want to know what the event is, when it’s happening, and where:
到目前为止,除了上面提到的那些数据之外,您还可以包含许多数据,但是出于这个示例的目的,我们想知道事件是什么,何时发生以及在哪里:
<div class="vcalendar"> <p class="vevent"> Tentative event: <span class="summary">Camel Racing</span> (<span class="location">Dubai</span>), Thursday 24th Jan, <abbr class="dtstart" title="20080124T0700">7</abbr> - <abbr class="dtend" title="20080124T0900">9am</abbr> </p> </div>Note the format of the time stamp—it uses the abbr element, indicating that the content inside the opening <abbr> and closing </abbr> tags is an abbreviation of some kind. So, for humans, the easy-to-read time of 9am is displayed, but the Microformats parsers (also known as the machines) need a specific date/time stamp, which is provided in the title attribute of the abbr element, in the format YYYY-MM-DDTHH:MM, where the T is a separator between the data and time sections.
请注意时间戳记的格式-它使用abbr元素,表示开始<abbr>和关闭</abbr>标记内的内容是某种缩写。 因此,对于人类来说,显示的是易于读取的9am时间,但是Microformats解析器(也称为机器)需要特定的日期/时间戳,该日期/时间戳在abbr元素的title属性中提供。格式为YYYY-MM-DDTHH:MM,其中T是数据部分和时间部分之间的分隔符。
Note that there are some concerns that the fact that hCalendar uses the abbr and title in this way actually makes it harder for people using assistive devices such as screen readers, as they may prefer to announce the content of the title attribute over the human-friendly contents inside the abbr element. At the time of writing, the debate about whether a solution is required for this—and what form it may take—is ongoing (for a good overview of the problem, read the posting on Webstandards.org at http://snipurl.com/hcal-access), and be aware that there’s a possibility that the format for this may change in a future iteration of the hCalendar standard.
请注意,有人担心hCalendar以这种方式使用abbr和title这一事实实际上使使用辅助设备(例如屏幕阅读器)的人更难,因为他们可能更愿意宣布title属性的内容而不是人性化的abbr元素内的内容。 在撰写本文时,有关是否需要解决方案以及采取何种形式的争论仍在进行中(有关问题的详细概述,请阅读Webstandards.org上的文章, 网址为http://snipurl.com)。 / hcal-access ),请注意,此格式可能会在将来的hCalendar标准迭代中更改。
Here’s a very basic event marked up in hCalendar format:
这是一个用hCalendar格式标记的非常基本的事件:
<div class="vcalendar"> <p class="vevent"> Tentative event: <span class="summary">Camel Racing</span> (<span class="location">Dubai</span>), Thursday 24th Jan, <abbr class="dtstart" title="2008-01-24T07:00">7</abbr> - <abbr class="dtend" title="2008-01-24T09:00">9am</abbr> </p> </div>With the way that the Web’s going, and with the increasing use of online calendar services and social software that requires (or would greatly benefit from) data sharing, it’s desirable to have a standard for marking up event details that can be read easily by humans, but which allows that data to be shared and ported from web application to web application, to desktop applications, and to hand-held devices. If you’re in the business of publishing any event details within your web site, you’d do well to consider marking them up using hCalendar formatting.
随着Web的发展,以及需要(或将从中受益于)数据共享的在线日历服务和社交软件的日益普及,人们希望有一种标准来标记事件明细,使人们可以轻松阅读,但允许该数据共享并从Web应用程序移植到Web应用程序,桌面应用程序和手持设备。 如果您打算在网站上发布任何事件详细信息,则最好考虑使用hCalendar格式对其进行标记。
翻译自: https://www.sitepoint.com/hcalendar/
日历记事本
相关资源:一个简单的方便的日历记事本