Modulo:Sentiero
Istruzioni per l'uso
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)
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