Aller au contenu

Module:Benda

De Vouiquipèdia, l’enciclopèdia abada.

La documentation pour ce module peut être créée à Module:Benda/doc

--Cél modulo ègzécute los modèlos de benda.

--Estandardisacion de les bendes ([[Catègorie:Modèlo de benda]]).
--Fâre na fonccion èxportâbla por lo modèlo {{Benda}} (ns:all).
--Fâre na fonccion èxportâbla por les bendes d’articllo (ns:0).
--Fâre na fonccion èxportâbla por les bendes de sèccion (ns:0).
--Fâre na fonccion èxportâbla por les bendes de començon (ns:0).
--Fâre na fonccion èxportâbla por les bendes de discussion (ns:1).
--Fâre na fonccion èxportâbla por les bendes de sistèmo (ns:8).
--Fâre marchiér les émâges multiples.

local p = {}

local trim = require('Module:Outils').trim
local yesno = require('Module:yesno')
local classData = mw.loadData('Module:Benda/Class')
local moduloComencon = 'Module:Benda/Començon'
-- local paramComencon = mw.loadData(moduloComencon) -- serat chargiê ren que por na benda de començon.

local cfg = {
	forma = 'benda-simpla',
	nivel = 'benda-nivel-netro',
	formatLim = '[[Fichiér:%s|%spx|alt=%s|class=noviewer]]',
	talyeIcona = '45x45',
	fotaArgument = 'Paramètro <code>|%s=</code> entrovâblo',
	fotaComenconParam = 'lo tèmo « %s » du modèlo [[Modèlo:Començon|' .. mw.text.nowiki('{{començon}}') .. ']] est pas [[Éde:Començon/Éde paramètros|dèfeni]].',
	fotaComenconTipo = 'lo tèmo « %s » dêt aparêtre en téta de lista du modèlo [[Modèlo:Començon|' .. mw.text.nowiki('{{començon}}') .. ']].',
	comenconEmage = '<span style="white-space:nowrap;word-spacing:5px">%s</span>',
	comenconTitro = '%s est un [[Éde:Començon|començon]].',
	comenconTitroChousa = '%s est un [[Éde:Començon|començon]] que regârde %s.',
	comenconCateg = '[[Catègorie:Vouiquipèdia:començon %s]]',
}

-- CSS inline por èvitar FOUC sus lo seto enfatâblo
local rustineFoucMobile = {
	['display'] = 'table-cell',
	['padding-right'] = '0.5em',
}

local function fota(texto, formatstring, tag)
	local res = mw.html.create(tag or 'span')
	res	:addClass('error')
		:wikitext('Fôta : ')

	if formatstring then
		res:wikitext(formatstring:format(texto))
	else
		res:wikitext(texto)
	end

	return tostring(res)
end

function p._benda(args)
	local res = mw.html.create('div')
	local cells = mw.html.create()
	local icona = trim(args.emage) or trim(args['icôna'])
	local backgroundIcona = icona and classData.icones[icona:gsub('_', ' ')] or false
	local texto = (trim(args.texto) or fota('texto', cfg.fotaArgument))

	if args.id and args.id ~= '' then
		res:attr('id', args.id)
	end

	res	:addClass('benda-container metadata')
		:addClass(classData.formes[args.forma] or cfg.forma)
		:addClass(classData.nivel[args.nivel] or cfg.nivel)

	if args.class and args.class ~= '' then
		res:addClass(args.class)
	end

	if args.style and args.style ~= '' then
		res:cssText(args.style)
	end

	if yesno(args.centrar) then
		cells = mw.html.create('div')
			:addClass('benda-centrar')
	elseif trim(args.dreta) then
		cells = mw.html.create('div')
			:css{ display = 'table', width = '100%' }
	end

	if args['icôna bea'] and args['icôna bea'] ~= 'nan' then
		if args['icôna bea'] == 'ouè' then
			cells:wikitext( mw.getCurrentFrame():expandTemplate{ title = 'Bea' } )
		else
			cells:wikitext( mw.getCurrentFrame():expandTemplate{ title = 'Bea', args = {args['icôna bea']} } )
		end
	end

	if icona and not backgroundIcona then
		local iconaVouiqui = icona
		if not icona:match('%[') then
			local alt = args.alt or args['lègenda'] or ''
			if yesno( args['domêno publico'] ) then
				alt = alt .. '|link='
			end
			local talye = args['talye icôna'] or cfg.talyeIcona
			iconaVouiqui = cfg.formatLim:format(icona, talye, alt)
		end
		cells
			:tag('div')
				:addClass('benda-cell benda-icona')
				:css(rustineFoucMobile)
				:wikitext(iconaVouiqui)
	end

	cells
		:tag('div')
			:addClass('benda-cell')
			:css(rustineFoucMobile)
			:addClass(backgroundIcone and ('benda-icona-css ' .. backgroundIcona) or nil)
			:newline() -- sèrvét a la gènèracion ôtomatica de <p> qu’encâdre lo contegnu
			:wikitext(texto)
			:newline() -- sèrvét a la gènèracion ôtomatica de <p> qu’encâdre lo contegnu

	if trim(args.dreta) then
		cells
			:tag('div')
				:addClass('benda-cell')
				:css(rustineFoucMobile)
				:css( 'padding-left', '1em' )
				:newline()
				:wikitext(args.dreta)
	end

	res	:node(cells)
	if trim(args['quârque-ren de més']) then
		res	:tag('div')
				:wikitext(args['quârque-ren de més'])
	end
	return tostring(res)
end

function p._bendaSemonce(args)
	local htmlTexto = mw.html.create()

	local titro = trim(args.titro) or fota('titro', cfg.fotaArgument)

	local sufixoData = trim(args.date)
	if sufixoData then
		-- por rendre pas sècâblo, solament se lo paramètro semble franc étre na dâta valida
		sufixoData = (require 'Module:Dâta').modeloData{sufixoData, nolinks=true, farevereFotes=false, categorisarFotes=false}

		titro = titro:gsub('%.$', '')
		sufixoData = ' <small>(' .. sufixoData .. ').</small>'
	elseif not titro:match('[.,;:!?]$') then
		titro = titro .. '.'
	end

	htmlTexto
		:tag('strong')
			:addClass('benda-titro')
			:wikitext(titro)
		:done()
		:wikitext(sufixoData)

	local texto = trim(args.texto)
	if texto then
		htmlTexto
			:newline()
			:newline()
			:wikitext(texto)
	end

	local parametros = {
		forma = 'articllo',
		nivel = args.nivel,
		id = args.id,
		class = args.class,
		['icôna'] = trim(args['icôna']) or trim(args['icôna-complicâye']) or args.nivel,
		alt = args.alt or args['lègenda'],
		['domêno publico'] = args['domêno publico'],
		texto = tostring(htmlTexto),
		['icôna bea'] = args['icôna bea'],
		['quârque-ren de més'] = args['quârque-ren de més'],
	}

	return p._benda(parametros)
end

--[[
	TODO - fusionar cetes doves mètodes :
	* p._benda() avouéc forma=seccion
	* p._bendaSeccion()
]]--

function p._bendaSeccion(args)
	local res = mw.html.create('div')
	local icona = trim(args.emage) or trim(args['icôna'])
	local backgroundIcona = icona and classData.icones[icona:gsub('_', ' ')] or false
	local texto = (trim(args.texto) or fota('texto', cfg.fotaArgument))

	res	:addClass('benda-container benda-seccion metadata')
		:addClass(classData.nivel[args.nivel] or cfg.nivel)

	if icona and not backgroundIcona then
		local iconaVouiqui = icona
		if not icona:match('%[') then
			local alt = args.alt or args['lègenda'] or ''
			if yesno( args['domêno publico'] ) then
				alt = alt .. '|link='
			end
			iconaVouiqui = cfg.formatLim:format(icona, 'text-top|20x17', alt)
		end
		res	:tag('div')
				:addClass('benda-cell benda-icona')
				:wikitext(iconaVouiqui)
	end
	res	:tag('div')
			:addClass('benda-cell')
			:addClass(backgroundIcona and ('benda-icona-css ' .. backgroundIcona) or nil)
			:wikitext(texto)

	return tostring(res)
end

-- fonccion qu’envèrse la câssa du premiér caractèro d’una chêna
local function enversarCassa( str )
	if type( str ) == 'string' then
		local premierCar = mw.ustring.sub( str, 1, 1 )
		if mw.ustring.lower( premierCar ) == premierCar then
			return mw.ustring.upper( premierCar ) .. mw.ustring.sub( str, 2 )
		else
			return mw.ustring.lower( premierCar ) .. mw.ustring.sub( str, 2 )
		end
	end
end

-- fonccion que rècupère la ou ben les trâbles de començon corrèspondent u tèmo
local function getComenconTable( paramComencon, theme, femenin )
	-- suprime les mârques de dirèccion ltr
	theme = theme:gsub( '\226\128\142', '' ):gsub( '_', ' ' )
	-- rècupère los paramètros liyês u tèmo, dês lo module:Benda/Començon
	local params = {}
	local comencon = paramComencon[ theme ] or paramComencon[ enversarCassa( theme ) ]
	if not comencon and theme:find( ' ' ) then
		-- èprôve se yon des mots du tèmo corrèspond a un adjèctif ègzistent
		for adj in theme:gmatch( ' ([^ ]+)' ) do
			paramsAdj = getComenconTable( paramComencon, adj, femenin )
			if paramsAdj and paramsAdj.adjectif == true then
				local nom = theme:gsub( ' ' .. adj:gsub( '(%p)', '%%%1'), '' )
				params = getComenconTable( paramComencon, nom, femenin )
				if params then
					return params, paramsAdj
				end
			end
		end
		-- nion mot corrèspond a un adjèctif, tâchiêvont n’ôtra mètoda por trovar na corrèspondence avouéc un mouél de mots
		if theme:find( ' .+ ' ) then
			for adj, paramsAdj in pairs( paramComencon ) do
				if paramsAdj.adjectif == true and theme:find( ' ' .. adj, 2, true ) then
					local nom = theme:gsub( ' ' .. adj:gsub( '(%p)', '%%%1'), '' )
					params = getComenconTable( paramComencon, nom, femenin )
					if params then
						return params, paramsAdj
					end
				end
			end
		end
	end
	if femenin and comencon and comencon.femenin then 
		comencon = paramComencon[ comencon.femenin ]
	end
	if comencon then
		for n, v in pairs( comencon ) do
			params[ n ] = v
		end
	else
		params = nil
	end
	return params, nil
end
p.getComenconTable = getComenconTable

local function femeninFromWikidata()
	local entity = mw.wikibase.getEntity()
	if entity then
		local p31 = entity:getBestStatements( 'P31' )
		local estHomo = type( p31 ) == 'table'
			and #p31 == 1
			and type( p31[ 1 ].mainsnak ) == 'table'
			and type( p31[ 1 ].mainsnak.datavalue ) == 'table'
			and type( p31[ 1 ].mainsnak.datavalue.value ) == 'table'
			and p31[ 1 ].mainsnak.datavalue.value['numeric-id'] == 5
		local p21 = entity:getBestStatements( 'P21' )
		local estFemenin = type( p21 ) == 'table'
			and #p21 == 1
			and type( p21[ 1 ].mainsnak ) == 'table'
			and type( p21[ 1 ].mainsnak.datavalue ) == 'table'
			and type( p21[ 1 ].mainsnak.datavalue.value ) == 'table'
			and p21[ 1 ].mainsnak.datavalue.value['numeric-id'] == 6581072
		return estHomo, estFemenin
	end
	return false, false
end

p['_començon'] = function ( args )
	local paramComencon = mw.loadData( moduloComencon )
	local page = mw.title.getCurrentTitle()
	local comencons, maneyanceFota = {}, {}
	local homo, femenin = femeninFromWikidata()
	if args['femenin'] and args['femenin'] ~= '' then
		femenin = yesno( args['femenin'], true )
	end
	local estFemenin

	-- fonccion que revire la valor de param por lo començon i, ou ben na valor per dèfôt
	local comenconParam = function( i, param )
		return comencons[ i ] and comencons[ i ][ param ] or paramComencon[''][ param ]
	end

	-- rècupèracion des paramètros de tôs los tèmos
	for i, theme in ipairs( args ) do
		theme = trim( theme )
		if theme then
			local t, tAdj = getComenconTable( paramComencon, theme, femenin )
			if t then
				table.insert( comencons, t )
				table.insert( comencons, tAdj )
			else
				table.insert(
					maneyanceFota, 
					fota(theme, cfg.fotaComenconParam, 'div' )
				)
			end
		end
	end
	
	-- rècupèracion des difèrents titros, émâges et catègories
	local emages, titros, categs = {}, {}, {}
	local talyeIcona = '45x35'
	if #comencons > 3 then
		talyeIcona = '35x25'
	end
	for i, comencon in ipairs(comencons ) do
		-- crèacion du lim de l’émâge
		local alt = ''
		if comencon.icona then
			local emage = cfg.formatLim:format( comencon.icona, talyeIcona, alt )
			table.insert( emages, emage )
		end
		if math.fmod( #comencons, 3 ) == 1 and ( #comencons - i ) == 2	
			or math.fmod( i, 3 ) == 0 and ( #comencons - i ) > 1
		then
			-- sus un mouél de legnes s’y at pas més de 3 émâges, avouéc u muens doves émâges sus la dèrriére legne
			table.insert( emages, '<br> ' )
		end
		
		if i > 1 and comencon.type and comencon.type ~= paramComencon[''].type then
			-- remplace "Cél articllo" per "Cél portâl" ou ben ôtro d’aprés lo premiér tèmo.
			table.insert(
				maneyanceFota, 
				fota(comencon.nom, cfg.fotaComenconTipo, 'div')
			)
		end
		
		-- rècupère los difèrents noms de tèmo
		if comencon.adjectif and #titros > 0 then
			local chousa = comencon.chousa or comencon.nom
			if estFemenin then
				chousa = comencon.chousaF or chousa:gsub(
					comencon.nom:gsub( '(%p)', '%%%1') .. '%f[%W]', 
					comencon.femenin
				)
			end
			-- aponsa de la chousa de l’adjèctif dedens la chousa du començon de devant
			local titro, subst = titros[ #titros ]:gsub( 
				'<(adj[^>]*)>', 
				{ adjectif = chousa, adj = comencon.nom, adjF = comencon.femenin }
			)
			if subst > 0 then
				titros[ #titros ] = titro
			else
				titros[ #titros ] = titro .. ' ' .. chousa
			end
		else
			table.insert( titros, comencon.chousa )
			estFemenin = comencon.estFemenin or ( comencon.chousa == '' and estFemenin )
		end
		
		-- mês’en fôrma de les catègories
		if comencon.adjectif then
			-- tentativa d’aponsa du nom de l’adjèctif dedens les catègories de devant
			local chang = false
			for k, v in ipairs( categs ) do
				local cat, subst = v:gsub(
					'<(adj[^>]*)>',
					{ adj = comencon.nom, adjF =  comencon.femenin,  adjectif = comencon.nom }
				)
				if subst == 0 then
					cat = v .. ' ' .. comencon.nom
				end
				if mw.title.new( 'Catègorie:Vouiquipèdia:començon ' .. cat ).exists then
					categs[ k ] = cat
					chang = true
				end
			end
			if not chang
				and homo
				and mw.title.new( 'Catègorie:Vouiquipèdia:començon pèrsonalitât ' .. comencon.femenin ).exists
			then
				table.insert( categs, 'pèrsonalitât ' .. comencon.femenin )
			end
		end
		table.insert( categs, comencon.categ )
	end
	
	-- mês’en fôrma de les émâges
	local emage
	if args['icôna'] and args['icôna'] ~= '' then
		local theme = getComenconTable( paramComencon, args['icôna'] )
		if theme and theme.icona then
			emage = cfg.formatLim:format(
				theme.icona, 
				talyeIcona, 
				theme.altIcona or ( 'émâge qu’ilustre ' .. theme.chousa )
			)
		end
	elseif #emages == 1 then
		emage = emages[ 1 ]
	elseif #emages > 1 then
		emage = cfg.comenconEmage:format( table.concat( emages, ' ' ) )
	end
	
	-- mês’en fôrma du titro
	local titro
	if #titros > 0 then
		titro = cfg.comenconTitroChousa:format( 
			comenconParam( 1, 'tipo' ), 
			mw.text.listToText( titros )
		)
	else
		titro = cfg.comenconTitro:format( comenconParam( 1, 'tipo' ) )
	end
	
	-- mês’en fôrma du tèxto
	local texto
	if #comencons == 0 then
		texto = ( comenconParam( 1, 'mèssâjo' ) ) .. '.'
	else
		local messajo = comenconParam( 1, 'mèssâjo' )
		local dapres = comenconParam( 1, 'd’aprés' )
		-- aponsa d’un pouent se lo paramètro d’aprés comence per un retôrn legne ou ben na granta lètra
		if messajo:sub( -1 ) == ')' and ( dapres:sub( 1, 3 ) == '<br' or mw.ustring.match( dapres, '^%u' ) ) then
			texto = ( comenconParam( 1, 'mèssâjo' ) ) .. '. ' .. ( comenconParam( 1, 'd’aprés' ) ) .. '.'
		else
			texto = ( comenconParam( 1, 'mèssâjo' ) ) .. ' ' .. ( comenconParam( 1, 'd’aprés' ) ) .. '.'
		end
	end
	-- aponsa d’un tèxto s’y at na lista de tâches
	local todo = page.talkPageTitle and mw.title.new( page.talkPageTitle.fullText .. '/A fâre' ) or nil
	if todo and todo.exists then
		texto = texto .. '\n\n'
			.. 'Vêde la lista de les <b>tâches a acomplir</b> en [['
			.. page.talkPageTitle.prefixedText
			.. '|pâge de discussion]].'
	end

	-- paramètros por la benda
	local parametros = {
		nivel = 'començon',
		['icôna'] = emage,
		titro = titro:gsub( ' <adj[^>]*>', '' ),
		texto = texto,
		id = args.id
	}

	-- concatènacion de les difèrentes catègories (pas de catègorisacion se nocat, ou ben pâge de discussion, ou ben èspâço utilisator)
	local categ = ''
	if not ( yesno( args.nocat, true, false ) or page.isTalkPage or page.namespace == 2 ) then
		for i = 1, #categs do
			categs[ i ] = cfg.comenconCateg:format( categs[ i ] )
		end
		categ = table.concat( categs ):gsub( ' <[^>]*>', '' )
		if categ == '' then
			categ = cfg.comenconCateg:format('')
		end
	end

	local messajoFota = table.concat( maneyanceFota )
	if #maneyanceFota > 0 then
		if page.namespace == 2 then
			messajoFota = messajoFota .. '[[Catègorie:Començon encognu dedens na pâge utilisator]]'
		else
			messajoFota = messajoFota .. '[[Catègorie:Començon encognu]]'
		end
	end

	return p._bendaSemonce( parametros ) .. categ .. messajoFota
end

---
-- Fonccion que revire un paramètro d’una trâbla de començon.
-- El est prèviua por étre apelâye tot drêt per #invoke:
-- avouéc por paramètros lo tèmo et lo paramètro dèsirâ
-- Cela fonccion est surtot dèstinâye a la pâge d’éde.
function p.parametroComencon( frame )
	local paramComencon = mw.loadData( moduloComencon )
	local theme = frame.args[1]
	local param = frame.args[2]
	if paramComencon[ theme ] then
		return paramComencon[ theme ][ param ]
	elseif paramComencon[ enversarCassa( theme ) ] then
		return paramComencon[ enversarCassa( theme ) ][ param ]
	end
end

---
-- Fonccion que revire lo femenin d’un tèmo de començon.
-- El est prèviua por étre apelâye tot drêt per #invoke:
-- avouéc por paramètros lo tèmo et lo paramètro dèsirâ
-- Cela fonccion est surtot dèstinâye u modèlo {{Catègoria de començon}}, donc na valor est pas reveriêe que se les catègories sont pariéres.
function p.femeninComencon( frame )
	local paramComencon = mw.loadData( moduloComencon )
	local theme = frame.args[1]
	local themeF
	if theme then
		local t = getComenconTable( paramComencon, theme )
		local tF, tAdjF = getComenconTable( paramComencon, theme, true )
		if t.femenin and  tF.categ == t.categ then
			if tAdjF then
				themeF = tF.nom .. ' ' .. tAdjF.femenin
			else
				themeF = tF.nom
			end
			return themeF
		end
	end
end

---
-- Fonccion que construit doves grelyes rècapitulatives de l’ensemblo des paramètros de començon.
function p.tableParametrosComencons( frame )
	local paramComencon = mw.loadData( moduloComencon )
	
	local currentFrame = mw.getCurrentFrame()
	local languageObj = mw.getContentLanguage()
	function pagesInCategory( category )
		return languageObj:formatNum( tonumber( currentFrame:callParserFunction( 'PAGESINCATEGORY', { category, 'R' } ) ) )
	end
	
	local params, paramAdj, paramTipo = {}, {}, {}
	for cllaf, comencon in pairs( paramComencon ) do
		local kComencon = {}
		for k, v in pairs( comencon ) do
			kComencon[ k ] = v
		end
		kComencon.cllaf = cllaf
		if comencon.type then
			table.insert( paramTipo, kComencon )
		elseif comencon.adjectif then
			if cllaf == comencon.nom or cllaf ~= comencon.femenin then
				table.insert( paramAdj, kComencon )
			end
		else
			table.insert( params, kComencon )
		end
	end
	local comp = function( eb1, eb2 )
		return eb1.cllaf < eb2.cllaf
	end
	table.sort( params, comp )
	table.sort( paramAdj, comp )
	table.sort( paramTipo, comp )
	
	local wikiTab = { '<table class="wikitable sortable" style="table-layout:fixed;">' }
	wikiTab.insert = function ( t, value )
		table.insert( t, value )
		return t
	end
	
	wikiTab
		:insert('\n=== Començons normals ===\n')
		:insert('<caption>Lista des paramètros de començon</caption>')
		:insert('<th scope=col style="width:15%;">nom</th>')
		:insert('<th scope=col style="width:50px; box-sizing:border-box;">i</th>')
		:insert('<th scope=col style="width:20%;">chousa</th>')
		:insert('<th scope=col style="width:20%;">catègoria</th>')
		:insert('<th scope=col style="width:20%;">comptor</th>')
		:insert('<th scope=col>d’aprés</th>')
	for k, comencon in ipairs( params ) do
		wikiTab
			:insert('<tr><td>')
			:insert( comencon.cllaf )
			:insert('</td><td>')
		if comencon.icona then
			wikiTab:insert( cfg.formatLim:format( comencon.icona, '45x35', comencon.altIcona or '' ) )
		end
		wikiTab
			:insert('</td><td>')
			:insert( comencon.chousa )
			:insert('</td><td>')
		if comencon.categ then
			wikiTab
				:insert( '[[:Catègorie:Vouiquipèdia:començon ' .. comencon.categ .. '|' .. comencon.categ .. ']]' )
		end
		wikiTab
			:insert('</td><td>')
		if comencon.categ then
			wikiTab
				:insert( pagesInCategory( 'Vouiquipèdia:començon ' .. comencon.categ ) )
		end
		wikiTab
			:insert('</td><td>')
			:insert( comencon.dapres )
			:insert('</td></tr>')
	end
	wikiTab:insert('</table>')
	
	-- seconda grelye por los adjèctifs
	wikiTab
		:insert('\n=== Adjèctifs ===\n')
		:insert('<table class="wikitable">')
		:insert('<caption>Lista des adjèctifs</caption>')
		:insert('<th scope=col>adjèctif</th>')
		:insert('<th scope=col>femenin</th>')
		:insert('<th scope=col style="width:50px;">icôna</th>')
		:insert('<th scope=col>chousa</th>')
		:insert('<th scope=col>chousa femenena</th>')
		:insert('<th scope=col>catègoria</th>')
	for k, comencon in ipairs( paramAdj ) do
		wikiTab
			:insert('<tr><td>')
			:insert( comencon.cllaf )
			:insert('</td><td>')
			:insert( comencon.femenin )
			:insert('</td><td>')
		if comencon.icona then
			wikiTab
				:insert( cfg.formatLim:format( comencon.icona, '45x35', comencon.altIcona or '' ) )
		end
		wikiTab
			:insert('</td><td>')
			:insert( comencon.chousa )
			:insert('</td><td>')
			:insert( comencon.chousaF or comencon.chousa:gsub( comencon.nom .. '%f[%W]', comencon.femenin ) )
			:insert('</td><td>')
		if comencon.categ then
			wikiTab
				:insert( '[[:Catègorie:Vouiquipèdia:començon ' .. comencon.categ .. '|' .. comencon.categ .. ']]' )
		end
		wikiTab
			:insert('</td></tr>')
	end
	wikiTab:insert('</table>')
	
	-- trêsiéma grelye por los tipos
	wikiTab
		:insert('\n=== Tipos ===\n')
		:insert('<table class="wikitable">')
		:insert('<caption>Lista des paramètros de tipo</caption>')
		:insert('<th scope=col style="width:15%;">nom</th>')
		:insert('<th scope=col style="width:50px;">icôna</th>')
		:insert('<th scope=col style="width:20%;">tipo</th>')
		:insert('<th scope=col style="width:15%;">chousa</th>')
		:insert('<th scope=col style="width:15%;">catègoria</th>')
		:insert('<th scope=col>mèssâjo</th>')
	for k, comencon in ipairs( paramTipo ) do
		wikiTab
			:insert('<tr><td>')
			:insert( comencon.cllaf )
			:insert('</td><td>')
		if comencon.icona then
			wikiTab:insert( cfg.formatLim:format( comencon.icona, '45x35', comencon.altIcona or '' ) )
		end
		wikiTab
			:insert('</td><td>')
			:insert ( comencon.type )
			:insert('</td><td>')
			:insert( comencon.chousa )
			:insert('</td><td>')
		if comencon.categ then
			wikiTab:insert( '[[:Catègorie:Vouiquipèdia:començon ' .. comencon.categ .. '|' .. comencon.categ .. ']]' )
		end
		wikiTab
			:insert('</td><td>')
			:insert( comencon.messajo )
			:insert('</td></tr>')
	end
	wikiTab:insert('</table>')

	-- parentèses por enlevar la 2nda valor reveriêe per gsub (lo nombro de remplacements fêts)
	return (table.concat( wikiTab ):gsub( ' <adjF?>', '' ))
end

-- Fonccion dèstinâye a l’outil [[MediaWiki:Outil-BendaComençons.js]]
function p.listaComencons( frame )
	local paramComencon = mw.loadData( moduloComencon )
	local lista = {}
	for k in pairs( paramComencon ) do
		if k ~= "" then
			table.insert( lista, k )
		end
	end
	table.sort( lista )
	return table.concat( lista, '\n' )
end



-- Entrebetâ dedens la grelye p de les fonccions apelâyes per los
-- modèlos avouéc ‘n adaptior de fonccion.
local function adaptior(nomFonccion)
	return function (frame)
		local args
		if frame.args.texto or frame.args.titro then
			args = frame.args
		else
			args = frame:getParent().args
		end
		return p[nomFonccion](args)
	end
end
 
local nomsFonccion = {'benda', 'bendaSemonce', 'bendaSeccion', 'començon' } 
for _, nomFonccion in ipairs(nomsFonccion) do
	p[nomFonccion] = adaptior('_' .. nomFonccion)
end

return p
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy