@@ -84,12 +84,14 @@ function inlinesToString(inlines)
8484 return pandoc .utils .stringify (pandoc .Span (inlines ))
8585end
8686
87+ local InlinesMT = getmetatable (pandoc .Inlines {})
88+
8789-- lua string to pandoc inlines
8890function 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
9496end
9597
98100function 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
109107end
110108
109+
111110function 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
123122end
124123
0 commit comments