Diferencia entre revisiones de «Módulo:Biocitas»

Contenido eliminado Contenido añadido
pruebas: permitir parámetros en mayúsculas, minúsculas o mixtos, lo que sea
pruebas primero en test!! lo siento
Línea 3:
local Entidad = mw.wikibase.getEntityObject() or '' -- Tabla con los datos en Wikidata de la persona.
--parámetros reconocidos. 1 = vigente, 0 = obsoleto
local params ={['textoTexto']=1,['obrasObras']=1,['documentosDocumentos']=1,['fotoFoto']=1,['wikipediaWikipedia']=1,['wikiquoteWikiquote']=1,['wikinoticiasWikinoticias']=1,['commonsCommons']=1,['wikispeciesWikispecies']=1,['añomuerteAñoMuerte']=1,['siglomuerteSigloMuerte']=1,['añonacimientoAñoNacimiento']=1,['siglonacimientoSigloNacimiento']=1,['ordenarOrdenar']=1,['inicialInicial']=1,['añosmuerteAñosMuerte']=0,['vivoVivo']=1,['paísPaís']=1}
local categorias = ''
 
Línea 56:
 
--extract year or century
local date = args['añoAño' .. fieldUpper]
if date == nil then
date = args[field]
Línea 68:
struct.century = computeCenturyFromYear(struct.year)
struct.precision = 9
elseif args['sigloSiglo' .. fieldUpper] ~= nil then
struct.century = tonumber(args['sigloSiglo' .. fieldUpper])
struct.precision = 7
end
Línea 81:
struct.text = date
end
if args['textoTexto' .. fieldUpper] ~= nil then
struct.precision = 0 --we don't know anything
struct.text = args['Texto' .. fieldUpper] .. ' ' .. struct.text
end
if args['inciertoIncierto' .. fieldUpper] ~= nil and struct.text ~= nil then
struct.precision = 0 --we don't know anything
struct.text = args['Incierto' .. fieldUpper] .. ' ' .. struct.text
Línea 103:
local sep = "<span style='display:inline-block; width:2em;'>&nbsp;</span>" --separador de la imagen y el texto
local sitios ={ --esta variable contiene los sitios reconocidos con posibles enlaces, y su nombre técnico
['wikipediaWikipedia']= 'eswiki',
['wikiquoteWikiquote']='eswikiquote',
['wikinoticiasWikinoticias']='eswikinews',
['commonsCommons']='commonswiki',
['wikispeciesWikispecies']='specieswiki'
}
 
Línea 126:
:wikitext('[[Archivo:'..imagen..'|28px|'..nombre..' logo]]'..sep..texto1..Entidad:getSitelink(sitio)..texto2)
creado = true
elseif sitio =='commonswiki' and propiedad('p373') ~= '' then --categoría en commons
elemento
:wikitext('[[Archivo:'..imagen..'|28px|'..nombre..' logo]]'..sep..texto1..'category:'..propiedad('p373')..texto2)
Línea 267:
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
if v ~= '' then
argus[k] = v
argus[mw.ustring.lower(k)] = v -- todos los parámetros en minúsculas por defecto:
end
end
Línea 292:
 
-- Foto --
if argus['fotoFoto'] ~= '' and argus['fotoFoto'] ~= nil then
foto:wikitext("[[File:"..argus['fotoFoto'].."|frameless|upright]]")
elseif propiedad('p18') ~= '' then
Línea 303:
-- Texto de al medio
if argus['textoTexto'] ~= '' and argus['textoTexto'] ~= nil then
medio:wikitext(argus['textoTexto'])
else
medio:wikitext("Con el parámetro '''''Texto=''''' Puedes incluir la linea de información relativa a sus fechas de nacimiento y defunción así como su lugar. También puedes incluir algún breve apunte.")
Línea 319:
---- Enlaces uno por uno ---
if argus['obrasObras'] ~= 'none' then --Obras (aparece siempre por defecto a menos que se defina como none)
obrasWS = crearelementolista()
if argus['obrasObras'] ~= '' and argus['obrasObras'] ~= nil then
obrasWS
:wikitext("[[Archivo:Wikisource-logo.png|28px|Wikisource logo]]"..sep.."[[:Categoría:Obras literarias de "..argus['obrasObras'].."|Sus obras literarias]]")
else
obrasWS
Línea 332:
-- crea elementos para el resto de los enlaces
crearelemento(frame,argus,listaenlaces,'documentosDocumentos','Wikisource-logo.png','[[:Categoría:Documentos de ','|Sus documentos]]')
crearelemento(frame,argus,listaenlaces,'wikipediaWikipedia','Wikipedia-logo-v2-es.svg','[[w:es:','|Biografía]]')
crearelemento(frame,argus,listaenlaces,'wikiquoteWikiquote','Wikiquote-logo-en.png','[[q:es:','|Citas]]')
crearelemento(frame,argus,listaenlaces,'wikinoticiasWikinoticias','Wikinews-logo-en.png','[[n:es:','|Noticias]]')
crearelemento(frame,argus,listaenlaces,'commonsCommons','Commons-logo.svg','[[commons:','|Multimedia]]')
crearelemento(frame,argus,listaenlaces,'wikispeciesWikispecies','Wikispecies-logo.svg','[[wikispecies:','|Especies descritas]]')
--- Índice de autores ---
Línea 353:
end
---- variables para manejar fechas de muerte y nacimiento
local nacimiento = getDateFromArgs(argus, 'nacimiento', 'nacimientoNacimiento')
local muerte = getDateFromArgs(argus, 'muerte', 'muerteMuerte')
local sexo = propiedad('p21')
local nacimientoWikidata = nil
Línea 419:
anomuerte = getTextForYear(muerte.year)
end
local anosmuerte = argus['añosmuerteAñosMuerte']
if argus['añomuerteAñoMuerte'] ~= '' and argus['añomuerteAñoMuerte'] ~= nil then
anomuerte = argus['añomuerteAñoMuerte']
elseif argus['siglomuerteSigloMuerte'] ~= '' and argus['siglomuerteSigloMuerte'] ~= nil then
anomuerte = (tonumber(argus['siglomuerteSigloMuerte']))*100
end
--artículos sin información de año de muerte
if (argus['vivoVivo']==nil or argus['vivoVivo']=='') and (anomuerte == '' or anomuerte ==nil) and (muerte.century == '' or muerte.century ==nil) then
categorias = categorias..'[[Categoría:Wikisource:Artículos de autores sin información de año de muerte]]'
end
Línea 444:
-- categorías--
categorias=categorias.."[[Categoría:Autores]]"
if argus['vivoVivo'] and mw.ustring.lower(argus['vivoVivo']) ~= 'no' then
categorias=categorias.."[[Categoría:Personas vivas]]"
end
-- categorizar por país: primera prioridad la tienen
if argus['paísPaís'] ~= nil and argus['paísPaís'] ~='' then
categorias=categorias.."[[Categoría:Autores "..frame:preprocess("{{gentilicio|"..argus['paísPaís'].."|mp}}").."]]"
else
argus['paísPaís'] = propiedad('P27',{['conjunción']=','})
if argus['paísPaís'] ~= nil and argus['paísPaís'] ~='' then
for _,v in ipairs(mw.text.split(argus['paísPaís'], '[,]')) do --el módulo Wikidata entrega la información en palabras separadas por coma y por "y". Esto convierte esa información en una tabla y itera en sus ítems (para autores con más de una nacionalidad)
--categoría Autores por país: usa plantilla {{gentilicio}}
categorias=categorias.."[[Categoría:Autores "..frame:preprocess("{{gentilicio|"..v.."|mp}}").."]]"
Línea 475:
 
-- Ordenar e Iniciales--
if argus['ordenarOrdenar'] ~= nil then
if argus['inicialInicial'] == nil then
argus['inicialInicial'] = string.sub(argus['ordenarOrdenar'], 1, 1) --Si no está especificada la inicial, la saca de la primera letra de la llave de ordenado.
end
html:wikitext(frame:preprocess('{{DEFAULTSORT:' .. argus['irdenarOrdenar'] .. '}}'))
categorias=categorias..'[[Categoría:Autores-'..argus['inicialInicial']..']]' --categoría Autores-X
else
html:wikitext(errorMessage("El parámetro «|Ordenar=» es obligatorio"))