From 3555b9ce3e004fef9fdbd3b3ce87f8d70dc63902 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 14 May 2025 13:38:29 +0200 Subject: fix collect pre-enclosure elements only in elems_unenclosed --- .../ruc-play/semantic-markdown/semantic-markdown.lua | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua b/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua index 5d5967f..f076950 100644 --- a/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua +++ b/_extensions/ruc-play/semantic-markdown/semantic-markdown.lua @@ -326,7 +326,6 @@ local function Statements (block) end if encl == Enclosure.NONE then - elems_enclosed:insert(el) -- specific elements represent content enclosure if ElementTypeIsEnclosure[el.t] then @@ -343,13 +342,21 @@ local function Statements (block) local _, nextpos, s = el.text:find("^([^%[\\]*)") pos = nextpos and nextpos + 1 or pos + 1 chars_unenclosed = chars_unenclosed..s - chars_enclosed = chars_unenclosed -- entering bracketed enclosure if el.text:sub(pos, pos) == "[" then + + -- qualify unenclosed elements + elems:extend(elems_unenclosed) + elems_unenclosed = pandoc.List() + elems_enclosed = pandoc.List() + if chars_unenclosed:len() > 0 then + elems:insert(pandoc.Str(chars_unenclosed)) + end + pos = pos + 1 - chars_enclosed = chars_unenclosed chars_unenclosed = chars_unenclosed.."[" + chars_enclosed = "" encl = Enclosure.BRACKETED end end -- cgit v1.2.3