diff options
Diffstat (limited to '_extensions')
| -rw-r--r-- | _extensions/ruc-play/semantic-markdown/semantic-markdown.lua | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua b/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua index 230f351..b4c1028 100644 --- a/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua +++ b/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua @@ -158,6 +158,7 @@ function Statements (block) for i, el in ipairs(block.content) do local pos = 0 + local stack_next = "" -- non-string element if el.t ~= 'Str' then @@ -183,6 +184,7 @@ function Statements (block) -- entering bracketed enclosure bracketed = true pos = a + 1 + stack_next = stack_next..s -- staying unenclosed else @@ -208,16 +210,23 @@ function Statements (block) if el.text:sub(c, c) == "{" then braced = true pos = c + 1 - table.insert(stack, pandoc.Str(s)) + stack_next = stack_next..s -- leaving non-annotation enclosure else bracketed = false braced = false + -- TODO: clear only back to entering this bracketed enclosure + stack = {} + -- TODO: parse remains of Str goto continue end + + -- staying enclosed + else + stack_next = stack_next..s end end @@ -236,14 +245,21 @@ function Statements (block) end if d then statement_count = statement_count + 1 + table.insert(stack, pandoc.Str(stack_next)) + stack_next = "" bracketed = false braced = false pos = d + 1 - -- TODO: add any bracket-enclosed content to stack - -- TODO: call same function with remains of Str + -- TODO: parse remains of Str end end + -- end of element, push collected string to stack + if string.len(stack_next) > 0 and pos >= el.text:len() then + table.insert(stack, pandoc.Str(stack_next)) + stack_next = "" + end + -- done parsing current Inline element ::continue:: end |
