Moduł:Ulica infobox/przebieg
Użycie
edytujDo użycia w szablonie:
{{#invoke:Ulica infobox/przebieg|nameToClass| {{{1}}} }}
Do testów (do sprawdzenia) mapowania nazw na typ zakończenia:
{{#invoke:Ulica infobox/przebieg|nameToEndingType| SK }}
Opis parametrów
edytuj- Pierwszy parametr jest nazwą skrzyżowania.
Uwaga! Po dodaniu nowych rodzajów skrzyżowań uzupełnij listy w module. Dotyczy tylko dodawania skrzyżowań kończących się trawą lub deptakiem (ulica jest domyślnym typem).
Przykład
edytuj- SK: street.
- SDD: pedestrain.
- ŚLK: grass.
Więcej przykładów w dyskusji modułu.
Błędy
edytujBłędy należy zgłaszać na stronie Wikipedia:Kawiarenka/Kwestie techniczne.
Parametry szablonu (strukturyzacja VE)
edytujZobacz też
edytuj
Powyższy opis jest dołączany ze strony Moduł:Ulica infobox/przebieg/opis. (edytuj | historia)
Zobacz podstrony tego modułu.
Zobacz podstrony tego modułu.
local p = {}
--[[
Listy nazw.
Wpisz tutaj nazwy skrzyżowań podzielone według zakończenia (dolnej części).
]]
-- deptaki
p.pedestrainTab = {'SDD', 'SKDU', 'SKDD', 'SKDP', 'SKDPLP', 'DEL', 'DEP', 'DELD', 'DEPD', 'DELPD', 'DEPLD', 'ULDL', 'ULDP', 'PLAD', 'MOSD', 'TUND', 'TUNDU', 'WIAD', 'WIADD', 'PTD', 'PTDD', 'DP', 'ŚLKDP'}
-- trawy (pomijając KT...)
p.grassTab = {'ULRGL', 'ULRGP', 'KUTD', 'ŚLK'}
-- (pozostałe to ulica)
--[[
Zmiana nazwy skrzyżowania na klasy CSS.
]]
function p.nameToClass(frame)
local name = trim(frame.args[1])
-- ustalenie typu
local endingType = nameToEndingType(name);
return "street-course__cell street-course__cell--" .. endingType
end
--[[
Określenie zakończenia (dolnej części) na podstawie nazwy skrzyżowania.
]]
function nameToEndingType(name)
-- ustalenie typu
local endingType;
if string.match(name, "^KT") or hasValue(p.grassTab, name) then
endingType = 'grass';
elseif hasValue(p.pedestrainTab, name) then
endingType = 'pedestrain';
else
endingType = 'street';
end
return endingType;
end
--[[
Eksport nameToEndingType
]]
function p.nameToEndingType(frame)
local name = trim(frame.args[1])
return nameToEndingType(name);
end
-- trim string
function trim(s)
return s:gsub("^%s+", ""):gsub("%s+$", "")
end
-- search array-like table
function hasValue (tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
end
end
return false
end
return p