render: Add some new render functions for templates

Thu, 22 Jun 2023 21:30:11 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 22 Jun 2023 21:30:11 +0100
changeset 15
3fe9cef6a187
parent 14
afcc217db356
child 16
68a0c983bf49

render: Add some new render functions for templates

src/render.lua file | annotate | diff | comparison | revisions
--- a/src/render.lua	Thu Jun 22 21:29:31 2023 +0100
+++ b/src/render.lua	Thu Jun 22 21:30:11 2023 +0100
@@ -1,18 +1,21 @@
 local html = require "util.html";
 local json = require "util.json";
-
-html.basename = function (str)
-	return str:match("[^/]+$");
-end
+local http = require "util.http";
 
-html.date = function (datetime)
-	return datetime:sub(1,10);
-end
+local render_funcs = setmetatable({
+	basename = function (str)
+		return str:match("[^/]+$");
+	end;
+	date = function (datetime)
+		return datetime:sub(1,10);
+	end;
+	json = json.encode;
+	urlencode = http.urlencode;
+}, { __index = html });
 
-html.json = json.encode;
-
-local render = require"util.interpolation".new("%b{}", html.escape, html);
+local render = require"util.interpolation".new("%b{}", html.escape, render_funcs);
 
 return {
 	render = render;
+	funcs = render_funcs;
 };

mercurial