Diferencia entre revisiones de «Módulo:Zona de pruebas/Juan Mayordomo/Ficha de persona»

Contenido eliminado Contenido añadido
Sin resumen de edición
Sin resumen de edición
Línea 12:
local ModuloFicha = require('Módulo:Ficha')
local ModuloFormatoTexto = require('Módulo:Formato texto')
local enVariasLineas textoEnMayusculas = ModuloFormatoTexto.enVariasLineasenMayusculas
local entreParentesis textoEnVariasLineas = ModuloFormatoTexto.entreParentesisenVariasLineas
local textoEntreParentesis = ModuloFormatoTexto.entreParentesis
local ModuloIdentificadores = require('Módulo:Identificadores')
local ModuloPaginas = require('Módulo:Páginas')
--local ModuloWikidataFormatos = require('Módulo:Wikidata/Formatos') -- FALTA
local ModuloWikidataFormatos = require('Módulo:Zona de pruebas/Juan Mayordomo/Wikidata/Formatos')
local formatoFacebook = ModuloWikidataFormatos.formatoFacebook
local formatoTwitter = ModuloWikidataFormatos.formatoTwitter
Línea 23:
local formatoPeriodo = ModuloWikidataFormatos.formatoPeriodo
local ModuloWikidata = require('Módulo:Wikidata')
local lapizWikidata = ModuloWikidata.addLinkback
local categorizarWikidata = ModuloWikidata.categorizar
local getPropiedadWikidata = ModuloWikidata.getPropiedad
Línea 38 ⟶ 39:
local conPeriodoDebeExistir = {['lista'] = 'no ordenada', ['formatoTexto'] = 'mayúscula', ['calificativo'] = formatoPeriodo, ordenar='por fecha', ['debeExistir'] = 'sí', ['linkback']='sí'}
local sinEnlazar = {['enlace']='no', ['linkback']='sí'}
local sinLapiz = {}
local normal = {['linkback']='sí'}
local sinLapiz = {}
 
local nombre = ''
 
 
function fechaiso(x)
Línea 113:
local area = argumento['área'] or argumento['area'] or argumento['especialidad'] or argumento['campos']
if not ocupacion and not area and Entidad then
--if true then return require('Módulo:Tablas').tostring(Entidad) end
ocupacion = propiedad('P106', {['formatoTexto'] = 'mayúscula', ['valor-función']=funcionOcupacion, ['calificativo'] = formatoPeriodo, ['linkback']='sí'})
--ocupacion = propiedad('P106', {['formatoTexto'] = 'mayúscula', ['valor-función']=funcionOcupacion, ['calificativo'] = formatoPeriodo, ['linkback']='sí'})
local declaracion = elementoTabla(Entidad, 'claims','P106')
local k, v
local valorOcupacion, idOcupacion
local ocupaciones = {}
 
if declaracion then
for k,v in pairs(declaracion) do
valorOcupacion = elementoTabla(v, 'mainsnak', 'datavalue', 'value')
if valorOcupacion then
if funcionOcupacion == formatoOcupacionFemenino then
-- falta formatoOcupacionFemenino(valor, opciones, frame, calificativos)
else
-- falta el periodo
table.insert(ocupaciones, ModuloWikidataFormatos.enlazar(ModuloWikidataFormatos.obtenerDatos(valorOcupacion)))
end
end
end
end
if ocupaciones[1] then
ocupacion = lapizWikidata(textoEnMayusculas(mw.text.listToText( ocupaciones, ', ', ' y ' )),Entidad.id,'P106')
-- falta crear función en el módulo formato texto. Copiar parte de lo que se hace
-- en la función p.getPropiedad en el módulo:wikidata con el separador y la conjunción.
end
 
area = propiedad('P101', enMayusculas) -- Campo de trabajo
end
Línea 123 ⟶ 152:
obtenerEtiquetaWikidata() or
ModuloPaginas.nombrePagina({desambiguar='sí'})
 
local nombre_nacimiento = propiedad('P1477') orlocal propiedad('P513')nombre_completo or = argumento['nombre de nacimientocompleto']
local nombre_nativo nombre_nacimiento = argumento['nombre nativode nacimiento'] or propiedad('P1559P1477')
local nombre_nacimiento_sin_lapiz = argumento['nombre de nacimiento'] or propiedad('P1477', sinLapiz)
 
-- Nombre en la escritura nativa.
-- Solo se muestra si no coincide con el nombre o el nombre de nacimiento o el nombre completo
local nombresNativos={tipo='sección'}
local nombreNativo, textoNombreNativo, idiomaNombreNativo
if argumento['nombre nativo'] then
if argumento['nombre nativo'] ~= nombre and
argumento['nombre nativo'] ~= nombre_nacimiento_sin_lapiz and
argumento['nombre nativo'] ~= nombre_completo then
table.insert(nombresNativos,{'Nombre nativo', argumento['nombre nativo']})
end
elseif Entidad then
-- En el caso de obtener de Wikidata puede haber varios nombres nativos
local declaracion = elementoTabla(Entidad, 'claims','P1559')
if declaracion then
 
for k,v in pairs(declaracion) do
nombreNativo = elementoTabla(v, 'mainsnak', 'datavalue', 'value')
if nombreNativo then
textoNombreNativo = nombreNativo.text
idiomaNombreNativo = nombreNativo.language
if textoNombreNativo and idiomaNombreNativo and
textoNombreNativo ~= nombre and
textoNombreNativo ~= nombre_nacimiento_sin_lapiz and
textoNombreNativo ~= nombre_completo then
table.insert(nombresNativos, {
'Nombre en ' .. mw.language.fetchLanguageName(idiomaNombreNativo, 'es') ,
lapizWikidata(textoNombreNativo,Entidad.id,'P1559')
}
)
end
end
end
end
 
end
-- Informar los datos de nacimiento y de fallecimiento
local nacimiento = enVariasLineastextoEnVariasLineas({
argumento['fecha de nacimiento'] or propiedad('P569', enMayusculasO),
argumento['lugar de nacimiento'] or propiedad('P19', lugar)
})
local fallecimiento = enVariasLineastextoEnVariasLineas({
argumento['fecha de fallecimiento'] or (obtenerDatosWikidata and entreParentesistextoEntreParentesis(propiedad('P570', enMayusculasO), obtenerEdadWikidata())),
argumento['lugar de fallecimiento'] or propiedad('P20', lugar)
})
Línea 240 ⟶ 309:
else
cargosocupados = propiedad('P39', {['lista'] = 'no ordenada', ['formatoTexto'] = 'mayúscula',
--['calificativo'] = formatoPeriodo,
ordenar='por fecha',
['linkback']='sí',
Línea 311 ⟶ 379:
['titulo'] = 'Información personal', -- Ver la ficha de noble o la ficha de diseñador
estilotitulo = estilotitulo,
{'Nombre de nacimientocompleto', (nombre_nacimiento ~= nombre) and nombre_nacimiento}, -- solo si no coincide con el nombre que se muestra en el título de la ficha -- solo si no coincide con:
{'Nombre (nombre_completo nativo',~= nombre) and (nombre_nativo ~= nombre) and (nombre_nativo ~= nombre_nacimiento) and nombre_nativo}, -- Es para el nombre en la escritura-- nativa. Si no coincide con- el nombre oque conse muestra en el nombretítulo de nacimientola ficha
(nombre_completo ~= nombre_nacimiento_sin_lapiz) and -- - o con el nombre de nacimiento
nombre_completo},
{'Nombre de nacimiento', -- solo si no coincide con el nombre que se muestra en el título de la ficha
(nombre_nacimiento_sin_lapiz ~= nombre)
and nombre_nacimiento},
nombresNativos,
{'Apodo', argumento['apodo']},
{'Otros nombres', argumento['otros nombres'] or argumento['alias'], -- ¿No es lo mismo que el apodo?????
Línea 321 ⟶ 395:
propiedad('P509', enMayusculas) or
propiedad('P1196', enMayusculas)}, -- circunstancias de la muerte
{'Lugar de sepultura', argumento['lugar_de_descansolugar de descanso'] or propiedad('P119', debeExistir)},
 
{'Residencia', sinBandera(argumento['residencia'] or
Línea 342 ⟶ 416:
argumento['etnia'] or argumento['grupo étnico'],
clase='category'},
{'Religión', argumento['religión'] or propiedad('P140', enMayusculasdebeExistir) or argumento['religión']},
{'Orden religiosa', argumento['congregación'] or propiedad('P611', enMayusculas) or argumento['congregación']},
{'Partido político', argumento['partido político'] or argumento['partido'] or propiedad('P102')},
{'Otras afiliaciones políticas', argumento['afiliaciones'] or propiedad('P1416')},
Línea 350 ⟶ 424:
{tipo='sección',
estilotitulo = estilotitulo,
['titulo'] = 'Características físicas', -- Ver la ficha de noble o la ficha de diseñador
{'Altura', argumento['altura'] or argumento['estatura'] or propiedad('P2048')},
{'Peso', argumento['peso'] or propiedad('P2067')},
Línea 357 ⟶ 431:
{'Cabello', argumento['color de cabello']},
{'[[Implante de mama|Pecho natural]]', argumento['busto natural']},
--{'[[Orientación sexual]]', propiedad('P91', enMayusculas) or argumento['orientación sexual'] or argumento['orientación real']}
},
{tipo='sección',
Línea 367 ⟶ 440:
-- En el caso del cónyuge tiene preferencia el argumento hasta que se muestre los calificativos.
clase ='plainlist', -- Mostrar las listas sin viñetas
{'Familia nobiliaria', propiedad('P53', debeExistir)},
{(padres and 'Padres') or (padre and 'Padre') or 'Madre', -- Mostrar padres, padre o madre según esté informado ambos o solo uno de ellos
padres or padre or madre},
Línea 374 ⟶ 447:
{'Pareja', estaEnlazado(argumento['pareja'] or propiedad('P451', conPeriodo))},
{'Hijos', estaEnlazado(argumento['hijos'] or argumento['Hijos']) or
propiedad('P40', {['lista'] = 'no ordenada', ['debeExistir'] = 'sí', ['linkback']='sí'})},
{'Familiares', estaEnlazado(argumento['familiares'])}, --- ¿¿¿¿¿¿¿¿¿??????????? -- Hermano: P7, padastro: p43, pariente: p1038
},
Línea 382 ⟶ 455:
{'Educación', educacion},
{'Alma máter', almamater, clase='plainlist'},
{etiquetaAlumnoDe, propiedad('P1066', conPeriodoDebeExistir), clase='plainlist'},
{'Posgrado', argumento['posgrado']},
{'Supervisora doctoral[[Tesis]]', argumento['supervisora_doctoral']},
textoEntreParentesis(
{'Supervisores doctorales' , argumento['supervisores_doctorales']},
(argumento['url tesis'] and enlazarURL(argumento['url tesis'], ModuloFormatoTexto.enCursivas(argumento['título tesis']))-- Si se informa la url
{'Supervisor doctoral' , argumento['supervisor_doctoral'] or propiedad('P184')},
{'[[Tesis]]', ) or enlazarURL(not argumento['tesis_urlurl tesis'], and ModuloFormatoTexto.enCursivas(argumento['tesis_título']),título argumento['tesis_añotesis'])}, -- Si no se informa la url
)
, argumento['año tesis'])
},
{'Supervisora doctoral', argumento['supervisora doctoral']},
{'Supervisores doctorales' , argumento['supervisores doctorales']},
{'Supervisor doctoral' , argumento['supervisor doctoral'] or propiedad('P184')},
{etiquetaAlumnoDe, argumento['alumno de'] or propiedad('P1066', conPeriodoDebeExistir), clase='plainlist'},
},
{tipo='sección',
Línea 394 ⟶ 473:
{'Ocupación', ocupacion, clase='role'},
{'Área', area},
{etiquetaConocidoPor, argumento['conocido por'] or argumento['conocido por']},
{'Cargos ocupados', cargosocupados,clase='plainlist'}, -- políticos o en empresas
{'Empresa', argumento['empresa']},
Línea 425 ⟶ 504:
propiedad('P108', conPeriodo),
clase ='plainlist'},
--Profesores
{'Estudiantes doctorales', argumento['estudiantes doctorales'] or propiedad('P185', debeExistir)},
{'Estudiantes', argumento['estudiantes'] or propiedad('P802', debeExistir)},
{'Restaurantes', argumento['restaurantes']}, -- Para cocineros. Restaurantes en los que ha trabajado.
Línea 434 ⟶ 516:
},
-- Ocupación (escritores, artistas, periodistas, diseñadores, etc)
-- Información artística
{'[[Seudónimo]]', argumento['seudónimo'] or argumento['Seudónimo'] or propiedad('P742')},
{tipo='sección',
{'Lengua de producción literaria', argumento['lengua_literaria'] or argumento['Lengua_literaria']},
{'Género[[Seudónimo]]', argumento['géneroseudónimo'] or argumento['GéneroSeudónimo'] or propiedad('P136P742', enMayusculas)},
{'[[MovimientoLengua artístico|Movimientos]]de producción literaria', argumento['movimientolengua_literaria'] or argumento['Lengua_literaria']},
{'Género', argumento['género'] or argumento['Género'] or propiedad('P136', enMayusculas)},
{'[[Instrumento musical|Instrumento(s)]]', argumento['instrumento'] or propiedad('P1303', enMayusculas)},
{'[[Compañía discográfica|Discográfica(s)]]', argumento['compañía discográfica'] or propiedad('P264', conPeriodo), clase='plainlist'},
{'[[Movimiento artístico|Movimientos]]', argumento['movimiento'] or
argumento['Movimiento'] or
argumento['movimientos'] or
propiedad('P135', enMayusculas)},
},
-- Obras notables. Se ponen de momento en cursivas pero es incorrecto en el caso de arquitectos.
{'Obras notables', argumento['obras destacadas'] or
Línea 451 ⟶ 537:
},
{'Artistas relacionados', argumento['relacionados']},
{'[[Autor de nombre científico#Abreviatura del autor|Abreviatura en botánica]]',
argumento['abreviatura en botánica'] or propiedad('P428')},
{'[[Autor de nombre científico|Abreviatura en zoología]]',
argumento['abreviatura en zoología'] or propiedad('P835')},
{'[[Autor de nombre científico|Abreviatura en astronomía]]',
argumento['abreviatura en astronomía']},
--{'', listaDesplegable(etiquetaInfluencias, argumento['influenciado por'] or argumento['influido por'] or
-- argumento['influencias'] or argumento['Influencias'], frame)},
--{'', listaDesplegable('Influyó a', argumento['influyó en'] or argumento['influyó'] or argumento['Influyó'], frame)},
-- Militares
Línea 474 ⟶ 566:
{'Sucesor', argumento['sucesor']},
},
{'Miembro de', argumento['miembro de'] or propiedad('P463', conPeriodoDebeExistir), clase='plainlist'},
},
 
Línea 531 ⟶ 623:
{'', argumento['notas'], estilodatos='text-align:left;font-size:90%; line-height:1.2em'}
},
--{'Fuente biográfica', argumento['fuentebiográfica']},
}
 
categorias = {}
if argumento['lugar_de_descanso'] or --renombrado
-- Ahora la categoría se informa en Módulo:Wikidata/Formatos
argumento['supervisora_doctoral'] or --renombrado
--if algunaPropiedadEnlazaWikidata then
argumento['supervisores_doctorales'] or --renombrado
-- categorias = '[[Categoría:Wikipedia:Páginas con propiedades de Wikidata sin etiqueta]]'
argumento['supervisor_doctoral'] or --renombrado
--end
argumento['tesis_url'] or --renombrado
argumento['tesis_título'] or --renombrado
argumento['tesis_año'] or --renombrado
argumento['abreviatura en astronomía']
--or argumento['influyó en'] or argumento['influyó'] or argumento['Influyó'] -- eliminado
--or argumento['predecesor'] or argumento['sucesor']-- eliminado
or argumento['fuentebiográfica'] --por eliminar
or argumento['mail'] --por eliminar
then
table.insert(categorias, '[[Categoría:Wikipedia:Páginas con parámetros a reemplazar de la plantilla ficha de persona ]]')
end
if nacimiento and not fallecimiento then