Module:Wikibase

From Wikibooks, open books for an open world
Jump to navigation Jump to search
Documentation[edit] [history] [purge]

This module is used into {{label}}, the template gets the label of an item or property, and should stay in sync with the same template as d:Template:Label.

Examples:

  • {{label|Q1}}: Universe
  • {{label|Q1|en}}: Universe
  • {{label|Q1|es}}: Universe
  • {{label|P31}}: instance of

The language code parameter does not work yet. It will be optional; if not provided it will default to English.

-- Module:Wikibase
local p = {}

-- Return the item ID of the item linked to the current page.
function p.id(frame)
	if not mw.wikibase then
		return "no mw.wikibase"
	end

	entity = mw.wikibase.getEntityObject()

	if entity == nil then
		return "no entity"
	end

	return entity.id
end

-- Return the label of a given data item.
function p.label(frame)
	if frame.args[1] == nil then
		entity = mw.wikibase.getEntityObject()
		if not entity then return nil end

		id = entity.id
	else
		id = frame.args[1]
	end
	if (id == nil) then id = "" end
	if not mw.wikibase then
		return ""
	else
		return mw.wikibase.label( id )
	end
end

-- Return the local page about a given data item.
function p.page(frame)
	if frame.args[1] == nil then
		entity = mw.wikibase.getEntityObject()
		if not entity then return nil end

		id = entity.id
	else
		id = frame.args[1]
	end

	return mw.wikibase.sitelink( id )
end

return p