Jump to content

Module:Road data/parser/hooks and Module:Road data/parser/hooks/sandbox: Difference between pages

(Difference between pages)
Page 1
Page 2
Content deleted Content added
no
 
m Corrected parser argument order.
 
Line 1: Line 1:
local p = {}
local p = {}


-- Change to "" upon deployment.
local parserModuleName = "Module:Road data/parser" -- SANDBOX REFERENCE
local moduleSuffix = "/sandbox"

local parserModuleName = "Module:Road data/parser" .. moduleSuffix


function p.split(parameters, args)
function p.split(parameters, args)
local route = tonumber(string.match(args.route, "%d+")) or 0
local route = tonumber(args.route) or 0
if route < parameters.split then
if route < parameters.split then
return parameters.below
return parameters.below
Line 24: Line 27:
local lower = parameters.lower
local lower = parameters.lower
local upper = parameters.upper
local upper = parameters.upper
local route = tonumber(string.match(args.route, "%d+")) or 0
local route = tonumber(args.route) or 0
if route < lower or route >= upper then
if route < lower or route >= upper then
return parameters.no
return parameters.no
Line 73: Line 76:
--[[
--[[
For the first element (pattern, action) in .actions such that
For the first element (pattern, action) in .actions such that
require(Module:Road data/parser).parser(args, .entry, .path, .kind)
require(Module:Road data/parser).parser(args, .entry, .kind, .path)
matches pattern as a regular expression, return action.
matches pattern as a regular expression, return action.
If no such element exists, return .default (nil if unspecified).
If no such element exists, return .default (nil if unspecified).


.path and .kind are optional.
.kind and .path are optional.
]]
]]
function p.match(parameters, args)
function p.match(parameters, args)
Line 84: Line 87:


local entry = parameters.entry
local entry = parameters.entry
local kind = parameters.kind
local path = parameters.path
local path = parameters.path
local kind = parameters.kind
local actions = parameters.actions
local actions = parameters.actions
local value = parser(args, entry, path, kind)
local value = parser(args, entry, kind, path)
for pattern,action in pairs(actions) do
for pattern,action in pairs(actions) do
if mw.ustring.match(value, pattern) then
if mw.ustring.match(value, pattern) then
Line 95: Line 98:
return parameters.default
return parameters.default
end
end

function p.iso3166Sub(parameters, args)
local country = args.country
local subParam = parameters.sub
local subCode = args[subParam]

local iso3166Module = require("Module:ISO 3166")
args.iso3166Sub = iso3166Module.luaname{country, subCode}
return parameters.default
end

function p.pagename(parameters, args)
local pagename = mw.title.getCurrentTitle().text
local article = parameters.article
if article == pagename then
return parameters.iftrue
else
return parameters.default or ''
end
end



return p
return p