From 900605617766f143877bb54e7763ef045fe1a8c4 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 1 Jan 2025 11:34:33 +0200 Subject: fix(single): Fix code blocks inside blockquotes being removed --- single.awk | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'single.awk') diff --git a/single.awk b/single.awk index da180bb..1e48ce7 100644 --- a/single.awk +++ b/single.awk @@ -145,13 +145,17 @@ BEGIN { # Blockquotes blockquote_level > 0 && empty0 { + if (inside_codeblock) { + P1 = P1 ORS "" + inside_codeblock = 0 + } for (P1 = P1 ORS; blockquote_level > 0; --blockquote_level) { P1 = P1 "" } not_paragraph_p1 = 1 } /^>[ \t]/ { - match($0, /^[> \t]+[ \t]+/) + match($0, /^[> \t]*> /) level = substr($0, RSTART, RLENGTH) $0 = substr($0, RSTART + RLENGTH) gsub(/[ \t]/, "", level) @@ -160,7 +164,13 @@ blockquote_level > 0 && empty0 { for (;blockquote_level < level; ++blockquote_level) { P1 = P1 "
" } - if (blockquote_level > level) { P2 = P2 ORS } + if (blockquote_level > level) { + if (inside_codeblock) { + P2 = P2 ORS "" + inside_codeblock = 0 + } + P2 = P2 ORS + } for (;blockquote_level > level; --blockquote_level) { P2 = P2 "
" } -- cgit v1.3.1-23-gd82d