Extension:Cargo

From mediawiki.org
MediaWiki extensions manual
Cargo
Release status: stable
Implementation Special page , API , Parser function
Description An extension that allows for the storage and querying of data contained within templates.
Author(s) Yaron Koren <yaron57@gmail.com> (Yaron Korentalk)
Latest version 3.4.1 (February 2023)
Compatibility policy Master maintains backward compatibility.
MediaWiki 1.35+
Database changes Yes
Composer mediawiki/cargo
Tables cargo_tables
cargo_pages
License GNU General Public License 2.0 or later
Download
Example A page containing various calls to #cargo_query
  • $wgCargoFileDataColumns
  • $wgCargoDrilldownLargestFontSize
  • $wgCargoDecimalMark
  • $wgCargoDefaultStringBytes
  • $wgCargoAllowedSQLFunctions
  • $wgCargoHideNamespaceName
  • $wgCargoPageDataColumns
  • $wgCargoMaxVisibleHierarchyDrilldownValues
  • $wgCargoDrilldownSmallestFontSize
  • $wgCargoIgnoreBacklinks
  • $wgCargoRecurringEventMaxInstances
  • $wgCargoDefaultMapService
  • $wgCargoStoreUseTemplateArgsFallback
  • $wgCargoLegacyNullLuaFieldsAsEmptyString
  • $wgCargoTablesPrioritizeReplacements
  • $wgCargoDigitGroupingCharacter
  • $wgCargoDefaultQueryLimit
  • $wgCargoDrilldownNumRangesForNumbers
  • $wgCargo24HourTime
  • $wgCargoMaxQueryLimit
  • $wgCargoDrilldownUseTabs
  • $wgCargoMapClusteringMinimum
  • $wgCargoDrilldownMinValuesForComboBox
Quarterly downloads 12 (Ranked 158th)
Translate the Cargo extension
Issues Open tasks · Report a bug

Cargo is an extension to MediaWiki that provides a lightweight way to store and query the data contained within the calls to templates, such as infoboxes. It is similar in concept to the Semantic MediaWiki extension, but offers a number of advantages, including ease of installation and ease of use.

Cargo stores all its data in database tables, which can be placed in either MediaWiki's own database (the default) or a separate database. For the most part, each stored template gets its data stored in a single DB table, with a column for each relevant template parameter. There are a few exceptions to this: the handling of template fields that hold arrays/lists of values, and of fields that hold geographical coordinates, is more complex, due to poor native handling of those data types in most DB systems. And multiple templates can be set to all store their data in one DB table.

The extension defines a number of parser functions; these three are the most important:

  • #cargo_declare - placed within the ‎<noinclude> part of a template; it defines the schema for a table.
  • #cargo_store - stores one row to a Cargo table; usually placed within the ‎<includeonly> part of a template.
  • #cargo_query - queries one or more Cargo data tables, using SQL components.

The other defined parser functions are:

  • #cargo_attach - defines a template as adding rows to a table declared elsewhere.
  • #cargo_compound_query - displays the results of multiple queries in one place.
  • #cargo_display_map - displays a map showing a single point.
  • #recurring_event - prints out the dates for a recurring event; for use by #cargo_store.

Cargo also defines various interfaces for viewing and drilling down through this stored data.

Cargo has been tested, and works, with the MySQL and PostgreSQL database systems. In theory, it also supports SQLite, but it has not been well-tested with SQLite and may not work.

This version of the Cargo extension requires MediaWiki 1.33+.

Click through the pages in the navigation bar above to learn more about Cargo, how it works, how to use it, and how to install it.

See Extension:Cargo/Download and installation

See also[edit]