Módulo:Data
[editar] [ ]

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
Por favor, añade las categorías a la subpágina de documentación.
(subpáginas - enlaces)
Los editores pueden experimentar en la zona de pruebas
Por favor, añade las categorías a la subpágina de documentación.
(subpáginas - enlaces)
local p = {}
local str = require('Módulo:String')
function getData (name) -- ['Nombre de la página (base)'] = 'subpágina de este módulo con los datos a cargar' --
return mw.loadData('Module:Data/Data')[name]
end
function p.abbrev( frame )
local args = {}
local title = mw.title.getCurrentTitle()
local baseTitle = title.rootText
local abbrevs = {}
--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')
tag:wikitext(args[1])
-- Modo simple, con dos parámetros
if args[2] then
tag:attr('title', (args[2] or ''))
return tostring(tag)
end
-- Modo inteligente, con un parámetro
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'] --variable de sensibilidad mayúscula-minúscula
if CASE_INSENSIBLE then args[1] = mw.ustring.lower(args[1]) end
tag:attr('title', (args[2] or abbrevs[args[1]] or ''))
end
return tostring(tag)
end
function p.bib( frame )
local args = {}
local title = mw.title.getCurrentTitle()
local baseTitle = title.rootText
local abbrevs = {}
--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('span'):addClass('ws-citation')
local text = args[1]
-- Modo simple, con dos parámetros
if args[2] then
tag:wikitext('[['..args[2]..'|'..text..']]')
return tostring(tag)
end
-- Modo inteligente, con un parámetro
local datapage = getData(baseTitle)
if datapage then
local bibs = mw.loadData('Module:Data/'..datapage) --carga la tabla con los datos de las abreviaturas
--cargar variables
CASE_INSENSIBLE = bibs['CASE_INSENSIBLE'] --variable de sensibilidad mayúscula-minúscula
if CASE_INSENSIBLE then args[1] = mw.ustring.lower(args[1]) end
local key = str.delink(args[1])
args[2] = bibs[key]
end
if args[2] then
tag:wikitext('[['..args[2]..'|'..text..']]')
return tostring(tag)
end
tag:wikitext(text)
return tostring(tag)
end
return p