Documentación del módulo
n
n=2
 1. ABCDEFG........................................................................................................................................................................................................
25
 2. HIJKLMN........................................................................................................................................................................................................
29
 3. OPQRSTU........................................................................................................................................................................................................
36
 4. VWXYZ........................................................................................................................................................................................................
49
n=3
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49


nfila2=2
1.
 ABCDEFG........................................................................................................................................................................................................
25
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
espacio=2em
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
símbolo = *
1.
 ABCDEFG********************************************************************************************************************************************************************************************************
25
2.
 HIJKLMN********************************************************************************************************************************************************************************************************
29
3.
 OPQRSTU********************************************************************************************************************************************************************************************************
36
4.
 VWXYZ********************************************************************************************************************************************************************************************************
49
sangría=2em
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
c-an = 6em
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
c-al = left
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
c-val=top
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
e-al = justify
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
e-an = 50%
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
e-des=20px
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
e-val = top
1.
 ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN HIJKLMN........................................................................................................................................................................................................
29
entrada-final = TEST
1.
 ABCDEFG........................................................................................................................................................................................................TEST
25
2.
 HIJKLMN........................................................................................................................................................................................................TEST
29
3.
 OPQRSTU........................................................................................................................................................................................................TEST
36
4.
 VWXYZ........................................................................................................................................................................................................TEST
49
espacio-ancho = 4em
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
n-al = left
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
fondo = beige
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
ancho = 50%
1.
 ABCDEFG........................................................................................................................................................................................................
25
2.
 HIJKLMN........................................................................................................................................................................................................
29
3.
 OPQRSTU........................................................................................................................................................................................................
36
4.
 VWXYZ........................................................................................................................................................................................................
49
t-an = 50%
1.
 ABC........................................................................................................................................................................................................
DEFG25
2.
 HIJ........................................................................................................................................................................................................
KLMN29
3.
 OPQ........................................................................................................................................................................................................
RSTU36
4.
 VWX........................................................................................................................................................................................................
YZ49
t-al=left
1.
 ABC........................................................................................................................................................................................................
DEFG25
2.
 HIJ........................................................................................................................................................................................................
KLMN29
3.
 OPQ........................................................................................................................................................................................................
RSTU36
4.
 VWX........................................................................................................................................................................................................
YZ49
Esta documentación está transcluida desde Módulo:ICP/pruebas/doc.
Por favor, añade las categorías e interwikis a la subpágina de documentación. Subpáginas de este módulo.

local p = {}
local altparams= {['c-an']='capítulo-ancho',
				  ['c-al']='capítulo-alineación',
				  ['c-val']='capítulo-valineación',
				  ['e-an']='entrada-ancho',
				  ['e-al']='entrada-alineación',
				  ['e-val']='entrada-valineación',
				  ['e-des']='entrada-desplazamiento',
				  ['es-an']='espacio-ancho',
				  ['n-an']='espacio-ancho',
				  ['n-al']='número-alineación',
				  ['n-val']='número-valineación',
				  ['t-an']='tercer-ancho',
				  ['t-al']='tercer-alineación',
				  ['t-val']='tercer-valineación',
				  ['an']='width',
				  ['ancho']='width',
}

function entradadiv(text, argus)
	local entrada = mw.html.create() -- cuerpo principal de la plantilla
	-- icp1 = div principal
    local icp1 = entrada:tag('div')
    				:addClass('icp1')
    				:css({['width']=argus['entrada-ancho'],
    					['text-align']=argus['entrada-alineación'],
    					['padding-left']=argus['sangría'],
    					['text-indent']=(argus['sangría'] and '-'..argus['sangría']),
    				})
    -- icpito = pequeño div que oculta el inicio de los "puntos"
	local icpito = icp1:tag('span')
					:addClass('icpito')
					:css({['width']=argus['sangría'],
						['background']=argus['fondo'],
					})
					:wikitext(' ')
	-- icp2 = span que contiene el texto de la entrada
	local icp2 = icp1:tag('span')
					:addClass('icp2')
					:css({['background']=argus['fondo']})
					:wikitext(text)
	-- icp3 = los "puntos"
	local icp3 = icp1:tag('span')
					:addClass('icp3 ws-noexport')
					:css({['letter-spacing']= argus['espacio']})
					:wikitext(string.rep((argus['símbolo'] or '.'),
										 (argus['reps'] or 200)))
	-- icp4 = entrada-final
	local icp4 = icp1:tag('span')
					:addClass('icp4')
					:css({['background']=argus['fondo'],
						['padding-left']=argus['sangría'],
					})
					:wikitext(argus['entrada-final'] or ' ')
	return tostring(entrada)
	
end
function p.ICP( frame ) -- función principal para llamar desde {{ICP}}
    local argus = (frame.args[1] ~= nil) and frame.args or frame:getParent().args

    for k,v in pairs(altparams) do --parámetros con nobmres alternativos.
		if argus[k] and not argus[v] then
			argus[v] = argus[k]
		end
	end

	local html = mw.html.create() -- cuerpo principal de la plantilla
    local tab = html:tag(argus['tag'] or 'table')
    				:addClass('ws-summary')
    				:css({['border-collapse']='collapse', ['border-spacing']='0',
    					['empty-cells']='hide', ['width']=(argus['width'] or '100%'),
    					['margin-left']='auto', ['margin-right']='auto',
    					['font-size']=(argus['tamaño'] or '100%')})
    if argus['estilo'] then  --estilo personalizado, al final para poder sobreescribir todo
		tab:cssText(argus['estilo'])
	end
	local celdasEnFila={}
	local cellcount = 0
	for k, v in pairs( argus ) do
        if type(k) == 'number' then 
            if cellcount < k then  --contar parámetros sin nombre
                cellcount = k
            end
            
        elseif type(k) == 'string' then
          	local rnglow
           	local rnghigh
			
           	rnglow, rnghigh = k:match( '^%s*nfila(%d+)a(%d+)%s*$' )
           	unirow = k:match( '^%s*nfila(%d+)%s*$' )
           	if rnglow and rnghigh then -- si los dos son válidos
           		if tonumber(rnglow) > tonumber(rnghigh) then	-- si el orden está mal, invertir
           			rnglow, rnghigh = rnghigh, rnglow
           		end
            		
           		for rrow = rnglow, rnghigh, 1 do
           			celdasEnFila[rrow] =  celdasEnFila[rrow] or tonumber(v)
           		end
        	elseif unirow then
        		celdasEnFila[tonumber(unirow)] = tonumber(v)
        	end
        	
        end
    end
    mw.log('cellcount',cellcount)
       -- construir filas
       local arguactual=1
       local filaactual=1
       local filasglobal=tonumber(argus['n']) or 3
       local celdasactual = celdasEnFila[1] or filasglobal
       celdasEnFila['G'] = filasglobal

       local maxrow = 1
       
       for k,v in pairs(celdasEnFila) do
			if v > maxrow then maxrow = v end
       end

       while cellcount >0 do
             celdasactual = celdasEnFila[filaactual] or filasglobal
             local primerovacia=maxrow-celdasactual+1
             local row=tab:tag('tr')
             
             for a = 1, celdasactual, 1 do
             if argus[arguactual] then
             	---- formato para 3 celdas por fila
 	        	if celdasactual==3 then
             		if a==1 and argus[arguactual] =='' then
						--row:tag('td'):css('padding','0')
						primerovacia=maxrow-1
					elseif a==1 then
             			row:tag('td'):css({['width']=argus['capítulo-ancho']or '2.5em', ['max-width']=argus['capítulo-ancho'] or '2.5em', ['padding']='0.0em 0.5em 0.0em 0.0em', 
             				['text-align']=argus['capítulo-alineación'] or 'right', ['vertical-align']=argus['capítulo-valineación'] or 'middle'})
             				:wikitext(argus[arguactual])
             		elseif a==2 then
             			row:tag('td'):attr('colspan',primerovacia)
             			:wikitext(entradadiv(argus[arguactual], argus))
             		elseif a==3 then
						row:tag('td'):css({['text-align']=argus['número-alineación'] or 'right', ['vertical-align']=argus['número-valineación'] or 'bottom',
							['padding-left']=argus['margen'] or '1em', ['width']=argus['espacio-ancho'] or '2.0em'})
						    :wikitext(argus[arguactual])             		
             		end
              	---- formato para 2 celdas por fila
         	    elseif celdasactual == 2 then
         			if a==1 then
         				if maxrow > 2 then row:tag('td') end
         				
         				row:tag('td')
         				:wikitext(entradadiv(argus[arguactual], argus))
         			else
         				row:tag('td'):css({['text-align']=argus['número-alineación'] or 'right',
         					['vertical-align']=argus['número-valineación'] or 'bottom',
         					['padding-left']=argus['margen'] or '1em',
         					['width']=argus['espacio-ancho'] or '2.0em'})
						    :wikitext(argus[arguactual]) 
         			end
         		---- formato para 1 celda por fila
         		elseif celdasactual == 1 then
         			row:tag('td'):attr('colspan',maxrow):wikitext(argus[arguactual])
         		---- formato para 4 celdas por fila
         		elseif celdasactual == 4 then
         			if a==1 and argus[arguactual] =='' then
						--row:tag('td'):css('padding','0')
						primerovacia=maxrow-1
					elseif a==1 then
             			row:tag('td'):css({['width']=argus['capítulo-ancho']or '2.5em', ['max-width']=argus['capítulo-ancho'] or '2.5em', ['padding']='0.0em 0.5em 0.0em 0.0em', 
             				['text-align']=argus['capítulo-alineación'] or 'right', ['vertical-align']=argus['capítulo-valineación'] or 'middle'})
             				:wikitext(argus[arguactual])
             		elseif a==2 then
             			row:tag('td'):attr('colspan',primerovacia)
             			:wikitext(entradadiv(argus[arguactual], argus))
             		elseif a==3 then
             			row:tag('td'):wikitext(argus[arguactual]):css({['width']=argus['tercer-ancho'] or '15%', ['padding-left']=argus['margen'] or '1em', ['text-align']=argus['tercer-alineación'] or 'right',['vertical-align']=argus['tercer-valineación'] or 'middle'})
             		elseif a==4 then
						row:tag('td'):css({['text-align']=argus['número-alineación'] or 'right', ['vertical-align']=argus['número-valineación'] or 'bottom',
							['padding-left']=argus['margen'] or '1em', ['width']=argus['espacio-ancho'] or '2.0em'})
						    :wikitext(argus[arguactual])             		
             		end		
         		elseif argus[arguactual] ~='' then
         			row:tag('td'):wikitext(argus[arguactual])
         		end
         	end
             	arguactual = arguactual + 1
             	cellcount  = cellcount - 1
             end
             filaactual = filaactual + 1
       end
    --[['<span style="float:left;letter-spacing:' .. (args['leaderspacing'] or '4px') .. ';">' ..
          string.rep((args['leadersym'] or '.'),(args['leaderrepeat'] or 384)) ..
          '</span>]]

    

    return tostring(html)
end


return p