]> git.plutz.net Git - cgilite/commitdiff
bugfix: stop condition in HTML block
authorPaul Hänsch <paul@plutz.net>
Tue, 6 Jul 2021 16:50:39 +0000 (18:50 +0200)
committerPaul Hänsch <paul@plutz.net>
Tue, 6 Jul 2021 16:50:39 +0000 (18:50 +0200)
markdown.awk

index e652be1d7a992cd4c129251c41ad1d917102069a..d1de2c322ca2e1854d4530c61855f04638963617 100755 (executable)
@@ -263,10 +263,12 @@ function _block( block, LOCAL, st, len, hlvl, htxt, guard, code, indent ) {
   # HTML #1
   } else if ( match( tolower(block), /(^|\n) ? ? ?<(script|pre|style)([[:space:]\n>]).*(<\/script>|<\/pre>|<\/style>|$)/) ) {
     len = RLENGTH; st = RSTART;
+    match( tolower(substr(block, st, len)), /(<\/script>|<\/pre>|<\/style>)/);
+    len = RSTART + RLENGTH;
     return _block(substr(block, 1, st - 1)) substr(block, st, len) _block(substr(block, st + len));
 
   # HTML #7
-  } else if ( match( block, /^ ? ? ?(<\/[A-Za-z][A-Za-z0-9-]* \t]*>|<[A-Za-z][A-Za-z0-9-]*([ \t]+[A-Za-z_:][A-Za-z0-9_\.:-]*[ \t]*=[ \t]*([[:space:]"'=<>`]+|"[^"]*"|'[^']*'))*[ \t]*\/?>)([[:space:]]*\n).*(\n[[:space:]]*\n|$)/) ) {
+  } else if ( match( block, /^ ? ? ?(<\/[A-Za-z][A-Za-z0-9-]* \t]*>|<[A-Za-z][A-Za-z0-9-]*([ \t]+[A-Za-z_:][A-Za-z0-9_\.:-]*[ \t]*=[ \t]*([[:space:]"'=<>`]+|"[^"]*"|'[^']*'))*[ \t]*\/?>)([[:space:]]*\n)([^\n]|\n[[:space:]]*[^\n])*(\n[ \t]*\n|$)/) ) {
     len = RLENGTH; st = RSTART;
     return substr(block, st, len) _block(substr(block, st + len));