De Muysc cubun - Lengua Muisca
La documentación para este módulo puede ser creada en Módulo:Conjugador/doc
local p = {}
-- Limpia el nombre de la página:
-- Quita espacios, números y paréntesis tipo (2), (3), etc.
local function cleanPageName(pageName)
pageName = mw.text.trim(pageName or "")
-- Elimina cualquier cosa que esté entre paréntesis y los paréntesis mismos
pageName = mw.ustring.gsub(pageName, "%s*%b()", "")
-- Por seguridad, eliminamos cualquier número que haya quedado suelto al final
pageName = mw.ustring.gsub(pageName, "%d+", "")
return mw.text.trim(pageName)
end
-- Detecta la clase (sq o su)
local function normalizeClass(rawClass)
rawClass = mw.text.trim(rawClass or "")
rawClass = mw.ustring.lower(rawClass)
if mw.ustring.find(rawClass, "sq") then
return "sq."
elseif mw.ustring.find(rawClass, "su") then
return "su."
end
return ""
end
-- Lógica para extraer la raíz
local function getRoot(pageName, clase, manualRoot)
manualRoot = mw.text.trim(manualRoot or "")
if manualRoot ~= "" then
return manualRoot
end
-- 1. Limpiamos el nombre: "nysqua(2)" -> "nysqua"
local fullVerb = cleanPageName(pageName)
local root = fullVerb
-- 2. Quitamos la terminación según la clase
-- Usamos "^" y "$" para asegurar que trate la palabra completa si es necesario,
-- pero aquí lo más importante es que ya no hay paréntesis.
if clase == "sq." then
root = mw.ustring.gsub(fullVerb, "squa$", "")
elseif clase == "su." then
root = mw.ustring.gsub(fullVerb, "suca$", "")
end
-- Si por alguna razón la clase no coincide, intentamos una limpieza genérica
if root == fullVerb then
root = mw.ustring.gsub(fullVerb, "s[uq]ua$", "")
end
return root
end
-- ... (resto de funciones de construcción se mantienen igual)
function p.render(frame)
local args = frame:getParent().args
local rawClass = args.clase or args.tipo or ""
local manualRoot = args.raiz or ""
local clase = normalizeClass(rawClass)
-- Obtenemos el título de la página actual
local title = mw.title.getCurrentTitle().text
local root = getRoot(title, clase, manualRoot)
if root == "" then
return "<span style='color:red;'>Error: no se pudo identificar la raíz.</span>"
end
-- (El resto del código para generar la tabla sigue aquí...)
-- [Omitido por brevedad, pero usa la lógica de tu script original]
-- Ejemplo rápido de retorno para que veas la raíz procesada
return "La raíz identificada es: **" .. root .. "**"
end
return p
