Ir al contenido

Módulo:Categoría de autor

De Wikisource, la biblioteca libre.
Documentación del módulo

Uso

En plantilla {{Categoría de autor}}
Esta documentación está transcluida desde Módulo:Categoría de autor/doc.
Los editores pueden experimentar en la zona de pruebas de este módulo.
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 prefijos ={ 'Obras', 'Documentos', 'Traducciones', 'Poesías', 'Discursos',
	'Sonetos', 'Cuentos', 'Novelas', 'Epístolas', 'Ensayos', 'Artículos', 'Teatro', 'Fábulas',
	'Canciones' , 'Odas', 'Romances', 'Villancicos', 'Entremeses', 'Autos Sacramentales', 
	'Jácaras', 'Mojigangas', 'Décimas' , 'Tangos', 'Decretos', 'Ilustraciones' , 
	'Biografías', 'Bulas', 'Encíclicas', 'Tragedias', 'Comedias', 'Idilios', 'Crónicas' }

local Enlaces = require('Módulo:Enlaces') 

function p.cat( frame )
	local argus = {}
	for k,v in pairs(frame.args) do
		argus[k] = v 
	end
	for k,v in pairs(frame:getParent().args) do -- crea una tabla con los parámetros incluídos en la plantilla, y elimina parámetros vacíos
		argus[k] = v 
	end
	local titulo = mw.title.getCurrentTitle().baseText
	local categoria = ''
    local autor=''	
	local html = mw.html.create() -- cuerpo principal de la plantilla
    for i,cadena in ipairs(prefijos) do
    	if mw.ustring.find(titulo,cadena) then
    		tipo = cadena
    		categoria='[[Categoría:'.. cadena ..' por autor]]'
    		autor=mw.ustring.sub(titulo,mw.ustring.len(cadena) + 4)  -- mas 4 por el ' de '
    		break
    	end
    end
    if tipo=='Biografías' then
    		autor=mw.ustring.sub(titulo,mw.ustring.len(tipo) + 14) -- mas 14 por el ' escritas por '
    end
    autor = argus[2] or autor --posibilidad de autor explícito cuando es diferente del nombre de la categoría 
    if not(tipo=='Documentos' or tipo=='Obras' or tipo=='Decretos' or tipo=='Bulas' or tipo=='Encíclicas' or tipo=='Discursos') then
    	categoria=categoria .. '[[Categoría:Obras de ' .. autor ..'|'..mw.title.getCurrentTitle().text.. ']]' 
    end
    if tipo=='Epístolas' or tipo=='Decretos' or tipo=='Bulas' or tipo=='Encíclicas' or tipo=='Discursos' then
    	if  mw.title.new( 'Documentos de ' .. autor, 'Categoría' ).exists == true then
    			categoria=categoria .. '[[Categoría:Documentos de ' .. autor ..'|'..mw.title.getCurrentTitle().text.. ']]'  
    			
    	end
    end
    local div = html:tag('div'):addClass('divgrande')
    local celda1= div:tag('div'):addClass('celda1')
    local celda2= div:tag('div'):addClass('celda2')
	celda1:wikitext('\'\'\'[[Autor:'..autor..'|◄]] Autor: [[Autor:'..autor..'|'..autor..']]\'\'\'') 
    
	html:wikitext(categoria)
	if argus[1]~=nil then
		html:wikitext(frame:preprocess('{{DEFAULTSORT:' .. argus[1] .. '}}'))
	else
		html:wikitext(frame:preprocess('{{DEFAULTSORT:' .. autor .. '}}'))
	end
	
	-- ACÁ PRUEBAS CON ENLACES --
	local QID = mw.wikibase.getEntityIdForTitle( 'Autor:'..autor )
	
	local listaenlaces = Enlaces.all(frame, {wikidata = QID})
	celda2:wikitext(Enlaces.formattedlinks(listaenlaces))
	return tostring(html)
end

return p