Documentation for this module may be created at Module:Wikidata/doc
local p = {}
local prop_named_after = 'P138'
local prop_image = 'P18'
local PROP_LOCATION = 'P276'
p.named_after = function( frame )
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return ''
end
local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata );
if item.claims[prop_named_after] ~= nil then
local named_after_id = item.claims[prop_named_after][1].mainsnak.datavalue.value.id
local named_after = mw.ext.UnlinkedWikibase.getEntity( named_after_id )
return named_after.labels.en.value
end
end
p.image = function( frame )
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return ''
end
local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata );
if item.claims[prop_image] ~= nil then
return item.claims[prop_image][1].mainsnak.datavalue.value
end
end
-- =p.locations({args={wikidata='Q5646280'}})
p.locations = function( frame )
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return ''
end
local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata );
if item == nil then
return ''
end
local isProse = false
if frame.args.format ~= nil and frame.args.format == 'prose' then
isProse = true
end
if item.claims[PROP_LOCATION] == nil then
return ''
end
local locations = {}
for k,v in pairs( item.claims[PROP_LOCATION] ) do
local locationId = v.mainsnak.datavalue.value.id
local locPage = mw.ext.UnlinkedWikibase.getLocalTitle( locationId )
local locPageTitle = ''
if locPage ~= nil then
locPageTitle = locPage.text
else
local locPageItem = mw.ext.UnlinkedWikibase.getEntity( locationId )
locPageTitle = locPageItem.labels.en.value
end
-- listToText wants tables to be 1-indexed.
if isProse then
locations[k+1] = '[[' .. locPageTitle .. ']]'
else
locations[k+1] = locPageTitle
end
end
if isProse then
return mw.text.listToText( locations, ', ', ' and ' )
else
return table.concat( locations, '; ' )
end
end
p.enwiki = function( frame )
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return ''
end
local item = mw.ext.UnlinkedWikibase.getEntity( frame.args.wikidata );
if item.sitelinks ~= nil and item.sitelinks.enwiki ~= nil then
return item.sitelinks.enwiki.title
end
end
return p