Summary Files Commits Branches @commit @diff @stats
path: root / single.awk
diff options
context:
space:
mode:
Commit900605617766f143877bb54e7763ef045fe1a8c4 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-01-01 11:34:33 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-01-01 11:34:33 +0200
Files5dad53c6e90c3fcdd0bd10b57ea496b008614d67 /single.awk
csg-900605617766f143877bb54e7763ef045fe1a8c4.tar
csg-900605617766f143877bb54e7763ef045fe1a8c4.tar.gz
csg-900605617766f143877bb54e7763ef045fe1a8c4.zip
Parent56d93212b6239fbd319441b63d0f9bb7e313cb5f (diff)
fix(single): Fix code blocks inside blockquotes being removed
1 files changed, 12 insertions, 2 deletions
-rw-r--r--single.awk14
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 "</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>"
}