diff --git a/src/lua/endpoints/delete_post.lua b/src/lua/endpoints/delete_post.lua index 152059c..fcb676b 100644 --- a/src/lua/endpoints/delete_post.lua +++ b/src/lua/endpoints/delete_post.lua @@ -17,9 +17,9 @@ function configure(...) end local oldspec = api.get.page_owner -function api.get.page_owner = function(env) - local ret = oldspec() - table.insert(oldret,{ +api.get.page_owner = function(env) + local ret = oldspec(env) + table.insert(ret,{ endpoint = string.format("https://%s/_delete",env.domain), method = "POST", fields = {story = env.short}, diff --git a/src/lua/endpoints/edit_get.lua b/src/lua/endpoints/edit_get.lua index ba92fad..743e394 100644 --- a/src/lua/endpoints/edit_get.lua +++ b/src/lua/endpoints/edit_get.lua @@ -18,9 +18,9 @@ function configure(...) end local oldspec = api.get.page_owner -function api.get.page_owner = function(env) - local ret = oldspec() - table.insert(oldret,{ +api.get.page_owner = function(env) + local ret = oldspec(env) + table.insert(ret,{ endpoint = string.format("https://%s/_edit",env.domain), method = "GET", fields = {story = env.short}, diff --git a/src/lua/pages.lua b/src/lua/pages.lua index 46e47e9..9b3f321 100644 --- a/src/lua/pages.lua +++ b/src/lua/pages.lua @@ -26,9 +26,17 @@ for k,v in pairs(pagenames) do local parser = et.Parser() local f = assert(io.open(path,"r")) local fdata = assert(f:read("*a")) - local code = assert(parser:parse(fdata)) - local func = assert(parser:load(parser:chunks_to_lua(),path)) + local e,code = assert(xpcall(function() + return parser:compile_to_lua(fdata) + end,function(err) + return debug.traceback(string.format("Failed to parse %s: %s",path, err)) + end)) + local func, err = parser:load(code) + if not func then + error(string.format("Failed to load %s: %s",path, err)) + end f:close() + assert(func, "Failed to load " .. path) pages[v] = function(...) local buf = assert(parser:run(func,...)) return table.concat(buf) diff --git a/src/pages/read.etlua.in b/src/pages/read.etlua.in index feb7b74..d095ea0 100644 --- a/src/pages/read.etlua.in +++ b/src/pages/read.etlua.in @@ -1,12 +1,13 @@ <{system cat src/pages/parts/header.etlua}> +<% local api = require("hooks") %> <% if owner then -%>
- <% for _, spec in ipairs(api.get.page_owner(_ENV)) do %> -
- <% for key, value in pairs(spec.fields) %> + <% for _, spec in ipairs(api.get.page_owner(getfenv(1))) do %> +
+ <% for key, value in pairs(spec.fields) do %> <% end %>