jbe@216: --[[-- jbe@216: route = jbe@216: request.default_router( jbe@451: path -- URL path without leading slash jbe@216: ) jbe@210: jbe@216: Default conversion from a path to a route. Called by request.router(). jbe@216: jbe@216: --]]-- jbe@215: jbe@215: function request.default_router(path) jbe@216: if not path then jbe@216: return nil jbe@216: end jbe@221: if path == "" then jbe@216: return {module = "index", view = "index"} jbe@216: end jbe@347: local static = string.match(path, "^static/([-./0-9A-Z_a-z]*)$") jbe@250: if static then jbe@358: -- Note: sanitizer is in request.handler(...) jbe@347: return {static = static} jbe@250: end jbe@250: local module, action, view, id, suffix jbe@221: module = string.match(path, "^([^/]+)/$") jbe@216: if module then jbe@216: return {module = module, view = "index"} jbe@215: end jbe@221: module, action = string.match(path, "^([^/]+)/([^/.]+)$") jbe@216: if module then jbe@216: return {module = module, action = action} jbe@215: end jbe@221: module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$") jbe@216: if module then jbe@216: return {module = module, view = view, suffix = suffix} jbe@216: end jbe@221: module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$") jbe@216: if module then jbe@216: return {module = module, view = view, id = id, suffix = suffix} jbe@216: end jbe@216: return nil jbe@216: end jbe@210: jbe@216: --//--