Return pandoc过滤器中el.content的文本字符串
Return the text string of el.content in pandoc filter
使用pandoc过滤器时,我只想获取el.content
的文本,但是return一个Table!
.md
如下(仅供调试):
[It's so easy!]{color="red"}. Today is Monday.
我想要打印字符串 It's so easy!
。所以,我写代码:
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>
不管那个发生了什么'
...
所以我看了一下里面 table
function Span(el)
for k,v in pairs(el.content) do print(k,v) end
end
哪个打印出来
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>
所以这一定是手册中提到的内联列表
让我们看看里面!
function Span(el)
for i, tbl in ipairs(el.content) do
print(string.format("Table #%d contains: ", i))
for k, v in pairs(tbl) do
print(k,v)
end
end
end
打印
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>
因此 table 中的那些 table 很可能是一些内联对象,它们具有包含您要查找的词的文本属性。
你看,使用一些循环和打印来检查神秘的 table 是非常简单的。
模块 pandoc.utils
包含一个函数 stringify
,它将一个元素转换为列表:
function Span(el)
print(pandoc.utils.stringify(el))
end
这将打印 It’s so easy!
(请注意 pandoc 对撇号的智能处理的效果:右引号已替换直撇号 '
)。
有关如何使用它们的更多信息,请参阅 Lua filters docs。
使用pandoc过滤器时,我只想获取el.content
的文本,但是return一个Table!
.md
如下(仅供调试):
[It's so easy!]{color="red"}. Today is Monday.
我想要打印字符串 It's so easy!
。所以,我写代码:
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>
不管那个发生了什么'
...
所以我看了一下里面 table
function Span(el)
for k,v in pairs(el.content) do print(k,v) end
end
哪个打印出来
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>
所以这一定是手册中提到的内联列表
让我们看看里面!
function Span(el)
for i, tbl in ipairs(el.content) do
print(string.format("Table #%d contains: ", i))
for k, v in pairs(tbl) do
print(k,v)
end
end
end
打印
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>
因此 table 中的那些 table 很可能是一些内联对象,它们具有包含您要查找的词的文本属性。
你看,使用一些循环和打印来检查神秘的 table 是非常简单的。
模块 pandoc.utils
包含一个函数 stringify
,它将一个元素转换为列表:
function Span(el)
print(pandoc.utils.stringify(el))
end
这将打印 It’s so easy!
(请注意 pandoc 对撇号的智能处理的效果:右引号已替换直撇号 '
)。
有关如何使用它们的更多信息,请参阅 Lua filters docs。