Módulo:Data

De Wikisource, la biblioteca libre.
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 a true las abreviaturas no distinguen entre mayúscula y minúscula: Anim. es lo mismo que anim..
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.

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