Module:contexte

Définition, traduction, prononciation, anagramme et synonyme sur le dictionnaire libre Wiktionnaire.
Sauter à la navigation Sauter à la recherche

La documentation pour ce module peut être créée à Module:contexte/Documentation

local b = require('Module:bases')
local l = require('Module:langues')
local db = mw.loadData('Module:contexte/data')

local p = {}
function _contexte_def(liste, langue)
    local ligne_def = {}
    
    -- Regarde chaque élément un à un
    local n = 1
    while(liste[n] ~= nil) do
        local nom = mw.text.trim(liste[n])
        n = n+1
        
        -- Ce contexte existe-t-il ?
        cont = db[nom] or {}
        if not cont or not cont.invisible == true then
        	local label = cont.label or nom
        	
            local lien = cont.lien or nil
            
            -- lien ?
            if cont['glossaire'] and not lien then
            	lien = "Annexe:Glossaire grammatical#" .. cont['glossaire']
            end
            
            if lien then
            	if #ligne_def == 0 then
            		label = "[[" .. lien .. "|" .. b.ucfirst(label) .. "]]"
            	else
            		label = "[[" .. lien .. "|" .. label .. "]]"
            	end
            elseif #ligne_def == 0 then
    			label = b.ucfirst(label)
        	end
            table.insert(ligne_def, label)
	       
        -- Pas dans la liste: affiche quand même le texte et catégorise comme contexte non défini
        else
            table.insert(ligne_def, texte)
            local cat = b.fait_categorie_contenu('Wiktionnaire:Contexte non défini', nil, true)
        end
    end
    
    if #ligne_def > 0 then
    	return "''(<span class='contexte'>" .. b.ucfirst(table.concat(ligne_def, ', ')) .. "</span>)''"
    else
    	return ""
    end
    
end

-- Pour générer tout ce qui est {term}, {emploi}, {région}...
function p.contexte(frame)
    local args
    if frame.args ~= nil and frame.args[1] ~= nil then
        args = frame.args
    else
        args = frame:getParent().args
    end
    argsnum = b.trim_parametres(args)
    
    -- Vérifie que des paramètres de contexte sont donnés
    if argsnum[1] == nil or argsnum[1] == '' then return '(Pas de contexte donné)' end
    
    -- Paramètre de langue
    local lang = args['lang']
    local langue
    if lang ~= nil then
        langue = l.get_nom(lang)
    end
    
    -- Récupère la liste des infos de contexte
    
    -- Prépare le texte à afficher sur la ligne de définition et les catégories associées
    local texte_out = _contexte_def(argsnum, langue)
    
    -- Affichage final
    return texte_out
end

return p