login

<     >

2022-02-27 08:29:03 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

add template.escape()

diff --git a/src/template.lua b/src/template.lua
index ae5e32c..4eb0a5d 100644
--- a/src/template.lua
+++ b/src/template.lua
@@ -91,4 +91,18 @@ local function render_file(fname, env)
     return render_str(str, env)
 end
 
-return {render_str=render_str, render_file=render_file}
+local function escape(str)
+    local esc_tab = {["&"]=38, ["<"]=60, [">"]=62}
+    local esc = ""
+    for i = 1, #str do
+        local c = str:sub(i, i)
+        local n = esc_tab[c]
+        if n ~= nil then
+            c = "&#" .. n .. ";"
+        end
+        esc = esc .. c
+    end
+    return esc
+end
+
+return {render_str=render_str, render_file=render_file, escape=escape}