1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-04 00:50:04 +08:00
SpaceVim/bundle/vim-matchup/test/lang/lua/tohtml.lua

74 lines
1.8 KiB
Lua
Raw Normal View History

2020-06-13 14:06:35 +08:00
-- Converts Lua table to HTML output in table.html file
function tohtml(x)
ret = tohtml_table(x,1)
writefile("table.html", ret)
os.execute("table.html")
return(ret)
end
-- Saves a string to file
function writefile(filename, value)
if (value) then
local file = io.open(filename,"w+")
file:write(value)
file:close()
end
end
function tohtml_table(x, table_level)
local k, s, tcolor
local html_colors = {
"#339900","#33CC00","#669900","#666600","#FF3300",
"#FFCC00","#FFFF00","#CCFFCC","#CCCCFF","#CC66FF",
"#339900","#33CC00","#669900","#666600","#FF3300",
"#FFCC00","#FFFF00","#CCFFCC","#CCCCFF","#CC66FF"
}
local lineout = {}
local tablefound = false
if type(x) == "table" then
s = ""
k = 1
local i, v = next(x)
while i do
if (type(v) == "table") then
if (table_level<10) then
lineout[k] = "<b>" .. flat(i) .. "</b>".. tohtml_table(v, table_level + 1)
else
lineout[k] = "<b>MAXIMUM LEVEL BREACHED</b>"
end
tablefound = true
else
lineout[k] = flat(i) .. "=" .. tohtml_table(v)
end
k = k + 1
i, v = next(x, i)
end
for k,line in ipairs(lineout) do
if (tablefound) then
s = s .. "<tr><td>" .. line .. "</td></tr>\n"
else
s = s .. "<td>" .. line .. "</td>\n"
end
end
if not (tablefound) then
s = "<table border='1' bgcolor='#FFFFCC' cellpadding='5' cellspacing='0'>" ..
"<tr>" .. s .. "</tr></table>\n"
else
tcolor = html_colors[table_level]
s = "<table border='3' bgcolor='"..tcolor.."' cellpadding='10' cellspacing='0'>" ..
s .. "</table>\n"
end
return s
end
if type(x) == "function" then
return "FUNC"
end
if type(x) == "file" then
return "FILE"
end
return tostring(x)
end