Для документации этого модуля может быть создана страница Модуль:Wikibase/doc
local wiki = { langcode = mw.language.getContentLanguage().code } -- internationalisation local i18n = { ["errors"] = { ["entity-not-found"] = "Не найдена запись в Викиданных", } } local p = { } local function printError(code) return '<span class="error">' .. (i18n.errors[code] or code) .. '</span>' end function p.descriptionIn(frame) local langcode = frame.args[1] local id = frame.args[2] -- return description of a Wikidata entity in the given language or the default language of this Wikipedia site local entity = mw.wikibase.getEntity(id) if entity and entity.descriptions then local desc = entity.descriptions[langcode or wiki.langcode] if desc then return desc.value end end end function p.labelIn(frame) local langcode = frame.args[1] local id = frame.args[2] -- return label of a Wikidata entity in the given language or the default language of this Wikipedia site local entity = mw.wikibase.getEntity(id) if entity and entity.labels then local label = entity.labels[langcode or wiki.langcode] if label then return label.value end end end function p.pageId(frame) local id = frame.args[1] local entity = mw.wikibase.getEntity(id) if not entity then return nil else return entity.id end end function p.labelOf(frame) local id = frame.args[1] -- returns the label of the given entity/property id -- if no id is given, the one from the entity associated with the calling Wikipedia article is used if not id then local entity = mw.wikibase.getEntity() if not entity then return printError("entity-not-found") end id = entity.id end return mw.wikibase.label(id) end function p.sitelinkOf(frame) local id = frame.args[1] -- returns the Wikipedia article name of the given entity -- if no id is given, the one from the entity associated with the calling Wikipedia article is used if not id then local entity = mw.wikibase.getEntity() if not entity then return printError("entity-not-found") end id = entity.id end return mw.wikibase.sitelink(id) end function p.label(frame) local id = frame.args[1] local entity = mw.wikibase.getEntity(id) if entity and entity.labels then local label = entity.labels['ru'] if label then return '[[:d:'..id..'|'..label.value..' <small>('..id..')</small>]]' else return '[[:d:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]' end end end function p.labelp(frame) local id = frame.args[1] local entity = mw.wikibase.getEntity(id) if entity and entity.labels then local label = entity.labels['ru'] if label then return '[[:d:Property:'..id..'|'..label.value..' <small>('..id..')</small>]]' else return '[[:d:Property:'..id..'|'..entity.labels['en'].value..' <small>(in English; '..id..')</small>]]' end end end return p