aboutsummaryrefslogtreecommitdiff
path: root/_extensions/ruc-play
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2025-05-14 13:38:29 +0200
committerJonas Smedegaard <dr@jones.dk>2025-05-14 13:45:42 +0200
commit3555b9ce3e004fef9fdbd3b3ce87f8d70dc63902 (patch)
tree31482e1084242cae30bf560727fe12dc18346bcb /_extensions/ruc-play
parent117120f9b6e4a6d8501a0d9d9a9e71694ee532d7 (diff)
fix collect pre-enclosure elements only in elems_unenclosed
Diffstat (limited to '_extensions/ruc-play')
-rw-r--r--_extensions/ruc-play/semantic-markdown/semantic-markdown.lua13
1 files 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