Mercurial > hg > vamp-rdf-download-index
view spag.yeti @ 165:3b89c48d0593 tip
URL to Vamp Plugin Pack Page
author | Chris Cannam |
---|---|
date | Tue, 11 Aug 2020 17:30:01 +0100 |
parents | d59d56303a1e |
children |
line wrap: on
line source
module spag; import spark: Request, Response, Route, Spark; import org.apache.commons.lang: StringEscapeUtils; route match callback = (handler callback = (class Handler extends Route Object handle(Request req, Response resp) routeParams = customHash \(req#params()); queryParams = mapIntoHash id do p: req#queryParams(p) done (map string req#queryParams()#toArray()); splatParams = req#splat() as list<string>; headers = mapIntoHash id do h: req#headers(h) done (map string req#headers()#toArray()); callback { routeParams, queryParams, splatParams, headers }, end; new Handler()); case match of Get path: h = handler callback; Spark#get(path, h); esac); staticFileLocation path = Spark#staticFileLocation(path); esc str = StringEscapeUtils#escapeHtml(str); link url content = "<a href=\"\(url)\">\(content)</a>"; urlOf route queryParams furtherParams = //!!! url escape route ^ "?" ^ strJoin "&" (map do k: if k in furtherParams then "\(esc k)=\(esc furtherParams[k])" else "\(esc k)=\(esc queryParams[k])" fi done (nub (keys queryParams ++ keys furtherParams))); eltid e clas id content = (idbit = if id == "" then "" else " id=\"\(id)\"" fi; clasbit = if clas == "" then "" else " class=\"\(clas)\"" fi; "<\(e)\(clasbit)\(idbit)>\(content)</\(e)>"); elt e clas content = eltid e clas "" content; divc = elt "div"; divid = eltid "div"; span = elt "span"; spanid = eltid "span"; { route, esc, link, urlOf, elt, eltid, divc, divid, span, spanid, staticFileLocation, }