diff options
| Commit | 900605617766f143877bb54e7763ef045fe1a8c4 (patch) | |
|---|---|---|
| Author | 2025-01-01 11:34:33 +0200 | |
| Committer | 2025-01-01 11:34:33 +0200 | |
| Files | 5dad53c6e90c3fcdd0bd10b57ea496b008614d67 /single.awk | |
| csg-900605617766f143877bb54e7763ef045fe1a8c4.tar csg-900605617766f143877bb54e7763ef045fe1a8c4.tar.gz csg-900605617766f143877bb54e7763ef045fe1a8c4.zip | ||
| Parent | 56d93212b6239fbd319441b63d0f9bb7e313cb5f (diff) | |
fix(single): Fix code blocks inside blockquotes being removed
1 files changed, 12 insertions, 2 deletions
| -rw-r--r-- | single.awk | 14 |
@@ -145,13 +145,17 @@ BEGIN { # Blockquotes blockquote_level > 0 && empty0 { + if (inside_codeblock) { + P1 = P1 ORS "</code></pre>" + inside_codeblock = 0 + } for (P1 = P1 ORS; blockquote_level > 0; --blockquote_level) { P1 = P1 "</blockquote>" } 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 "<blockquote>" } - if (blockquote_level > level) { P2 = P2 ORS } + if (blockquote_level > level) { + if (inside_codeblock) { + P2 = P2 ORS "</code></pre>" + inside_codeblock = 0 + } + P2 = P2 ORS + } for (;blockquote_level > level; --blockquote_level) { P2 = P2 "</blockquote>" } |
