Snowflake SVG animation.svg
¡Vikidia te desea una Feliz Navidad y Próspero Año Nuevo 2020!

¡Anímate a colaborar en Vikidia! Créate una cuenta y disfruta de múltiples beneficios.

Xmas tree.svg

Módulo:Lista

De Vikidia
Saltar a: navegación, buscar
[editar] [purgar]Template-info.svg Documentación de plantilla

Este módulo permite crear listas con diversos estilos, sin modificar el marcado HTML.

Funciones

Lista(table args)

Crea una lista HTML, con los valores pasados en la secuencia args. La estructura de dicha tabla es la siguiente:

Parámetro Descripción
string Tipo Puede tomar dos valores: v para vertical, o h para horizontal.
string Separador Una cadena de texto para ser usada como separador.
string Conjunción Ídem del anterior.
table Elementos Una secuencia de cadenas, que contiene los elementos a incluir en la lista.

Retorna una cadena HTML con un elemento <ul>.

_Lista(frame frame)

Interfaz wikitexto. Es usada por {{Lista}}. Retorna lo devuelto por Lista.

Variables

table formatos

Contiene tablas de 3 elementos con formatos predefinidos para usar.
Esta documentación está transcluida desde Módulo:Lista/doc.

Los editores pueden experimentar en la zona de pruebas de la plantilla.

Por favor, añade las categorías e interwikis en la subpágina de documentación. Subpáginas de esta plantilla.
local z = {}
local argumentos = mw.getCurrentFrame():getParent().args

z.formatos = {
  ['natural'] = {'h',', ', ' y '},
  ['viñeta'] = {'h',' • ', ' • '},
  ['plana'] = {'v','', ''},
}

function z.Lista(args)
  local ul = mw.html.create('ul')
  if args[1] == 'v' then
    ul:attr('class', 'listav')
    ul:cssText("--sep:'"..args[2].."';")
    for i, v in ipairs(args[4]) do
      local li = ul:tag('li')
      li:wikitext(v)
    end
  elseif args[1] == 'h' then
    ul:attr('class', 'listah')
    for i, v in ipairs(args[4]) do
      local li = ul:tag('li')
      if i == #args[4] then
        li:cssText("--sep:'"..args[3].."';")
      else
        li:cssText("--sep:'"..args[2].."';")
      end
      li:wikitext(v)
    end
  else
    error('Se debe especificar un tipo de lista válido.')
  end
  return tostring(ul)
end

function z._Lista(frame)
  local formato
  if z.formatos[argumentos.formato] then
    formato = z.formatos[argumentos.formato]
  elseif argumentos.tipo and argumentos.sep then
    formato = {argumentos.tipo, argumentos.sep, argumentos.conj or argumentos.sep}
  else
    formato = z.formatos['natural']
  end
  formato[4] = {}
  for i, v in ipairs(argumentos) do
    table.insert(formato[4], v)
  end
  return z.Lista(formato)
end

return z