モジュール:Plain sister
表示
モジュールの解説[作成]
local p = {}
local sites = { -- interwiki prefix, parameter, label and site id (for Wikidata)
{ 'w', 'wikipedia', 'Wikipediaの記事', 'jawiki' },
{ 'commons', 'commons', 'Commonsギャラリ', 'commonswiki' },
{ 'commons:Category', 'commonscat', 'Commonsカテゴリ', '' },
{ 'q', 'wikiquote', '引用集', 'jawikiquote' },
{ 'n', 'wikinews', 'ニュース', 'jawikinews' },
{ 'wikt', 'wiktionary', '辞書', 'jawiktionary' },
{ 'b', 'wikibooks', 'テキスト', 'jawikibooks' },
{ 'v', 'wikiversity', '講座', 'jawikiversity' },
{ 'wikispecies', 'wikispecies', '分類学', 'wikispecieswiki' },
{ 'voy', 'wikivoyage', '旅案内', 'jawikivoyage' },
{ 'd', 'wikidata', 'データ項目', 'wikidatawiki' },
{ 'wikilivres', 'wikilivres', 'Wikilivres', '' },
{ 'm', 'meta', 'メタ', 'metawiki' }
}
function p.interprojetPart( frame )
local frame = frame:getParent()
local item = mw.wikibase.getEntityObject()
local links = {}
for _, site in pairs( sites ) do
local val = ''
if val == '' and frame.args[site[2]] ~= nil then
val = frame.args[site[2]]
end
if val == '' and site[4] ~= '' and item ~= nil then
if site[4] == 'wikidatawiki' then
val = item.id or ''
else
val = item:getSitelink( site[4] ) or ''
end
end
if val ~= '' then
table.insert( links, '[[' .. site[1] .. ':' .. val .. '|' .. site[3] .. ']]' )
end
end
if next( links ) == nil then
return ''
end
return '<li class="sisitem">'
.. '<span class="sisicon" style="padding-right:1ex;">[[Image:Wikimedia-logo.svg|frameless|18px|link=Special:sitematrix|alt=Sister Projects.]]</span>'
.. '[[Special:sitematrix|姉妹プロジェクト]]:' .. table.concat( links, ', ' )
.. '</li>'
end
return p