Pandoc Lua程序在使用自定义Lua转换BBCode时未解析列表中的换行符

我有一个用于将docx文件转换为BBCode的源代码,它是一个lua文件。它大部分是按预期工作的,但我有一个问题解决不了。当这段代码到达列表时,它会跳过项目之间的空格,并截断整个列表,以便只有单个换行符。

目前的文本输出如下:

[list][*][b]Testsadfasddf[/b]
[*][i]Sadfasdfgasdgf asf[/i]
[*][u]Asdgsdfgh[/u]
[*][i][b]Sdfgsdrhstreuj[/b][/i]
[*][b][u]Fsdfgsdfghsfghj[/u][/b]
[*][i][u]Sdfhserysrhfgh[/u][/i]
[*][i][b][u]sdfghsehjusrtu[/u][/b][/i]
[*][s]Sdfhstuikuftkl[/s]
[/list]

它应该在每个项目之间有一个换行符。由于我正在使用自定义的lua,我无法使用建议的hard_line_break扩展,而且由于我没有转换成markdown,我在搜索后很难找到对我有用的帮助。

local function listenclose(t, s, p)
  if p then
    return string.format("[%s]%s", t, p, s, t)
  else
    return string.format("[%s]%s", t, s, t)
  end
end

local function makelist(items)
  local buf = "[list]"
  for _,e in ipairs(items) do
    buf = buf .. listenclose('*', e) .. '\n'
  end
  buf = buf .. '[/list]'
  return buf
end

function BulletList(items)
  return makelist(items)
end

我需要添加什么才能正确读取换行符?或者实际上非常复杂,我无法轻松实现这一点?

点赞