Функция getWV: берёт в качестве аргумента ID Викиданных и возвращает название путеводителя Викигида. Например:
{{#invoke:Wikidata/links|getWV|Q159}}
выдаст Россия.
Функция getWikipediaLink: берёт в качестве аргумента ID Викиданных и возвращает ссылку на Википедию (по умолчанию старается достать ссылку на русском, иначе - на родном). Например:
{{#invoke:Wikidata/links|getWikipediaLink|Q159}}
выдаст w:Россия.
local p = {}; function p.getSisterProjectLink( projectInterwikiLettter, projectName, frame ) -- По умолчанию старается достать ссылку на русском, иначе - на en, затем на родном (P103) local itemID = mw.text.trim(frame.args[1] or "") local entity = mw.wikibase.getEntityObject(itemID) if entity == nil or entity.sitelinks == nil then return '' end; local sitelink = entity.sitelinks['ru' .. projectName] if sitelink ~= nil then return projectInterwikiLettter .. ':' .. sitelink.title end; -- tries to returns :en:w: link right after sitelink = entity.sitelinks['en' .. projectName] if sitelink ~= nil then return 'en:w:' .. sitelink.title; end; if entity.claims then local propValues = entity.claims['P103'] if propValues ~= nil then local codes = mw.loadData('Module:Wikidata:Dictionary/P424'); for i, propClaim in pairs(propValues) do if propClaim.mainsnak and propClaim.mainsnak.datavalue and propClaim.mainsnak.datavalue.value and propClaim.mainsnak.datavalue.value["numeric-id"] then local languageWikidataId = 'Q' .. propClaim.mainsnak.datavalue.value["numeric-id"]; local codesById = codes[languageWikidataId]; if ( codesById ) then for j, code in pairs( codesById ) do sitelink = entity.sitelinks[code .. projectName]; if sitelink ~= nil then return projectInterwikiLettter .. ':' .. code .. ':' .. sitelink.title; end; end; end; end; end; end; end; return ''; end; function p.getWV (frame) local itemID = mw.text.trim(frame.args[1] or "") local entity = mw.wikibase.getEntityObject(itemID) if not entity or not entity.sitelinks then return '' end if entity.sitelinks['ru' .. 'wikivoyage'] then return entity.sitelinks['ru' .. 'wikivoyage'].title end end; function p.getWikipediaLink(frame) return p.getSisterProjectLink( 'w', 'wiki', frame ); end; return p;