diff options
author | sanine <sanine.not@pm.me> | 2022-08-15 16:19:46 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2022-08-15 16:19:46 -0500 |
commit | 819d1ebb624c946f383bcea54f6b4363a1fa0153 (patch) | |
tree | efeee89155abbf3811eb9e992d13f15ab9986e86 | |
parent | df73dca1a539387a12da632f2dd48e34f08d70d0 (diff) |
add marigold.percentDecode
-rw-r--r-- | marigold.lua | 6 | ||||
-rwxr-xr-x | test.lua | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/marigold.lua b/marigold.lua index ac0e061..02c9bbe 100644 --- a/marigold.lua +++ b/marigold.lua @@ -121,5 +121,11 @@ marigold.html = function(tbl, indent_level) indent, close) end +marigold.percentDecode = function(str) + return string.gsub(str, "%%(%x%x)", function(digits) + return string.char(tonumber(digits, 16)) + end) +end + return marigold @@ -162,3 +162,10 @@ test("marigold.html correctly renders children", function() <p>p2</p> </div>]]) end) + + +test("marigold.percentDecode correctly decodes percent-encoded strings", function() + local str = '%20%21%23%24%25%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D' + assert(marigold.percentDecode(str) == " !#$%&'()*+,/:;=?@[]") + assert(marigold.percentDecode('%25+%2b') == '%++') +end) |