יחידה:רשימה
קפיצה לניווט
קפיצה לחיפוש
ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:רשימה/תיעוד
local list = {}
-- Función que devuelve los elementos de la lista.
-- Solo se obtienen los elementos informados.
function list.GetListElements(frame)
local Arguments = frame.args;
local parent = frame:getParent();
if not Arguments[1] then
Arguments = parent.args;
end
local order = Arguments['מיון'] or ''
separator = frame.args['separator'] or Arguments['הפרדה']
separatorSpace = frame.args['separatorSpace'] or Arguments['ריווח']
local ListElements = {}
local i = 1;
local j = 0;
while Arguments[i] do
local TextToShow
if Arguments[i] and not Arguments[i]:match('^%s*$') then
j = j + 1
-- Añadir el enlace si no incluye ya uno
local link = frame.args.link or Arguments['קישור']
if mw.ustring.find(Arguments[i], '%[%[') then
link = 'לא'
end
if link == 'כן' then
-- Desambiguar eliminando el texto ente paréntesis del argumento i-ésimo si es de la forma
-- "Texto (lo que sea)".
-- Esto solo se hará si después de los paréntesis no hay nada. Ejemplos:
-- Alfonso Albacete (director) --> Alfonso Albacete
-- [[Carlos Vera (árbitro de fútbol)|Carlos Vera]] --> [[Carlos Vera (árbitro de fútbol)|Carlos Vera]]
TextToShow = Arguments[i]:match('^(.*)%s%(.*%)$') or Arguments[i]
--Obtener el espacio de nombres de los Arguments
local namespace = frame.args.nspace or parent.args.nspace or frame.args['espacio de nombres'] or parent.args['espacio de nombres'] or mw.title.getCurrentTitle().nsText
if namespace == '' then
--Se accede a la función con el argumento namespace pero está sin informar
if Arguments[i] == TextToShow then
ListElements[j] = mw.ustring.format('[[%s]]', TextToShow)
else
ListElements[j] = mw.ustring.format('[[%s|%s]]', Arguments[i], TextToShow)
end
else
--Se accede sin el espacio de nombres (en cuyo caso se toma el espacio de nombres desde global) o informado.
--Obtener el nombre de la página (eliminando el espacio de nombres si lo tiene). Similar a {{PAGENAME:Arguments[i]}}
--Por ejemplo, si Arguments[i] vale "Plantilla:A" se informa pagename con "A".
local pagename
local noError, pageObject = pcall(mw.title.new, Arguments[i])
if noError then
pagename = pageObject.text
else
pagename = Arguments[i]
end
-- link tomando como espacio de nombres el recibido en el argumento o el global.
ListElements[j] = mw.ustring.format('[[:%s:%s|%s]]', namespace, pagename, TextToShow)
end
else
TextToShow = Arguments[i]
ListElements[j] = mw.text.trim( TextToShow )
end
end
i = i + 1;
end
return ListElements
end
-- lista con los elementos separados por comas
function list.list(frame)
-- Obtener los elementos de la lista informados.
local ListElements= list.GetListElements(frame)
if not ListElements[1] then
return
end
if not separator then
separator = ','
end
if separatorSpace then
separator = ' ' .. separator .. ' '
end
if separator == ',' then
separator= ', '
end
return mw.text.listToText(ListElements, separator,separator)
end
function list.htmllist(frame)
local parent = frame:getParent();
-- Obtener los elementos de la lista informados delimitándolos con
local ListElements= list.GetListElements(frame)
if not ListElements[1] then
return
end
-- Añadir a los elementos de la lista <li> y </li>
local i = 1;
while ListElements[i] do
ListElements[i] = '<li>' .. ListElements[i] .. '</li>'
i = i + 1;
end
-- Añadir la clase en su caso
local clase = frame.args.clase or parent.args.clase
local final = '<ul>' .. table.concat( ListElements ) .. '</ul>'
if clase then
final = '<div class="' .. clase ..'">' .. final .. '</div>'
end
return final
end
return list