Skip to content

Commit c7e4597

Browse files
committed
Use Inlines metatable for "list of Inline" return values
1 parent 17b1dd1 commit c7e4597

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/resources/filters/common/pandoc.lua

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,14 @@ function inlinesToString(inlines)
8484
return pandoc.utils.stringify(pandoc.Span(inlines))
8585
end
8686

87+
local InlinesMT = getmetatable(pandoc.Inlines{})
88+
8789
-- lua string to pandoc inlines
8890
function stringToInlines(str)
8991
if str then
90-
return pandoc.Inlines({pandoc.Str(str)})
92+
return setmetatable({pandoc.Str(str)}, InlinesMT)
9193
else
92-
return pandoc.Inlines({})
94+
return setmetatable({}, InlinesMT)
9395
end
9496
end
9597

@@ -98,27 +100,24 @@ end
98100
function markdownToInlines(str)
99101
if str then
100102
local doc = pandoc.read(str)
101-
if #doc.blocks == 0 then
102-
return pandoc.List({})
103-
else
104-
return doc.blocks[1].content
105-
end
103+
return pandoc.utils.blocks_to_inlines(doc.blocks)
106104
else
107-
return pandoc.List()
105+
return setmetatable({}, InlinesMT)
108106
end
109107
end
110108

109+
111110
function stripTrailingSpace(inlines)
112-
-- we always convert to pandoc.List to ensure a uniform
111+
-- we always convert to pandoc.Inlines to ensure a uniform
113112
-- return type (and its associated methods)
114113
if #inlines > 0 then
115114
if inlines[#inlines].t == "Space" then
116-
return pandoc.List(tslice(inlines, 1, #inlines - 1))
115+
return setmetatable(tslice(inlines, 1, #inlines - 1), InlinesMT)
117116
else
118-
return pandoc.List(inlines)
117+
return setmetatable(inlines, InlinesMT)
119118
end
120119
else
121-
return pandoc.List(inlines)
120+
return setmetatable(inlines, InlinesMT)
122121
end
123122
end
124123

0 commit comments

Comments
 (0)