Módulo:contexto
Apariencia
Esta documentación está transcluida desde Módulo:contexto/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 m_str = require("Módulo:String")
local ucfirst = m_str.ucfirst
local lcfirst = m_str.lcfirst
local cap = m_str.ucfirst
local minus = m_str.lcfirst
local strupper = m_str.upper
local strlower = m_str.lower
local strfind = m_str.find
local strmatch = m_str.match
local substr = m_str.sub
local insert = table.insert
local concat = table.concat
local obtener_idioma = require("Módulo:lenguas").cod_a_idioma
local sortkey = require("Módulo:sortkey").generarSortkey
local generar_error = require("Módulo:traza")
local prohibido = {
[','] = true,--'<span class="ib-comma"><span class="qualifier-comma">,</span></span> ',
['o']= true,
['u']= true,
['y']= true,
['e']= true,
[" "] = true,
["_"] = true,
}
local deb = {
["m.p.c"] = true,
["m.p.c."] = true,
["m.t"] = true,
["m.t."] = true,
["mayúscula"] = true,
["minúscula"] = true,
["ordinal compuesto"] = true,
["ordinal-compuesto"] = true,
["mayúscula taxones"] = true,
["mayúscula puntos cardinales"] = true,
["mayúscula disciplinas"] = true,
["m.d"] = true,
["m.d."] = true,
["medieval"] = true,
["epónimo"] = true,
["sigla"] = true,
["siglas"] = true,
["fitovariante"] = true,
["fitovariantes"] = true,
["numero"] = true,
["número"] = true,
["numeral"] = true,
["numerales"] = true,
}
local params = {
[1] = {},
["nota"] = {lista = true},
["leng"] = {},
}
local function f_cat(leng_upper, cat, clave)
return "[[Categoría:"..leng_upper..":"..cat..(clave and "|"..clave.."]]" or "]]")
end
local export = {}
-- funciones nuevas
function export.ambito(frame)
local t = {}
local m = mw.loadData("Módulo:contexto/ámbito")
local parent_frame = frame:getParent()
local args = require("Módulo:parámetros").obtener_parametros(parent_frame.args, params)
local leng = args["leng"] or "es"
local leng_upper = strupper(leng)
local idioma_obj = obtener_idioma(leng)
local ns = mw.title.getCurrentTitle().namespace
local pagename = mw.title.getCurrentTitle().text
local cats = {}
for i, arg in ipairs(args) do
if prohibido[arg] then
error(arg.. ": parámetro obsoleto")
end
local etiqueta, tcat, nota = arg, nil, nil
local x = m[arg] or m[cap(arg)]
if x then
etiqueta = x[1]
tcat = x[2]
nota = x[3]
insert(cats, f_cat(leng_upper, etiqueta, sortkey(pagename, leng, idioma_obj)))
end
if deb[arg] or deb[cap(arg)] then
generar_error("contexto")
end
nota = args["nota"][i] or nota
local st = etiqueta or arg
if nota then
if nota:len() > 20 then
st = st..frame:extensionTag("ref", nota)
else
st = st.." ("..nota..")"
end
end
insert(t, st)
end
return concat(t, ", ")..concat(cats)
end
function export.uso(frame)
local t = {}
local m = mw.loadData("Módulo:contexto/uso")
local parent_frame = frame:getParent()
local args = require("Módulo:parámetros").obtener_parametros(parent_frame.args, params)
local leng = args["leng"] or "es"
local leng_upper = strupper(leng)
local idioma_obj = obtener_idioma(leng)
local ns = mw.title.getCurrentTitle().namespace
local pagename = mw.title.getCurrentTitle().text
local cats = {}
for i, arg in ipairs(args) do
if prohibido[arg] then
error(arg.. ": parámetro obsoleto")
end
arg = strlower(arg)
local etiqueta, ucat, nota = arg, nil, nil
local x = m[arg]
if x then
etiqueta = x[1]
ucat = x[2]
nota = x[3]
if ucat and ucat ~= "" then
insert(cats, f_cat(leng_upper, ucat, sortkey(pagename, leng, idioma_obj)))
end
end
if deb[arg] then
generar_error("contexto")
end
nota = args["nota"][i] or nota
local st = etiqueta or arg
if nota then
if nota:len() > 20 then
st = st..frame:extensionTag("ref", nota)
else
st = st.." ("..nota..")"
end
end
insert(t, st)
end
return concat(t, ", ")..concat(cats)
end
function export.csem(frame)
local t = {}
local m = mw.loadData("Módulo:contexto/csem")
local parent_frame = frame:getParent()
local args = require("Módulo:parámetros").obtener_parametros(parent_frame.args, params)
local leng = args["leng"] or "es"
local leng_upper = strupper(leng)
local idioma_obj = obtener_idioma(leng)
local ns = mw.title.getCurrentTitle().namespace
local pagename = mw.title.getCurrentTitle().text
local cats = {}
for i, arg in ipairs(args) do
if prohibido[arg] then
error(arg.. ": parámetro obsoleto")
end
if arg == "csem" then
generar_error("csem")
end
if strfind(arg, "[gG]entilicio") then
generar_error("gentilicio")
end
arg = ucfirst(arg)
local etiqueta, scat, nota = arg, nil, nil
local x = m[arg]
if x then
etiqueta = x[1]
scat = x[2]
nota = x[3]
if scat and scat ~= "" then
insert(cats, f_cat(leng_upper, scat, sortkey(pagename, leng, idioma_obj)))
end
end
if deb[arg] then
generar_error("contexto")
end
nota = args["nota"][i] or nota
local st = etiqueta or arg
insert(t, i > 1 and lcfirst(st) or st)
end
return concat(t, ", ")..concat(cats)
end
return export