Модуль:Wikidata/iwikiQ
Дакументацыю да гэтага модуля можна стварыць у Модуль:Wikidata/iwikiQ/Дакументацыя
local M={}
function M.iwiki(f)-- Інтэрвікі для абранай мовы і названай старонкі(толькі з ВЗ)
local lang = f.args.lang or f.args[2] or f:getParent().args.lang or f:getParent().args[2]
if lang == "" then
lang = nil
end
local id = f.args.id or f.args[1] or f:getParent().args.id or f:getParent().args[1]
local function try()
if lang then
return mw.wikibase.getEntityObject(id).sitelinks[lang..'wiki'].title
else-- спіс інтэрвік
local r={}
local fg = f.args.f
if fg then
fg = mw.text.unstripNoWiki(fg)
else
fg = ": [[:$1:$2|({{#language:$1|be}})]]"
end
for k,v in pairs( mw.wikibase.getEntityObject(id).sitelinks ) do
if k:sub(-4)=="wiki" then
table.insert( r, mw.message.newRawMessage(fg):rawParams(k:sub(1,-5),v.title):plain() )
end
end
table.sort(r)
return f:preprocess( table.concat(r, (f.args.s or "\n"):gsub('^"(.*)"$',"%1"),nil) )
end
end
local r, result = pcall(try);
if r then
return result
else
return '<strong class="error">У Вікізвестках няма запісаў для старонкі '..(id or mw.wikibase.getEntityIdForCurrentPage())..' ('..result..')</strong>';
end
end
return M