Módulo:Data
Apariencia
[editar] [ ]
Documentación del módulo
Uso
Este módulo permite cargar distintos tipos de datos específicos para cada obra, dependiendo del uso. Por el momento solo se utiliza en la plantilla {{abbr}}.
La plantilla, como ahora, toma hasta 2 parámetros sin nombre.
- 1
- la forma abreviada
- 2
- la abreviatura.
La diferencia, es que se puede precargar una lista de las abreviaturas que se encuentran en una obra, principalmente diccionarios.
Para poder reconocerlas, tanto el nombre del índice como el de la página donde se hará la transclusión deben estar en la tabla de la función getData, y apuntar a una subpágina válida. Ejemplos de subpáginas pueden ver acá.
Variables
Pueden asignarse ciertas variables que modifiquen el funcionamiento de las plantillas. Deben ingresarse de la misma manera que las abreviaturas, como acá
|CASE_INSENSIBLE=
: si su valor es igual atrue
las abreviaturas no distinguen entre mayúscula y minúscula:Anim.
es lo mismo queanim.
.
- Módulos precargados
Esta documentación está transcluida desde Módulo:Data/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.
local p = {}
function getData (name) -- ['Nombre de la página (base)'] = 'subpágina de este módulo con los datos a cargar' --
local DATA = {
['Diccionario etimolójico de las voces chilenas derivadas de lenguas indígenas americanas.djvu'] = 'Lenz1',
['Diccionario etimológico de las voces chilenas derivadas de lenguas indígenas americanas'] = 'Lenz1',
['Diccionario Manual Isleño.pdf'] = 'Cavada',
['Diccionario manual isleño'] = 'Cavada',
}
return DATA[name] or false
end
function p.abbrev( frame )
local args = {}
local title = mw.title.getCurrentTitle()
local baseTitle = title.rootText
local abbrevs = {}
-- variables de datos
local CASE_SENSIBLE = false
--plantilla
for k,v in pairs(frame:getParent().args) do -- crea una tabla con los parámetros incluídos en la plantilla
args[k] = v
end
local tag = mw.html.create('abbr'):addClass('ws-abbr')
local datapage = getData(baseTitle)
if datapage then
abbrevs = mw.loadData('Module:Data/'..datapage) --carga la tabla con los datos de las abreviaturas
--cargar variables
CASE_INSENSIBLE = abbrevs['CASE_INSENSIBLE'] or false--variable de sensibilidad mayúscula-minúscula
end
tag:wikitext(args[1])
-- en caso de insensiblidad mayúsculas, convertir a minúsculas DESPUÉS de fijar el texto.
if CASE_INSENSIBLE then
args[1] = mw.ustring.lower(args[1])
end
tag:attr('title', (args[2] or abbrevs[args[1]] or ''))
return tostring(tag)
end
return p