Extension:Cargo

Cargo 是MediaWiki的一项扩展,可以提供轻量的方式来存储和查询数据,这些数据是通常通过信息框(infobox)等模板调用的。 Cargo在概念上类似于Semantic MediaWiki扩展,但是有许多优点,比如容易安装,容易使用。

Cargo将所有的数据存在数据库表中,而这些表可以被MediaWiki自己的数据库(默认)或分开的数据替换。 在大多数情况下,每个模板都会将其数据存储在单个数据库表中,每个相关模板参数对应一列。 有少量例外:包含数组/列表以及包含地理位置的字段的处理会更复杂一些,这是因为大多数数据库系统缺乏对这些类型的原生支持。 多个模板也可以将它们的数据存储在同一个数据库表中。

这个扩展定义了许多解析器函数,以下三个最为重要:

  • #cargo_declare - 位于模板的‎‎<noinclude>部分,为表定义概要。
  • #cargo_store - 为Cargo的表存储一行,通常位于模板的‎<includeonly>部分。
  • #cargo_query - 查询一个或多个Cargo数据表,使用SQL组件。

还定义了以下解析器函数:

  • #cargo_attach - 定义一个模板加入其他模板声明的行。
  • #cargo_compound_query - 在一个位置显示多次查询结果。
  • #cargo_display_map - 显示一个单点的地图。
  • #recurring_event - 输出反复发生时间的日期,为了#cargo_store使用。

Cargo还定义了各种接口,用于查看和向下钻取此存储的数据。

Cargo使用MySQL和PostgreSQL数据库系统测试和工作。 理论上也支持SQLite,但是并没有充分测试,而且有可能无法正常工作。

Cargo扩展要求MediaWiki的版本至少为MediaWiki 1.32+。

本页顶部的导航框列举了一些关于Cargo的页面,可以了解更多Cargo的知识,以及如何工作、如何使用和如何安装。

参见