From 8e5ffff1d6ed3d99361ffcfdccc1cd21f5d6d813 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Fri, 1 Sep 2023 17:15:18 +0200 Subject: [PATCH] bugfix: do not consume multiple paragraphs in list start --- markdown.awk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/markdown.awk b/markdown.awk index 1e3c6e0..92b32fc 100755 --- a/markdown.awk +++ b/markdown.awk @@ -741,15 +741,16 @@ function _block( block, LOCAL, st, len, text, title, attrib, href, guard, code, function _startlist(block, type, mark, exclude, LOCAL, st, len, list, indent, text) { if (match( block, "(^|\n) ? ? ?" mark "[ \t][^\n]+(\n|$)" \ - "(([ \t]*\n)* ? ? ?" mark "[ \t][^\n]+(\n|$)" \ - "|([ \t]*\n)*( ? ? ?\t| +)[^\n]+(\n|$)" \ - "|[^\n \t][^\n]+(\n|$))*" ) ) { - st = RSTART; len = RLENGTH; list = substr( block, RSTART, RLENGTH); + "(([ \t]*\n)* ? ? ?" mark "[ \t][^\n]+(\n|$)" \ + "|([ \t]*\n)*( ? ? ?\t| +)[^\n]+(\n|$)" \ + "|[^\n \t][^\n]+(\n|$))*" ) ) { + st = RSTART; len = RLENGTH; list = substr( block, st, len); sub("^\n", "", list); match(list, "^ ? ? ?"); indent = RLENGTH; gsub( "(^|\n) {0," indent "}", "\n", list); sub("^\n", "", list); text = substr(block, 1, st - 1); block = substr(block, st + len); + if (match(text, /\n[[:space:]]*\n/)) return 0; if (match( list, "\n" exclude "[ \t]" )) { block = substr(list, RSTART + 1) block; list = substr(list, 1, RSTART); -- 2.39.2