Module:PTV route/sandbox
Appearance
![]() | This is the module sandbox page for Module:PTV route (diff). |
This module implements {{PTV route}} and {{cite PTV route}}. Please see the template pages for documentation.
To update the bus route data, please see Module:PTV route/data.
-- This module implements [[Template:PTVBus]].
local data = mw.loadData('Module:PTVBus/data/sandbox')
local p = {}
local function formatUrlLink(url, display)
if display then
return string.format('[%s %s]', url, display)
else
return string.format('[%s]', url)
end
end
local function makePtvUrl(routeData)
return 'https://www.ptv.vic.gov.au/route/' .. routeData.page
end
local function makeDisplayText(args, routeData)
local display
if args.numtext then
display = args.route
elseif args.deftext then
display = routeData.text
else
display = args.text
end
return display
end
local function getRouteData(mode, route)
if not route then
return nil
end
mode = mode or "bus"
local modeData = data[mode]
if not modeData then
return nil
end
return modeData[route]
end
function p._main(args)
local routeData = getRouteData(args.mode, args.route)
if not routeData then
return nil
end
local url = makePtvUrl(routeData)
local display = makeDisplayText(args, routeData)
return formatUrlLink(url, display)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:PTVBus',
})
return p._main(args)
end
return p