Module:passe-partout

From Wiktionnaire
Jump to navigation Jump to search

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

-- Test de modèle au succès incertain, qui créerait tout seul les catégories
-- d'une page, et donc permettrait de se passer théoriquement des paramètres de
-- code langue dans les cas les plus courants

local b = require('Module:bases')
local l = require('Module:langues')
local tri = require('Module:clé de tri2')
local page = mw.title.getCurrentTitle()

local p = {}
p.article = {}
p.clefs = {}

function parse()
	local texte = page:getContent()
	local lignes = mw.text.split( texte, "[\r\n]" )
	
	local article = {}
	article.langues = {}
	article.contextes = {}
	article.clefs = {}
	local langue = ''
	for i, ligne in ipairs( lignes ) do
		-- Section de langue !
		local s, e, tmp_langue, clef = mw.ustring.find( ligne, "== *\{\{langue\|([^\}\|]+)\|?(.*)\}\} *==" )
		if tmp_langue then
			langue = tmp_langue
			table.insert( article.langues,  tmp_langue)
			article.contextes[ langue ] = {}
			if clef ~= "" then
				article.clefs[ langue ] = clef
			end
		end
		
		-- Modèle de contexte sur une ligne de définition ?
		local s, e, tmp_contexte = mw.ustring.find( ligne, "# *\{\{C\|([^\}]+)\}\}" )
		if tmp_contexte then
			-- Sépare chaque contexte
			local contextes = mw.text.split( tmp_contexte, "\|" )
			if langue ~= "" then
				for i, contexte in ipairs( contextes ) do
					contexte = mw.text.trim( contexte )
					table.insert( article.contextes[ langue ], contexte )
				end
			end
		end
	end
	return article
end

function donne_les_clefs( langues, clefs )
	local titre = page.text
	local trousseau = {}
	for i, langue in ipairs( langues ) do
		trousseau[ langue ] = clefs[ langue ] or tri.clef( titre, langue ) or titre
	end
	return trousseau
end

-- Parse les pages (seulement si pages de contenu)
if b.page_de_contenu() or page.fullText == 'Utilisateur:Darkdadaah/Test/Délangage/test' then
	p.article = parse()
	p.clefs = donne_les_clefs( p.article.langues, p.article.clefs )
end

return p