Module:Wikibase
Revision as of 15:16, 28 August 2015 by blackwiki>Aude (pass argument of p.label directly to mw.wikibase.label (if it is nil, then mw.wikibase.label defaults to use the connected item, without having to resolve it here))
This module is copied from the example from the module documentation at mw:Extension:Wikibase Client/Lua. It should be kept consistent with that documentation, rather than being adapted further for use on Wikipedia.
Usage
- id
{{#invoke: Wikibase | id }}
- wdurl
{{#invoke: Wikibase | wdurl }}{{#invoke: Wikibase | wdurl | entity id (Q# or P#) }}
- label
{{#invoke: Wikibase | label }}{{#invoke: Wikibase | label | entity id (Q# or P#) }}
- description
{{#invoke: Wikibase | description }}{{#invoke: Wikibase | description | entity id (Q# or P#) }}
- page
{{#invoke: Wikibase | page }}{{#invoke: Wikibase | page | item id (Q#) }}
- datatype
{{#invoke: Wikibase | datatype | property id (P#) }}
Examples
id
{{#invoke:Wikibase | id }}→ no mw.wikibase
wdurl
{{#invoke:Wikibase | wdurl }}→ Script error: The function "wdurl" does not exist.{{#invoke:Wikibase | wdurl | Q132689 }}→ Script error: The function "wdurl" does not exist.{{#invoke:Wikibase | wdurl | P31 }}→ Script error: The function "wdurl" does not exist.
label
{{#invoke:Wikibase | label }}→ Lua error at line 22: attempt to index field 'wikibase' (a nil value).{{#invoke:Wikibase | label | Q132689 }}→ Lua error at line 22: attempt to index field 'wikibase' (a nil value).{{#invoke:Wikibase | label | P31 }}→ Lua error at line 22: attempt to index field 'wikibase' (a nil value).
description
{{#invoke:Wikibase | description }}→ Script error: The function "description" does not exist.{{#invoke:Wikibase | description | Q132689 }}→ Script error: The function "description" does not exist.{{#invoke:Wikibase | description | P31 }}→ Script error: The function "description" does not exist.
page
{{#invoke:Wikibase | page }}→ Lua error at line 29: attempt to index field 'wikibase' (a nil value).{{#invoke:Wikibase | page | Q132689 }}→ Lua error at line 37: attempt to index field 'wikibase' (a nil value).
datatype
⧼datatypes-type-commonsMedia⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P18 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P18 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-globe-coordinate⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P625 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P625 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-wikibase-item⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P6 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P6 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-wikibase-property⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P1647 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P1647 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-string⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P225 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P225 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-monolingualtext⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P1448 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P1448 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-quantity⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P1082 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P1082 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-time⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P569 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P569 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-url⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P856 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P856 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-math⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P2534 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P2534 }}→ Script error: The function "datatype" does not exist.
⧼datatypes-type-external-id⧽: Template:Wpl
{{#invoke:Wikibase | datatype | P212 }}→ Script error: The function "datatype" does not exist.{{#invoke:Wikibase | datatype | Property:P212 }}→ Script error: The function "datatype" does not exist.
-- 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, or of connected page
-- if no argument is provided to this method.
function p.label(frame)
return mw.wikibase.label( frame.args[1] )
end
-- Return the local page about a given data item, or of connected page
-- if id is not specified.
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