memory/docker/workers/unnest-table.lua
Daniel O'Connell cf98d38bb8 initial server
2025-05-04 00:31:13 +02:00

28 lines
744 B
Lua

local function rows(tbl)
local r = pandoc.List()
r:extend(tbl.head.rows)
for _,b in ipairs(tbl.bodies) do r:extend(b.body) end
r:extend(tbl.foot.rows)
return r
end
function Table(t)
local newHead = pandoc.TableHead()
for i,row in ipairs(t.head.rows) do
for j,cell in ipairs(row.cells) do
local inner = cell.contents[1]
if inner and inner.t == 'Table' then
local ins = rows(inner)
local first = table.remove(ins,1)
row.cells[j] = first.cells[1]
newHead.rows:insert(row)
newHead.rows:extend(ins)
goto continue
end
end
newHead.rows:insert(row)
::continue::
end
t.head = newHead
return t
end