La documentazione per questo modulo può essere creata in Modulo:Itemlist/sandbox/man
--[[ Source script: https://it.wikivoyage.org/wiki/Modulo:Itemlist Maintainer: Andyrom75 Lazy loads: require('Modulo:Avviso').avviso ]] local Marker = require('Modulo:Marker').MarkerModule local function _isDefined(s) return s ~= '' and s end local function _numberedList( t ) local _numbT = {} for key, val in pairs(t) do if tonumber(key) then _numbT[#_numbT+1] = val end end return _numbT end function _item(frame, tipo) local args = frame.args local output = '' if _isDefined(args.titolo) then output = '<b>' .. args.titolo .. '</b>\n' end local MarkerArgs = { counter = tipo or 'listing', tipo = tipo or 'listing', nome = args.nome, lat = args.lat, long = args.long, wikidata = args.wikidata } output = output .. '*' .. Marker{ args = MarkerArgs } if _isDefined(args.alt) then output = output .. " (" .. args.alt .. ")" end if _isDefined(args.descrizione) then output = output .. " — " .. args.descrizione end return output .. '\n' end local function _itemlist(frame, listtype) local args = frame.args local output = '' --mi assicuro di avere una lista con solo chiavi numeriche senza duplicati local numberedArgs = _numberedList(args) for _, val in ipairs(numberedArgs) do if _ <= 20 then output = output .. (val and ('\n' .. tostring(val)) or '') end end output = '<div id="' .. listtype .. '">' .. output .. '</div>' if #numberedArgs > 20 then output = require('Modulo:Avviso').avviso{args={tipo = 'stile', testo = 'Il template è pensato per gestire fino a 20 località, le successive non saranno mostrate. Seleziona le più significative eliminando le altre.'}} .. output if mw.title.getCurrentTitle().namespace == 0 then output = output .. '[[Categoria:' .. listtype .. ' con errori di compilazione]]' end end return output end local p = {} function p.cityitemTemplate(frame) return _item(frame:getParent(), 'city') end function p.cityitem(frame) return _item(frame, 'city') end function p.destinationitemTemplate(frame) return _item(frame:getParent(), 'vicinity') end function p.destinationitem(frame) return _item(frame, 'vicinity') end function p.citylistTemplate(frame) return _itemlist(frame:getParent(), 'citylist') end function p.citylist(frame) return _itemlist(frame, 'citylist') end function p.destinationlistTemplate(frame) return _itemlist(frame:getParent(), 'destinationlist') end function p.destinationlist(frame) return _itemlist(frame, 'destinationlist') end return p