Функция 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;