Module:Interprojet
Appearance
Documentation for this module may be created at Module:Interprojet/doc
local p = {}
local sites = { -- préfixe interwiki, liste des paramètres, label et id du site (pour Wikidata)
{ 'w', { 'Wikipedia', 'w', 'wAutore' }, 'Wikipédia', 'frwiki' },
{ 'q', { 'Wikiquote', 'q' }, 'Wikiquote', 'frwikiquote' },
{ 'b', { 'Wikibooks', 'b' }, 'Wikibooks', 'frwikibooks' },
{ 'commons', { 'commons', 'Commons', 'CommonsAutore' }, 'Commons', 'commonswiki' },
{ 'd', { 'Wikidata', 'd' }, 'Wikidata', 'wikidatawiki' },
{ 'wikispecies', { 'wikispecies', 'WikiSpecies' }, 'Wikispecies', 'wikispecieswiki' },
{ 'n', { 'WikiNews', 'n' }, 'Wikinews', 'frwikinews' },
{ 'v', { 'Wikiversity', 'v' }, 'Wikiversité', 'frwikiversity' },
{ 'm', { 'm', 'meta' }, 'Meta', 'metawiki' },
{ 'wikt', { 'WikTionary', 'wikt' }, 'Wiktionnaire', 'frwiktionary' },
{ 'voy', { 'Wikivoyage', 'voy' }, 'Wikivoyage', 'frwikivoyage' }
}
function p.interprojet( frame )
local frame = frame:getParent()
local item = mw.wikibase.getEntityObject()
local content = mw.html.create( 'div' )
:attr( 'id', 'interProject' )
:addClass( 'ws-noexport' )
:css( 'display', 'none' )
:css( 'speak', 'none' );
for _, site in pairs( sites ) do
local val = ''
for _, param in pairs( site[2] ) do
if val == '' and frame.args[param] ~= nil then
val = frame.args[param]
end
end
if val == '' 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
content:wikitext( '[[' .. site[1] .. ':' .. val .. '|' .. site[3] .. ']]\n\n' )
end
end
return content:done()
end
return p