Module:Bac à sable/Liens

Une page de Wikipédia, l'encyclopédie libre.

 Documentation[créer] [purger]
local p = {}

local function addRow( row, results )
    -- ligne vide ou uniquement des balises de catégories
    if row == '' or row:gsub( '%[%[[Cc]atégorie:[^%[%]]+%]%]', '' ) == '' then
        results[ #results + 1 ] = row
    else
        results[ #results + 1 ] = '\n* '
        results[ #results + 1 ] = row
    end
end

function p.main( frame )
    local parentArgs = frame:getParent().args

    local results = {}

    local wikidata = nil
    for _, name in ipairs{ 'wikidata', 'entity', 'id', 1 } do
        local value = parentArgs[ name ]
        if value then
            if type( name ) == 'number' then
                value = mw.text.trim( value )
            end
            if value ~= '' then
                wikidata = value
                break
            end
        end
    end

    results[ #results + 1 ] = frame:extensionTag( 'nowiki' )

    if not ( parentArgs[ 'site officiel' ] == '-' or parentArgs[ 'Site officiel' ] == '-' ) then
        local titre = nil
        if parentArgs.titre and parentArgs.titre ~= '' then
            titre = parentArgs.titre
        end
        local row = frame:expandTemplate{ title = 'Site officiel', args = { wikidata = wikidata, titre = titre } }
        addRow( row, results )
    end

    if not ( parentArgs[ 'bases' ] == '-' or parentArgs[ 'Bases' ] == '-' ) then
        local row = frame:expandTemplate{ title = 'Bases', args = { wikidata = wikidata } }
        addRow( row, results )
    end

    if not ( parentArgs[ 'dictionnaires' ] == '-' or parentArgs[ 'Dictionnaires' ] == '-' ) then
        local row = frame:expandTemplate{ title = 'Dictionnaires', args = { wikidata = wikidata } }
        addRow( row, results )
    end

    if not ( parentArgs[ 'autorité' ] == '-' or parentArgs[ 'Autorité' ] == '-' ) then
        local row = frame:expandTemplate{ title = 'Autorité', args = { wikidata = wikidata } }
        addRow( row, results )
    end

    return table.concat( results )
end

return p