Joomla! 语义(Microdata、RDFa)
目标是使用 JMicrodata 库在 CMS 中实现 Microdata 语义,并创建一个 RDFa 库,以便您可以选择要显示的语义类型:Microdata 或 RDFa。
项目详情
此类项目涉及对网络标准领域的相当多的研究,并必须保持有效的 HTML。在 2013 年 Google Summer of Code 的最后一版中,通过项目: 改进 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中简单直观地实现和使用库的方法
- 在微数据和RDFa语义之间切换的可能性
正如你注意到的当前路线图中,应该创建一个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中实现微数据和RDFa。我想感谢Joomla组织给我这个机会来从事这个伟大的项目。此外,特别感谢Ruth Cheesley和Matt Thomas的指导,以及Google Inc.提供的令人惊叹的"Google Summer of Code"项目,该项目帮助开源组织。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不与Joomla项目的官方立场一致
通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部的第三方提供的服务
评论