Info 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)

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 '') .. ' &nbsp;' ) 					: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 '') .. ' &nbsp;' ) 					: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