Модуль:GetLabel
Арахьара хатӀ
ХӀокху модулах лаьцна хааман Модуль:GetLabel/doc агӀо кхолла мега
local p = {}
function p.main(frame)
local id = frame.args.id or frame.args[1]
local property = frame.args.property or frame.args[2]
local lang = frame.args.lang or 'ce'
if not id or id == '' then
id = mw.wikibase.getEntityIdForCurrentPage()
end
if not id or not property or property == '' then return '' end
local entity = mw.wikibase.getEntity(id)
if not entity or not entity.claims or not entity.claims[property] then return '' end
local claim = entity.claims[property][1]
if not claim or not claim.mainsnak or not claim.mainsnak.datavalue then return '' end
local targetId = claim.mainsnak.datavalue.value.id
if not targetId then return '' end
local targetEntity = mw.wikibase.getEntity(targetId)
if not targetEntity or not targetEntity.labels then return '' end
local label = targetEntity.labels[lang] and targetEntity.labels[lang].value
or targetEntity.labels.ru and targetEntity.labels.ru.value
or targetEntity.labels.en and targetEntity.labels.en.value
or ''
repeat
label, count = mw.ustring.gsub(label, "%s*%b()", "")
until count == 0
local sitelink = mw.wikibase.getSitelink(targetId)
if not sitelink then return label end
return string.format('[[%s|%s]]', sitelink, label)
end
return p