模块:Wikibase
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 }}
- 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 }}
→ Q8565357
label
{{#invoke:Wikibase | label }}
→ Module:Wikibase{{#invoke:Wikibase | label | Q132689 }}
→ 北非谍影{{#invoke:Wikibase | label | P31 }}
→ 隶属于
description
{{#invoke:Wikibase | description }}
→ Lua模组{{#invoke:Wikibase | description | Q132689 }}
→ 1942年美国电影{{#invoke:Wikibase | description | P31 }}
→ 此主体是其中特定示例及成员的类别;与上级分类(P279)不同;例如:富士山隶属于山,火山上级分类是山(且隶属于火山地貌)
page
{{#invoke:Wikibase | page }}
→ Module:Wikibase{{#invoke:Wikibase | page | Q132689 }}
→ 北非谍影
datatype
Commons media: 图像 (P18)
{{#invoke:Wikibase | datatype | P18 }}
→ commonsMedia{{#invoke:Wikibase | datatype | Property:P18 }}
→ commonsMedia
Globe coordinate: 地理坐标 (P625)
{{#invoke:Wikibase | datatype | P625 }}
→ globe-coordinate{{#invoke:Wikibase | datatype | Property:P625 }}
→ globe-coordinate
Item: 政府首脑 (P6)
{{#invoke:Wikibase | datatype | P6 }}
→ wikibase-item{{#invoke:Wikibase | datatype | Property:P6 }}
→ wikibase-item
Property: 父属性 (P1647)
{{#invoke:Wikibase | datatype | P1647 }}
→ wikibase-property{{#invoke:Wikibase | datatype | Property:P1647 }}
→ wikibase-property
String: 学名 (P225)
{{#invoke:Wikibase | datatype | P225 }}
→ string{{#invoke:Wikibase | datatype | Property:P225 }}
→ string
Monolingual text: 官方名称 (P1448)
{{#invoke:Wikibase | datatype | P1448 }}
→ monolingualtext{{#invoke:Wikibase | datatype | Property:P1448 }}
→ monolingualtext
Quantity: 人口 (P1082)
{{#invoke:Wikibase | datatype | P1082 }}
→ quantity{{#invoke:Wikibase | datatype | Property:P1082 }}
→ quantity
Time: 出生日期 (P569)
{{#invoke:Wikibase | datatype | P569 }}
→ time{{#invoke:Wikibase | datatype | Property:P569 }}
→ time
URL: 官方网站 (P856)
{{#invoke:Wikibase | datatype | P856 }}
→ url{{#invoke:Wikibase | datatype | Property:P856 }}
→ url
Mathematical expression: 公式定义 (P2534)
{{#invoke:Wikibase | datatype | P2534 }}
→ math{{#invoke:Wikibase | datatype | Property:P2534 }}
→ math
External identifier: ISBN-13 (P212)
{{#invoke:Wikibase | datatype | P212 }}
→ external-id{{#invoke:Wikibase | datatype | Property:P212 }}
→ external-id
---------- 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 "无mw.wikibase"
end
entity = mw.wikibase.getEntityObject()
if entity == nil then
return "无项目"
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)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.label( id )
end
-- Return the description of a given data item, or of connected page
-- if no argument is provided to this method.
function p.description(frame)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.description( id )
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 = mw.text.trim(frame.args[1])
end
return mw.wikibase.sitelink( id )
end
-- Return the data type of a property
function p.datatype(frame)
if frame.args[1] and string.find(frame.args[1], "Property:P") then
if mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P")) then
return mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P") ).datatype
end
elseif frame.args[1] and string.find(frame.args[1], "P") then
if mw.wikibase.getEntityObject(frame.args[1]) then
return mw.wikibase.getEntityObject(frame.args[1]).datatype
end
end
end
return p