]> git.plutz.net Git - shellwiki/commitdiff
Squashed 'cgilite/' changes from 6fe824f..b2b268b
authorPaul Hänsch <paul@plutz.net>
Thu, 24 Mar 2022 11:48:14 +0000 (12:48 +0100)
committerPaul Hänsch <paul@plutz.net>
Thu, 24 Mar 2022 11:48:14 +0000 (12:48 +0100)
b2b268b corrected paragraph splitting and hr/h2 distinction
33cd660 faster hexdecode for mixed data (e.g. post-data)

git-subtree-dir: cgilite
git-subtree-split: b2b268b458208ba7746052e05f1f1f5ced081023

cgilite.sh
markdown.awk

index 90d65577648d2d78efa7d349e90677984f87c436..6cbd7ec27eca272bff82a98bcf08fb2b24d55a46 100755 (executable)
@@ -89,7 +89,8 @@ HEX_DECODE(){
       "$pfx"[0-9a-fA-F][0-9a-fA-F]*) in="${in#${pfx}}";;
       \\*) in="${in#?}"; out="${out}\\\\"; continue;;
        %*) in="${in#?}"; out="${out}%%";  continue;;
-        *) out="${out}${in%"${in#?}"}"; in="${in#?}"; continue;;
+        *) att="${in%%"${pfx}"*}"; att="${att%%%*}"; att="${att%%\\*}"
+           out="${out}${att}"; in="${in#"${att}"}"; continue;;
     esac;
 
     # Hex escapes for printf (e.g. \x41) are not portable 
index b3166f9e6c8580b919b960df50229750a7a1e3c8..d28c7cfc760a2ed6c9fde6e040a2bf981c008b38 100755 (executable)
@@ -390,6 +390,12 @@ function _block( block, LOCAL, st, len, hlvl, htxt, guard, code, indent, attrib
     return "<h" hlvl " id=\"" hid " - " HTML(htxt) "\">" inline( htxt ) "</h" hlvl ">\n\n" \
            _block( substr( block, len + 1) );
 
+  # Split paragraphs
+  } else if ( match( block, /(^|\n)[[:space:]]*(\n|$)/) ) {
+    len = RLENGTH; st = RSTART;
+    return _block( substr(block, 1, st - 1) ) "\n" \
+           _block( substr(block, st + len) );
+
   # Horizontal rule
   } else if ( match( block, /(^|\n) ? ? ?((\* *){3,}|(- *){3,}|(_ *){3,})($|\n)/) ) {
     len = RLENGTH; st = RSTART;
@@ -397,10 +403,7 @@ function _block( block, LOCAL, st, len, hlvl, htxt, guard, code, indent, attrib
 
   # Plain paragraph
   } else {
-    match( block, /(^|\n)[[:space:]]*(\n|$)/ ) || match( block, /$/ );
-    len = RLENGTH; st = RSTART;
-    return "<p>" inline( substr(block, 1, st - 1) ) "</p>\n" \
-           _block( substr(block, st + len) );
+    return "<p>" inline(block) "</p>\n";
   }
 }