本文是“A Blog Not Limited”上“Getting Semantic With Microformats”系列文章的翻译,请尊重原文版权。
原文链接:http://www.ablognotlimited.com/articles/getting-semantic-with-microformats-part-6-hresume/
——————————————————————
在两个月前开始了这个系列。我希望能够通过讲述我如何实现他们的细节来传播我对微格式的热爱,鼓励更多的人来支持他。到现在为止,我们已经讨论了:
现在,我们来讨论hResume微格式,他通常被用来为网页内容中的简历添加结构和语义信息。
hResume背景
在我们详细讨论hResume之前,先来了解一些背景知识。
提案规范
hResume是一个处于提案状态的微格式。这是什么意思呢?意味着在成为正式提案之前还会有很多变化,虽然说最终一定会通过。这会不会有很大影响?可能对您来说,但是对我来说影响不大。我非常接受的一点就是现在所有的互联网技术都是日新月异的,这是互联网的特性。
微格式最好的地方
hResume属于简单的微格式之一,只有八个属性。同时,hResume还是一个很复杂的微格式;他利用另外三个微格式:rel-tag,hCard 和 hCalendar。在很多方面上看,这也呈现出微格式最强大的特点:他们使用已有的标准。
最不好的地方
hResume如何利用hCard和hCalendar对于我来说,很多时候都非常让人困惑和有挫败感。也许是因为他还处于提案状态,在最后通过的时候希望这些问题都能够被解决。不过,也可能是因为我没有想好如何把hCard和hCalendar信息更好的同我的简历融合在一起。不过不管是什么原因,从我的角度来说,hResume在某种程度上显示了微格式很不好的地方。并不是只有在使用hResume的时候才有问题。所有的微格式都缺少容易理解的信息和很好的文档。我想这让推动微格式很苦恼。
因为hResume还是提案阶段,所以很难期望有很多人分享这方面的信息和资源。但是微格式的Wiki上还是提供了很详细的定义。因为另外的资源非常少,所以才使得实现这个微格式非常的痛苦和挫败。不过这也是我为什么写这些关于微格式的博客文章,我也希望能够有越来越多的文章出现,越来越多的人谈论他,就会有越来越多更好的资源和信息。
历史
hResume的历史非常简单。不像hCard、hCalendar和hAtom,在他之前没有类似的技术手段。不过,他还是建立在对现有简历格式的研究基础上,例如HR-XML和Europass。
基础知识
跟所有微格式一样,他也有一些规则这里还要说明:
- 属性和子属性通过
class
代码声明。这些代码定义了hResume微格式 - 属性和子属性名称大小写敏感
- “根”属性不能和其他子属性组合在一起。因此,
<p class="hresume contact">
是无效的 - 包含微格式的标记元素跟微格式之间没有直接关系(建议使用有效并具有语义信息的标记)
Profile
在实现hResume的页面中,需要在<head>
中声明他的Profile:
<head profile=”http://microformats.org/wiki/hresume-profile/”>
前面提过,hResume利用hCard和hCalendar来描述信息,所以,如果您也实现了这两个微格式,您还需要包含他们的Profile声明。W3C允许多个Profile声明(使用空格隔开),所以可以同时包含三个Profile:
<head profile="http://microformats.org/wiki/hresume-profile/ http://purl.org/uF/hCard/1.0/ http://purl.org/uF/hCalendar/1.0/“>
由于hCard和hCalendar属于正式标准,所以,他们可以使用组合Profile URL来声明,我推荐使用该声明:
<head profile="http://microformats.org/wiki/hresume-profile/ http://purl.org/uF/2008/03/“>
例子
同前面讲过的微格式不同,我没有在博客上实现hResume。因为真是找不到原因在我的博客上放个人简历,而且我已经在我的设计档案中提供了hResume实现。下面的例子是从我我设计档案中的简历提取出来的。不过真实的信息是非常多的标记元素和信息,所以我删除了一些重复的信息,尽量保持简洁,此外还剔除了用来定义显示风格的class值。
如果需要的话,您可以去我的页面中查看全文的代码。
-
<div class=”hresume”>
-
<div class=”contact vcard”>
-
<img src="/images/personal/emilyLewis.jpg" width="150" height="203" class="photo" alt="Emily Lewis" />
-
<h2 class="fn n" id="emily-hcard-name"><span class="given-name">Emily</span> <span class="additional-name">Paige</span> <span class="family-name">Lewis</span></h2>
-
<p class="adr"><span class="locality">Albuquerque</span>, <abbr class="region" title="New Mexico">NM<abbr> <span class="postal-code">87106</span> <abbr class="country-name" title="United States of America">USA</abbr></p>
-
<ul>
-
<li><a href="mailto:eplewis@gmail.com" class="email">eplewis[at]gmail[dot]com</a></li>
-
<li><a href="http://www.emilylewisdesign.com/" class="url" rel="me">Design Portfolio</a></li>
-
<li><a href="http://www.linkedin.com/in/emilyplewis/" rel="me">LinkedIn profile</a></li>
-
</ul>
-
</div>
-
<h3>Highlights of Qualifications</h3>
-
<ul class=”summary”>
-
<li>Web designer specializing in hand-coded semantic XHTML, cross-browser CSS, progressive enhancement accessibility and usability</li>
-
<li>Expert in the design of corporate web sites, intranets, email campaigns and e-commerce applications</li>
- …
-
</ul>
-
<h3>Technical Expertise</h3>
-
<h4>Web Design & Development</h4>
-
<ul>
-
<li><a href="http://technorati.com/tag/xhtml" class=”skill” rel=”tag”>XHTML</a> — 9 yrs</li>
-
<li><a href="http://technorati.com/tag/css" class=”skill” rel=”tag” >CSS</a> — 9 yrs</li>
- …
-
</ul>
- …
-
<h3>Experience & Accomplishments</h3>
-
<div class="vcalendar">
-
<div class=”experience vevent vcard”>
-
<a class="include nonVisual" href="#emily-hcard-name"></a>
-
<h4 class="title summary">Web Designer</h4>
-
<p class="org fn">Pitney Bowes Business Insight</p>
-
<p><abbr class="dtstart" title="2004-12-01">December 2004</abbr> – present</p>
-
<ul class="description">
-
<li>Designed interfaces and developed XHTML, CSS and graphics for main corporate site, international sites, marketing newsletters, corporate blog, corporate intranet and user conference site</li>
- …
-
</ul>
-
</div>
- …
-
</div>
-
<h3>Education</h3>
-
<div class="vcalendar">
-
<div class=”education vevent vcard”>
-
<h4 class="summary">Web Design & Development Certification</h4>
-
<p class="org fn"><a href="http://www.gwu.edu/index.cfm" class="url" title="Link opens off this site">George Washington University</a>, Center for Professional Development</p>
-
<p><abbr class="dtstart" title="2001-09-01">September 2001</abbr>–<abbr class="dtend" title="2003-06-01">June 2003</abbr></p>
-
<p>GPA 3.8</p>
-
</div>
-
</div>
- …
-
</div>
根属性:hresume
根属性是hresume
,是必须要有的。所有的hResume信息都要包含在被指定class="hresume"
的元素中:
<div class=”hresume”>
必要属性:contact
hResume只有一个必须有的属性,就是contact
,用来表明简历作者的姓名和联系信息,而且只能使用一次。hResume要求其中的联系信息为hCard格式:
-
<div class="contact vcard“>
-
<img src="/images/personal/emilyLewis.jpg" width="150" height="203" class=”photo” alt=”Emily Lewis” />
-
<h2 class=”fn n” id=”emily-hcard-name”><span class=”given-name”>Emily</span> <span class=”additional-name”>Paige</span> <span class=”family-name”>Lewis</span></h2>
-
<p class=”adr”><span class=”locality”>Albuquerque</span>, <abbr class=”region” title=”New Mexico”>NM<abbr> <span class=”postal-code”>87106</span> <abbr class=”country-name” title=”United States of America”>USA</abbr></p>
-
<ul>
-
<li><a href="mailto:eplewis@gmail.com" class=”email”>eplewis[at]gmail[dot]com</a></li>
-
<li><a href="http://www.emilylewisdesign.com/" class=”url” rel=”me”>Design Portfolio</a></li>
-
<li><a href="http://www.linkedin.com/in/emilyplewis/" rel="me">LinkedIn profile</a></li>
-
</ul>
-
</div>
同rel-me
定义统一的身份
在上面的例子中,我在到网站的链接上使用了rel-me:
-
<li><a href="http://www.emilylewisdesign.com/" class="url" rel=”me”>Design Portfolio</a></li>
-
<li><a href="http://www.linkedin.com/in/emilyplewis/" rel=”me”>LinkedIn profile</a></li>
如同我们在第一部分中讨论的,rel="me"
用来定义从关于某人的某个页面到另一个页面的超链接关系。
使用address
的问题
hResume规范中也建议使用<address>
来描述个人联系信息。根据W3C的描述,<address>
元素为:
“… used by authors to supply contact information for a document or a major part of a document such as a form.(译:作者用来为文档或者文档大部分内容提供联系信息)“
在简历的例子中,<address>
语义上是正确的,因为他描述的联系信息是属于简历作者的。不过,您会注意到我在上面的例子中没有使用<address>
,这是因为<address>
不能包含块级元素。当然,我可以使用<span>
来替换所有的<p>
和<ul>
,但是那会让文档失去很多语义信息和结构,所以就没有考虑<address>
。
可选属性:summary
可选属性summary
用来表明求职意向和胜任工作的简介。同样,只能在hResume中使用一次。在我的简历中,我没有描述求职意向,但是却提供了胜任工作的列表:
-
<h3>Highlights of Qualifications</h3>
-
<ul class=”summary”>
-
<li>Web designer specializing in hand-coded semantic XHTML, cross-browser CSS, progressive enhancement accessibility and usability</li>
-
<li>Expert in the design of corporate web sites, intranets, email campaigns and e-commerce applications</li>
- …
-
</ul>
可选属性:skill
可选属性skill
附加在内容元素上,用来表明个人的特殊才能和技术。skill
可以使用多次。规范要求技能的内容需要包含在指定了class="skill"
和rel="tag"
的链接元素中:
-
<ul>
-
<li><a href="http://technorati.com/tag/xhtml" class=”skill” rel=”tag”>XHTML</a> — 9 yrs</li>
-
<li><a href="http://technorati.com/tag/css" class=”skill” rel=”tag”>CSS</a> — 9 yrs</li>
- …
-
</ul>
疯狂的链接
我按照规范要求的实现了skill
属性,但是我非常不喜欢这些链接。我不明白为什么规范需要属性必须要被包含在链接之内,为什么不能包含在内容元素中?我并不能确认这些链接带来任何的价值,尤其是对于可能的雇主来说。事实上,这会让想了解我的人注意力分散。
标签空间似乎无关
另外一个问题就是规范要求这些链接必须实现rel="tag"
。在第一部分中,我们讨论过,rel-tag表示链接的目的地址是一个标签地址。而且rel-tag需要在链接中使用标签内容作为URL的最后一段。由于这些限定,我把所有的skill
链接都指向了Technorati,因为他提供了标签空间。
可是,这就让这些链接更跟我的内容无关了。如果我使用这些链接,我更希望他们能够链接到能给出具体信息的地方,比如Wikipedia,但是他并没有提供这些技能的条目。最后,我可能会把所有能指向wikipedia的链接都换成指向wikipedia,而内容不存在的技能链接就只好删掉。或者只好把整个skill
部分都删除,反正他是可选的。
可选属性:experience
可选属性experience
用来表明个人的工作经历。可以使用多次。规范要求每个工作经历都作为一个“事件”可以使用hCalendar来描述,并且把职务/角色的内容写在hCard中:
-
<div class=”vcalendar”>
-
<div class="experience vevent vcard“>
-
<a class="include nonVisual" href="#emily-hcard-name"></a>
-
<h4 class="title summary“>Web Designer</h4>
-
<p class=”org”>Pitney Bowes Business Insight</p>
-
<p><abbr class=”dtstart” title=”2004-12-01″>December 2004</abbr> – present</p>
-
<ul class=”description”>
-
<li>Designed interfaces and developed XHTML, CSS and graphics for main corporate site, international sites, marketing newsletters, corporate blog, corporate intranet and user conference site</li>
- …
-
</ul>
-
</div>
- …
-
</div>
包含模式:避免冗余
因为规范要求为所有工作职务和角色指定hCard信息,而hCard需要fn
属性(人的格式化名字)这就意味着对于我简历中每条experience
,我需要列出我的名字信息。这真是没有太大意思。
幸好,微格式的家伙们想出了办法──包含模式,允许在页面中使用已经在某个地方定义好的数据。使用包含模式,我就可以在experience
中包含我已经在contact
中定义好的fn
信息了。首先,我需要为我的contact
hCard fn
值定义一个id
,这样我就可以引用他:
<h2 class="fn n" id=”emily-hcard-name”><span class=”given-name”>Emily</span> <span class=”additional-name”>Paige</span> <span class=”family-name”>Lewis</span></h2>
然后,对应所有的experience
,我可以为链接<a>
指定class="include"
,而在链接的href
值中指定到fn
id
:
-
<div class="vcalendar">
-
<div class="experience vevent vcard">
-
<a class=”include nonVisual” href=”#emily-hcard-name”>Emily Paige Lewis</a>
-
<h4 class="title">Web Designer</h4>
-
<p class="org fn">Pitney Bowes Business Insight</p>
-
<p><abbr class="dtstart" title="2004-12-01">December 2004</abbr> – present</p>
-
<ul class="description">
-
<li>Designed interfaces and developed XHTML, CSS and graphics for main corporate site, international sites, marketing newsletters, corporate blog, corporate intranet and user conference site</li>
- …
-
</ul>
-
</div>
- …
-
</div>
此外,包含模式还允许使用<object>
。<object>
比链接要更加具有语义信息,不过他会造成显示问题。
例如,在Safari中:
Chrome也会有类似问题:
Opera不会显示滚动条,但是会显示一大片空白区域:
IE6和IE7也显示一些东西(不知道具体是什么东西):
由于这些显示问题,目前还是推荐使用链接方式,不过同样有问题。其实算不上问题,只是需要记住:链接内部必须有指定内容,以便无障碍访问的屏幕发声程序有东西可以读取。
日期时间设计模式
对于每个工作“事件”,我都使用了推荐的hCalendar方式描述。这意味着我要使用对开始和结束的时间使用日期时间设计模式:
<p><abbr class=”dtstart” title=”1999-11-01″>November 1999</abbr> – <abbr class=”dtend” title=”2004-01-01″>January 2004</abbr></p>
这个模式要求被包含在<abbr>
元素中,该元素使用title
属性值来定义“机器可读”的时间格式,而通过包含的内容来指定人类可读的时间格式。在title
中包含的日期时间格式需要遵循ISO 8601格式要求。
可选属性:education
可选属性education
表明教育“事件”,比如本科教育。education
也可以使用多次。并且同experience
相似,规范要求每个education
“事件”都使用hCalendar格式描述。虽然规范中没有要求,我还是为大学或学院添加了hCard信息描述:
-
<div class=”vcalendar”>
-
<div class=" education vevent vcard“>
-
<h4 class=”summary”>Web Design & Development Certification</h4>
-
<p class=”org fn”><a href=”http://www.gwu.edu/index.cfm” class=”url” title=”Link opens off this site”>George Washington University</a>, Center for Professional Development</p>
-
<p><abbr class=”dtstart” title=”2001-09-01″>September 2001</abbr>–<abbr class=”dtend” title=”2003-06-01″>June 2003</abbr></p>
-
<p>GPA 3.8</p>
-
</div>
-
</div>
我没有使用什么
hResume还支持affiliation和发表作品信息。我没有实现他们因为同我关系不太大。
可选属性:affiliation
可选属性affiliation
表明个人属于/有关系的机构组织。affiliation
可以被使用多次。规范要求其中的组织要使用hCard来描述:
-
<ul>
-
<li class="affliation vcard“><span class=”fn org”>Association for Accounting Marketing</span></li>
-
<li class="affliation vcard“><span class=”fn org”>NM Adobe Users Group</span></li>
-
</ul>
发表作品
hResume没有特定的属性用来描述发表信息,不过,规范推荐使用<cite>
来表明个人发表过的作品信息:
<cite>“Choosing the Best Managed Care Plan”</cite>, New OD, September 1998
工具
上面基本涵盖了hResume的全部,我们看看如何能够使工作容易一些。有一些工具可以帮助实现hResume:
- hResume生成器通过提交信息自动生成hResume
- hResume项目为Word Press构建了hResume插件
- Emurse提供一些生成hResume的模板
- LinkedIn为他900万公共个人信息提供hResume描述
- CV Antix是一个基于网络应用的简历生成器
- Resolio生成基于hResume格式的简历
其他工具
- 有一个Word Press的LinkedIn hResume插件可以从LinkedIn资料中提取hResume数据
- Brian Suda构建了一个beta版本的hResume到简历XML转化的工具
- Optimus 微格式转换器提供从hResume到JSON,XML或者RSS格式的转换
好处
对于我来说,当有人问我为什么要使用微格式?我都会回答“为什么不呢”,标准、语义和微格式对于我来说都是最美妙的东西。
就这么多了?
上面就是对于hResume的描述。但是并不是这个系列的结束。还有一篇文章我计划用来讨论一些在写作这个系列的过程中学到的事情。还计划讨论一下“微格式同RDF”之间的争论。
相关推荐
【标题】: "Stanley Oh微电子硕士课程资料.zip" 是一份来自新加坡国立大学(NUS)的微电子学硕士课程的全面学习资源集合。这个压缩文件包含了一系列与微电子学相关的学术材料,专为深入理解和研究该领域的学生设计。 ...
此外,正确处理SD卡的格式化和恢复问题也是重要的一环,学习资料可能会涵盖这些内容。 5. **SD卡的故障排查与修复** 当SD卡出现无法识别、数据丢失等问题时,可能需要进行故障诊断。这可能涉及到硬件问题、文件...
在这个标题为"COP2000"的资源包中,包含了用于课程设计的软件以及已完成的微程序控制器的设计与实现文件及微程序,这些都是学习计算机组成原理特别是微处理器设计的宝贵资料。 首先,我们要理解什么是微程序控制器...
这本书以PDF格式提供,便于电子设备阅读和携带,为学习微积分提供了方便。多元微积分是数学的一个重要分支,它扩展了单变量微积分的概念,将分析的对象从单一变量扩展到了多个变量。 在《多变元微积分》中,读者将...
微积分解题方法与技巧,PDF格式电子书,不错的参考资料。
标题中的“PIC学习资料---个人学习的心得”表明这是一份关于PIC单片机学习的资源集合,其中可能包含了作者在学习过程中的理解和体会。描述中提到的“串口原理”、“ADC原理”以及“PIC单片机的一些资料”是这份...
文档被描述为“最新的文档学习资料”,说明这是最新版本的教科书,内容可能进行了更新或修订以跟上时代的步伐。由于描述中没有提供更多信息,我们不能确定具体的内容更新或教学方法上的创新。 标签中的“微积分”...
本学习资料重点聚焦于PIC16F877型号,这是一款中档的8位微控制器,拥有丰富的I/O端口和内置功能模块,是许多初学者和工程师入门的首选。 **1. PIC16F877特性** - **结构与架构**:PIC16F877采用哈佛结构,数据和...
通过深入学习这些资料,不仅可以掌握复旦微电子智能卡的技术细节,还能了解到智能卡行业的通用做法和最佳实践,对从事相关领域的研发工作大有裨益。同时,对于想要了解或进入这个领域的初学者来说,这些资料也提供了...
ARM学习资料是为初学者设计的一套全面教程,旨在帮助新手快速掌握ARM架构的基本概念和技术。ARM(Advanced RISC Machines)是一种广泛应用于嵌入式系统、移动设备和服务器的精简指令集计算机(RISC)架构。这个...
根据给定的信息,本文将对C51学习资料书籍中的主要内容进行详细解析,重点围绕8051微控制器的指令集及其硬件手册展开讨论。 ### C51学习资料书籍概览 #### 一、8051指令集 8051微控制器的指令集针对8位控制应用...
这份“origin8.0的学习资料”集合了全面的学习资源,旨在帮助用户深入理解和熟练掌握Origin 8.0的各项功能。 1. **Origin 8.0基础操作** - 安装与激活:了解如何正确安装Origin 8.0,并学习如何激活软件,确保可以...
在本篇中,我们将深入探讨如何进行Android客户端的系统学习,特别是针对名为“微服私访”的App。本文档主要关注服务端的搭建,包括后台服务的接口文档、服务搭建指南以及后台Web项目的相关知识。 首先,让我们从...
这个"计算机组成原理-微程序控制器实验.zip"文件包含了关于微程序控制器的实验资料,包括电路图、运行过程的录屏,这些内容对于学习者深入理解微程序控制器的工作机制非常有帮助。 微程序控制器,也称为微码控制器...
这份"MicroPython 中文教程"包含了丰富的学习资源,包括 PDF、EXE、CHM 和 EPUB 格式,适合不同需求的学习者。无论你是初学者还是有一定经验的程序员,都能从中受益,掌握如何在微控制器上运用 Python 进行开发。 *...
- 提供的PDF文件可能是Silvaco TCAD的学习指南或教程,涵盖了基础操作、进阶技巧以及实例分析等内容,对于初学者来说是非常宝贵的参考资料。 - 学习Silvaco TCAD通常需要熟悉其界面、理解半导体物理基础,以及掌握...
该压缩包文件"can学习资料.rar"包含了相关的学习材料,特别关注了STM32微控制器上的CAN接口应用。 首先,CAN总线的核心特性包括多主站系统、错误检测与恢复机制、优先级仲裁以及灵活的数据帧格式。它使用短帧结构,...
以上这些知识点涵盖了微积分初学者所需学习的主要内容,包括导数的定义、性质、应用,积分学的基础知识,以及求解实际问题的基本技巧。此外,还包含有关书籍的开源、版权及下载信息。对于学习和理解微积分的基础知识...
此外,MP3学习资料可能还包含了关于音频处理的基础知识,如音频信号的数字化、音频格式之间的转换、音频质量评估等。这些知识不仅适用于MP3,还可以扩展到其他音频处理领域,如WAV、AAC等。 总的来说,这份资料是一...
"华为鲲鹏服务器认证的学习资料"包含了一系列全面的学习资源,帮助学习者有效地准备认证考试。这些资料可能包括: 1. **课程讲义**:讲义通常会详细介绍鲲鹏处理器的架构特性,如多核处理能力、内存管理、IO接口、...