Joomla! 语义(Microdata,RDFa)
目标是使用 JMicrodata 库在 CMS 中实现 Microdata 语义,并创建一个 RDFa 库,以便您可以选择要显示的语义类型:Microdata 或 RDFa。
项目详情
此类项目涉及对网络标准领域的相当研究,并必须维护有效的 HTML。在 2013 年 Google 夏季代码的最后一版中,在项目: 改进 Joomla! 前端语义和可访问性 中,创建了 JMicrodata 库,该库显示语义微数据。该库已合并到 Joomla! CMS 库中,并从 3.2 版本开始可用。
目前该库没有用于在 CMS 中实现微数据语义,但 3.3 版本将微数据语义引入了核心组件的两个布局中,然而这种实现只是一个简单的硬编码 HTML 版本的微数据语义。
该解决方案已经讨论了很长时间,不幸的是,微数据以及 JMicrodata 库的关注和反馈是在库创建之后而不是在设计和发展期间到来的。幸运的是,现在有大量的反馈,我们知道了需要什么。简而言之,决定在 3.3 版本中实现硬编码的微数据版本,是因为 JMicrodata 库不像我们希望的那样简单直观。JMicrodata 库的实现稍微有些复杂,因为它需要相当详细的编程技术知识。
目前还没有理想的解决方案来在 CMS 中实现 JMicrodata 库,因为拉取请求周围的讨论提出了几个想法和提出的解决方案。即使显示一些简单的 HTML 标签看起来很容易,但如果我们想要有在 558 种不同的微数据类型之间切换的可能性,那么问题就会变得复杂。
让我们看看为什么在 3.3 版本中暂时实现了硬编码版本
JMicrodata 做什么
- 有动态切换微数据类型的能力,您只需更改类型(有 558 种不同类型可供选择)。
- 显示验证过的语义,库会负责以正确的格式显示数据(例如,所有日期都使用 ISO 标准)。
- 通过简单的开关,在Joomla中启用/禁用微数据语义,而不是需要修改模板覆盖。
- 回退,你永远不会丢失任何有意义的语义(例如,如果你切换页面类型并且没有作者属性,它将回退到具有名称属性的Person类型)。
即使它有一些很酷的功能,也存在一个小问题,例如
Written by <?php echo $microdata->content('P.Alex')->property('author')->fallback('Person', 'name')->display();?>
将渲染
Written by <span itemprop='author' itemscope itemtype='https://schema.org/Person'> <span itemprop='name'> P.Alex </span> </span>
正如你所看到的,仅为了显示P.Alex这个词,就有太多不简单也不直观的PHP代码。因此,这个项目的目标是简化并创建一个解决方案来实现该库在CMS中的实施。这个实现需要简单直观,这样在底层,复杂的工作由JMicrodata库来完成
话虽如此,新的路线图是
- 有动态切换微数据类型的能力,您只需更改类型(有 558 种不同类型可供选择)。
- 显示验证过的语义,库会负责以正确的格式显示数据(例如,所有日期都使用 ISO 标准)。
- 通过简单的开关,在Joomla中启用/禁用微数据语义,而不是需要修改模板覆盖。
- 回退,你永远不会丢失任何有意义的语义(例如,如果你切换页面类型并且没有作者属性,它将回退到具有名称属性的Person类型)。
- 在CMS中实现和使用库的简单直观方式
- 在Microdata和RDFa语义之间切换的可能性
正如你在当前的路线图中注意到的,为了能够在Microdata和RDFa语义之间切换,应该创建一个RDFa库。这个库需要在Joomla! CMS之外也能重用。为了实现这些功能,我必须更改配置选项的用户界面以及com_content、com_contact等各个组件的输出,以及默认模板。
如果你想帮忙,贡献,或者有解决这些问题的可能解决方案或想法,我们可以讨论一下。(@PAlexcom)
关于我
我参加了2013年Google Summer of Code的前一版,与Joomla组织合作的项目是:改进Joomla!前端语义和可访问性(Improve Joomla! Frontend Semantics & Accessibility)。在GSoC项目期间,我创建了JMicrodata库,该库现在从3.2版开始在CMS中可用。
我自从1.5版以来就使用Joomla!构建我的网站
我叫亚历山德鲁·普特尼亚努(P.Alex),23岁,相信我,我热爱网络。现在,我住在意大利,在乌迪内大学学习网络技术和多媒体。我每天早上醒来都渴望学习新事物,并总是试图拓宽我的知识。
结论
简而言之,在项目结束时,应该创建一个新的RDFa库,并以简单易用的方式在Joomla CMS中实现Microdata和RDFa。我想感谢Joomla组织给我这个机会来从事这个伟大的项目。还要特别感谢Ruth Cheesley和Matt Thomas的指导,以及Google Inc.提供的惊人的“Google Summer of Code”项目,该项目帮助开源组织。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场
通过接受,您将访问 https://magazine.joomla.net.cn/ 以外第三方提供的服务
评论