mirror of
https://github.com/rxi/lovebird.git
synced 2024-11-27 12:04:21 +00:00
Provide Support for Fennel
This commit does not alter the functionality of lovebird if fennel is not present. Introduced a new function lovebird.loadstringAlt. By default it points to the same function as lovebird.loadstring, but if fennel is not nil it points to a new function described below. loadstringAlt is only used in the "index" page. loadstringAlt If fennel is not nil in the global space, opt to use fennel.compile-string and loadstring in place of raw loadstring If fennel is not nil, always print the result using fennel.view.
This commit is contained in:
parent
e84abe7b56
commit
b7171e895d
14
lovebird.lua
14
lovebird.lua
@ -9,9 +9,10 @@
|
||||
|
||||
local socket = require "socket"
|
||||
|
||||
local lovebird = { _version = "0.4.3" }
|
||||
local lovebird = { _version = "0.4.4" }
|
||||
|
||||
lovebird.loadstring = loadstring or load
|
||||
lovebird.loadstringAlt = lovebird.loadString
|
||||
lovebird.inited = false
|
||||
lovebird.host = "*"
|
||||
lovebird.buffer = ""
|
||||
@ -40,7 +41,7 @@ if req.parsedbody.input then
|
||||
if str:find("^=") then
|
||||
str = "print(" .. str:sub(2) .. ")"
|
||||
end
|
||||
xpcall(function() assert(lovebird.loadstring(str, "input"))() end,
|
||||
xpcall(function() assert(lovebird.loadstringAlt(str, "input"))() end,
|
||||
lovebird.onerror)
|
||||
end
|
||||
?>
|
||||
@ -426,7 +427,14 @@ lovebird.pages["env.json"] = [[
|
||||
}
|
||||
]]
|
||||
|
||||
|
||||
if (fennel) then
|
||||
lovebird.loadstringAlt = function (str, other)
|
||||
local compiled = fennel["compile-string"](str)
|
||||
local ret = loadstring(compiled)
|
||||
print (fennel.view(ret()))
|
||||
return ret
|
||||
end
|
||||
end
|
||||
|
||||
function lovebird.init()
|
||||
-- Init server
|
||||
|
Loading…
Reference in New Issue
Block a user