Módulo: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.
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.
-- Modulo para plantilla Categoría de Autor
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 Wikidata = require('Módulo:Wikidata')
local Entidad = mw.wikibase.getEntityObject() or '' -- Tabla con los datos en Wikidata de la persona.
-- Función que devuelve la lista de los valores de una propiedad en Wikidata formateados
function propiedad(idPropiedad,opciones)
if Entidad and Entidad.claims then --and Entidad.claims[idPropiedad] then
if not opciones then
opciones = {}
end
opciones['propiedad'] = idPropiedad
valorPropiedad = Wikidata.getPropiedad(opciones,Entidad.claims[idPropiedad])
if not valorPropiedad or valorPropiedad == '' then
return ''
end
return valorPropiedad
else return ''
end
end
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
local tipo
for i,cadena in ipairs(prefijos) do
if mw.ustring.find(titulo,cadena) then
tipo=cadena
categoria='[[Categoría:'.. tipo ..' por autor]]'
autor=mw.ustring.sub(titulo,mw.ustring.len(tipo) + 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 tabla = html:tag('table'):addClass('divgrande')
local divgrande = tabla:tag('tr')
local celda1= divgrande:tag('td'):addClass('celda1')
local celda2= divgrande:tag('td'):addClass('celda2')
celda1:wikitext('\'\'\'[[Autor:'..autor..'|◄]] Autor: [[Autor:'..autor..'|'..autor..']]\'\'\'')
imagen='Commons-logo.svg'
nombre='Commons'
if propiedad('p373') ~= '' then --categoría en commons
celda2:wikitext('[[Archivo:'..imagen..'|14px|'..nombre..' logo]]'..' [[:c:Category:'..propiedad('p373')..'|'..tipo .. ']] en Wikimedia Commons')
end
html:wikitext(categoria)
if argus[1]~=nil then
html:wikitext(frame:preprocess('{{DEFAULTSORT:' .. argus[1] .. '}}'))
else
html:wikitext(frame:preprocess('{{DEFAULTSORT:' .. autor .. '}}'))
end
return tostring(html)
end
return p