Filter 返回pandoc筛选器中el.content的文本字符串

Filter 返回pandoc筛选器中el.content的文本字符串,filter,lua,pandoc,Filter,Lua,Pandoc,当使用pandoc过滤器时,我只想获取el.content的文本,但它返回一个表 .md如下所示,仅用于调试: [It's so easy!]{color="red"}. Today is Monday. 我想要那根绳子,太容易了!被打印出来。因此,我编写代码: function Span(el) color = el.attributes['color'] strTxt = el.content print(strTxt) end 但这不是真的!通过使用e

当使用pandoc过滤器时,我只想获取el.content的文本,但它返回一个表

.md如下所示,仅用于调试:

[It's so easy!]{color="red"}. Today is Monday.
我想要那根绳子,太容易了!被打印出来。因此,我编写代码:

function Span(el)
  color  = el.attributes['color']
  strTxt = el.content
  print(strTxt)
end

但这不是真的!通过使用el.text也一样

所以我以前从未使用过Pandoc,所以如果我在这里做错了什么,请应用程序

我安装了Pandoc,我创建了一个filter.lua,就像你的一样

function Span(el)
  print(el.content)
end
我用你的内容创建了一个test.md

[It's so easy!]{color="red"}. Today is Monday.
我运行了pandoc-lua filter=filter.lua-f markdown test.md

而且是印刷的

table: 00000000078ba480
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
哪个印刷品

1       table: 0000000007874e90
2       table: 0000000007875010
3       table: 0000000007875050
4       table: 0000000007875090
5       table: 0000000007876190
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
哪张照片

Table #1 contains:
text    Itâ?Ts
Table #2 contains:
Table #3 contains:
text    so
Table #4 contains:
Table #5 contains:
text    easy!
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
因此,该表中的那些表很可能是一些内联对象,它们有一个文本属性,其中包含您要查找的单词


您可以看到,使用一些循环和打印来检查神秘的表格非常简单。

所以我以前从未使用过Pandoc,所以如果我在这里出错,请使用applogize

我安装了Pandoc,我创建了一个filter.lua,就像你的一样

function Span(el)
  print(el.content)
end
我用你的内容创建了一个test.md

[It's so easy!]{color="red"}. Today is Monday.
我运行了pandoc-lua filter=filter.lua-f markdown test.md

而且是印刷的

table: 00000000078ba480
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
哪个印刷品

1       table: 0000000007874e90
2       table: 0000000007875010
3       table: 0000000007875050
4       table: 0000000007875090
5       table: 0000000007876190
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
哪张照片

Table #1 contains:
text    Itâ?Ts
Table #2 contains:
Table #3 contains:
text    so
Table #4 contains:
Table #5 contains:
text    easy!
<p><span color="red">ItÔÇÖs so easy!</span>. Today is Monday.</p>
因此,该表中的那些表很可能是一些内联对象,它们有一个文本属性,其中包含您要查找的单词

您可以看到,使用几个循环和打印来检查神秘的表格非常简单。

模块pandoc.utils包含一个函数,该函数将元素转换为列表:

功能板 printpandoc.utils.stringifyel 终止 这会打印出来,很简单!请注意潘多克巧妙处理撇号的效果:结尾处的卷曲引号取代了直撇号

有关如何使用它们的更多信息,请参阅。

模块pandoc.utils包含一个函数,该函数将元素转换为列表:

功能板 printpandoc.utils.stringifyel 终止 这会打印出来,很简单!请注意潘多克巧妙处理撇号的效果:结尾处的卷曲引号取代了直撇号



有关如何使用它们的更多信息,请参阅。

根据文档,el.content应该是一个内联线列表,它是一个Lua表。所以我不知道你为什么希望它是一个字符串,我想分割文本字符串。有没有简单的方法来获取内容?谢谢我不在乎el.content能做什么,只是想用某种方法返回所有方形制动器之间的tex。我不知道Pandoc。那张桌子里有什么?我假设您可以访问类似el.content[1].text或类似的文本。只需打印所有表格内容或参考手册,它只返回第一个文本,而不是全部内容。因此,在Lua表格中只有一小部分文本?你认为你能提供更多关于实际产出的信息吗?根据文档,el.content应该是一个内联列表,它是一个Lua表。所以我不知道你为什么希望它是一个字符串,我想分割文本字符串。有没有简单的方法来获取内容?谢谢我不在乎el.content能做什么,只是想用某种方法返回所有方形制动器之间的tex。我不知道Pandoc。那张桌子里有什么?我假设您可以访问类似el.content[1].text或类似的文本。只需打印所有表格内容或参考手册,它只返回第一个文本,而不是全部内容。因此,在Lua表格中只有一小部分文本?你认为你能提供更多关于实际产出的信息吗?这不是真的,没有帮助。你的工作都很快,非常感谢!1 el.内容剂量返回表。2'很奇怪。3.我们还是没有弄到整根绳子--太容易了@user26992 el.content不返回任何内容。它是对一个表的引用,而不是一个函数。将这些单词组合成一个字符串很简单。虽然我不知道pandoc,所以我不知道为什么空白变成了空表。太好了,它非常有用。你的工作都很快,非常感谢!1 el.内容剂量返回表。2'很奇怪。3.我们还是没有弄到整根绳子--太容易了@user26992 el.content不返回任何内容。它是对一个表的引用,而不是一个函数。将这些单词组合成一个字符串很简单。虽然我不知道pandoc,所以我不知道为什么空白变成了空表。太好了,它非常有用。酷!非常感谢!它可以将el的内容作为字符串返回。但是“在输出中仍然显示为一个奇怪的词”。还删除了所有格式,例如粗体,这意味着它将更改元素的真实内容。我相信奇怪的单词输出是由于编码问题造成的。Pandoc使用UTF-8,也许您的终端期望有所不同?Windows大多数情况下都与UTF-16配合使用。您的第二条评论似乎暗示您不希望标记丢失。你能描述一下你是什么吗
第二,让我们举一个非常简单的例子:如果像这样降价:[这太简单了****!]{color=red}。今天是星期一,我想让它变得如此简单!如果输出不删除双*。短版本:不可能。长版本:你可以做到,但这并不容易。然而,我很想听到更大的故事,我担心我们正在看一个。酷!非常感谢!它可以将el的内容作为字符串返回。但是“在输出中仍然显示为一个奇怪的词”。还删除了所有格式,例如粗体,这意味着它将更改元素的真实内容。我相信奇怪的单词输出是由于编码问题造成的。Pandoc使用UTF-8,也许您的终端期望有所不同?Windows大多数情况下都与UTF-16配合使用。您的第二条评论似乎暗示您不希望标记丢失。你能描述一下你想做什么吗?第二,让我们举一个非常简单的例子:如果像这样降价:[很简单****!]{color=red}。今天是星期一,我想让它变得如此简单!如果输出不删除双*。短版本:不可能。长版本:你可以做到,但这并不容易。然而,我很想听到更大的故事,我担心我们正在看一个更大的故事。