纯前端的lua代码运行测试工具

这个东西其实在四个月钱就做好了,现在发文章只是因为感觉博客更新频率太低,水数量而已(不)

可以直接用的成品

目前GitHub和Gitee上我都放了一份,因为是纯前端来实现的,所以都开启了page服务,可以直接用

GitHub

在线测试:https://lua.papapoi.com/

源码:https://github.com/chenxuuu/lua-online

Gitee

在线测试:https://chenxuuu.gitee.io/lua-online/

源码:https://gitee.com/chenxuuu/lua-online

简单解释下内容

主要用到的轮子

fengari-web

lua运行框架直接使用了fengari-web,对接的函数也很简单,甚至你进行require,它会直接根据网址来加载,很炫酷

codemirror

这个是编辑器的轮子,毕竟在线测试,一个好用好看的编辑器是标配

重定向lua的print到输出框

首先在js那边实现一个输出数据的函数

        function getResult() {
            var code = editor.getValue();
            $("#output").text("");
            try {
                fengari.load(code)();
            }
            catch (err) {
                luaPrint(err);
            }
        }

然后把lua的print重写一下就好了

js = require "js"
--重写print函数
function print(...)
    local out = {}
    for i=1,select('#', ...) do
        table.insert(out,tostring(select(i, ...)))
    end
    js.global:luaPrint(table.concat(out,"\t"))
end

实现的功能

其实实现的东西就那么多,顺带加上了luat的额外部分接口而已

在编辑器里的数据会实时保存在用户自己的浏览器中,下次打开会自动加载

同时分享代码也只是在网址后面跟了串数据来实现的,基本功能就这些了

EOF

1 Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注