
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Sentiero/man (modifica · cronologia)
Sandbox: Modulo:Sentiero/sandbox (modifica · cronologia) · Test: Modulo:Sentiero/test (modifica · cronologia · Esegui)
Vedi anche
--[[ Source script: https://it.wikivoyage.org/wiki/Modulo:Sentiero Maintainer: Andyrom75 ]] local NS0Cat = require( 'Modulo:NS0Cat' ).NS0CatVal local function _templateStyle( frame, src ) return frame:extensionTag( 'templatestyles', '', { src = src } ) end local function _isDefined(s) return s ~= '' and s end local function firstToUpper(str) return (str:gsub("^%l", string.upper)) end local function _ValidaDifficolta(difficolta) local case = { ["Turistico"] = "Turistico", ["Turistico (T)"] = "Turistico", ["T"] = "Turistico", ["Escursionistico"] = "Escursionistico", ["Escursionistico (E)"] = "Escursionistico", ["E"] = "Escursionistico", ["Escursionistico per esperti"] = "Escursionistico per esperti", ["Escursionistico per esperti (EE)"] = "Escursionistico per esperti", ["EE"] = "Escursionistico per esperti", ["Escursionistico per esperti con attrezzature"] = "Escursionistico per esperti con attrezzature", ["Escursionistico per esperti con attrezzature (EEA)"] = "Escursionistico per esperti con attrezzature", ["EEA"] = "Escursionistico per esperti con attrezzature" } return case[firstToUpper(difficolta)] or (NS0Cat("Sentieri con difficoltà errata") .. '<span class="debuginfo" style="display:none;">Campo difficoltà vuoto o erroneamente valorizzato</span>') end local function _concatIndexed( tab ) local tt = {} for _, v in pairs( tab ) do if tonumber(_) then tt[#tt+1] = v end end return table.concat( tt ) end local function _Numero_sentiero(numero, larghezza, altezza, colore1, colore2, colore3) return mw.html.create( 'table' ) :addClass('Numero_sentiero') :css('width', _isDefined(larghezza) or '50%') :tag( 'tr' ) :tag( 'td' ) :css('background-color', _isDefined(colore1) or '#d22304') :css('color', 'inherit') :attr( 'height', _isDefined(altezza) or '22px' ) :done() :tag( 'td' ) :css('background-color', _isDefined(colore2) or '#ffffff') :css('color', 'inherit') :wikitext( _isDefined(numero) or 'n.d.' ) :done() :tag( 'td' ) :css('background-color', _isDefined(colore3) or '#d22304') :css('color', 'inherit') :allDone() end local function _Tappa_sentiero(immagine, dimensioniimg, didascaliaimg, partenzatappa, hpartenza, tempotappa, arrivotappa, harrivo, dislivellotappa, descrizionetappa) return mw.html.create( 'tr' ) :tag( 'td' ) :addClass('Tappa_sentiero') :attr( 'colspan', '2' ) :tag( 'hr', { selfClosing = true } ) :done() :wikitext((_isDefined(immagine) and ('[[File:' .. immagine .. '|thumb' .. (_isDefined(dimensioniimg) and ('|' .. dimensioniimg) or '') .. (_isDefined(didascaliaimg) and ('|' .. didascaliaimg) or '') .. ']]') or '')) :tag( 'table' ) :tag( 'tr' ) :tag( 'td' ) :wikitext( "[[File:Flag icon green 4.svg|25px|Partenza]] '''Da''': " .. (_isDefined(partenzatappa) or 'n.d.') .. ' ' .. (_isDefined(hpartenza) and ('(' .. hpartenza .. ' m s.l.m.)') or '') .. ' ' ) :done() :tag( 'td' ) :wikitext( '[[File:Crystal clock.svg|25px|Tempo di percorrenza]]' ) :done() :tag( 'td' ) :wikitext( _isDefined(tempotappa) or 'n.d.' ) :done() :done() :tag( 'tr' ) :tag( 'td' ) :wikitext( "[[File:Flag icon red 4.svg|25px|Destinazione]] '''A''': " .. (_isDefined(arrivotappa) or 'n.d.') .. ' ' .. (_isDefined(harrivo) and ('(' .. harrivo .. ' m s.l.m.)') or '') .. ' ' ) :done() :tag( 'td' ) :wikitext( "[[File:Dislivello voy.png|50px|Per dislivello si intende il dislivello totale della tappa, potrebbero esserci dislivelli più alti sia in discesa che in salita all'interno della tappa]]" ) :done() :tag( 'td' ) :wikitext( _isDefined(dislivellotappa) and (dislivellotappa .. ' m') or 'n.d.' ) :done() :done() :done() :tag( 'div' ) :wikitext( _isDefined(descrizionetappa) and ("'''Descrizione''': " .. descrizionetappa) or '' ) :done() :allDone() end local function _Sentiero(frame) local args = frame.args local variableNode = _concatIndexed( args ) or '' if variableNode == '' then variableNode = mw.html.create( 'tr' ) :tag( 'td' ) :attr( 'colspan', '2' ) :allDone() end local output = mw.html.create( 'table' ) :addClass('Sentiero') :attr( 'cellspacing', '0' ) :tag( 'tr' ) :tag( 'td' ) :tag( 'div' ) :wikitext( "'''" .. (_isDefined(args.titolo) or mw.title.getCurrentTitle().text) .."'''" ) :done() :done() :tag( 'td' ) :attr( 'rowspan', '2' ) :wikitext( _isDefined(args.logo) and ('[[File:' .. args.logo .. '|' .. (_isDefined(args.dimlogo) or '50px') .. ']]') or tostring(_Numero_sentiero(args.numero, args.larghezza, args.altezza, args.colore1, args.colore2, args.colore3)) ) :done() :done() :tag( 'tr' ) :tag( 'td' ) :tag( 'table' ) :tag( 'tr' ) :tag( 'td' ) :wikitext( "'''Lunghezza''': " .. (_isDefined(args.lunghezza) and (args.lunghezza .. ' km') or 'n.d.')) :done() :tag( 'td' ) :wikitext( '[[File:Dislivello voy.png|50px|Dislivello totale della tappa: potrebbero esserci dislivelli maggiori o minori in salita e/o discesa]] ' .. (_isDefined(args.dislivello) and (args.dislivello .. ' m') or 'n.d.')) :done() :tag( 'td' ) :wikitext( '[[File:Crystal clock.svg|25px|Tempo]] ' .. (_isDefined(args.tempo) or '') ) :done() :tag( 'td' ) :wikitext( '[[File:Backpacker.png|20px|Difficoltà]] ' .. (_ValidaDifficolta(args.difficolta) or '') ) :done() :done() :done() :done() :done() :node(variableNode) :done() return _templateStyle( frame, 'Sentiero/styles.css' ) .. tostring(output) end local p = {} function p.SentieroTemplate(frame) return _Sentiero(frame:getParent()) end function p.Sentiero(frame) return _Sentiero(frame) end function p.Numero_sentieroTemplate(frame) local args = frame:getParent().args return _Numero_sentiero(args.numero, args.larghezza, args.altezza, args.colore1, args.colore2, args.colore3) end function p.Numero_sentiero(frame) local args = frame.args return _Numero_sentiero(args.numero, args.larghezza, args.altezza, args.colore1, args.colore2, args.colore3) end function p.Tappa_sentieroTemplate(frame) local args = frame:getParent().args return _Tappa_sentiero(args.immagine, args.dimensioniimg, args.didascaliaimg, args.partenzatappa, args.hpartenza, args.tempotappa, args.arrivotappa, args.harrivo, args.dislivellotappa, args.descrizionetappa) end function p.Tappa_sentiero(frame) local args = frame.args return _Tappa_sentiero(args.immagine, args.dimensioniimg, args.didascaliaimg, args.partenzatappa, args.hpartenza, args.tempotappa, args.arrivotappa, args.harrivo, args.dislivellotappa, args.descrizionetappa) end return p