]> git.plutz.net Git - cgilite/commitdiff
minor fix: in fenced divs and fenced code blocks, omit empty class attribute
authorPaul Hänsch <paul@plutz.net>
Thu, 29 Aug 2024 11:22:57 +0000 (13:22 +0200)
committerPaul Hänsch <paul@plutz.net>
Thu, 29 Aug 2024 11:22:57 +0000 (13:22 +0200)
markdown.awk

index d54d125d6cf4338f212b515dad2e28484943518a..7e20ebb0d92c5d2987122f8cab14be55f22d3eff 100755 (executable)
@@ -557,10 +557,14 @@ function _block( block, LOCAL, st, len, text, title, attrib, href, guard, code,
     attrib = gensub(/^:::+[ \t]*\{?[ \t]*([^\}\n]*)\}?[ \t]*\n.*$/, "\\1", 1, block);
     gsub(/[^a-zA-Z0-9_-]+/, " ", attrib);
     gsub(/(^ | $)/, "", attrib);
-    if ( match(code, "(^|\n)" guard "+(\n|$)" ) ) {
+    if ( match(code, "(^|\n)" guard "+(\n|$)" ) && attrib ) {
       len = RLENGTH; st = RSTART;
       return "<div class=\"" attrib "\">" _nblock( substr(code, 1, st - 1) ) "</div>\n" \
              _block( substr( code, st + len ) );
+    } else if ( match(code, "(^|\n)" guard "+(\n|$)" ) ) {
+      len = RLENGTH; st = RSTART;
+      return "<div>" _nblock( substr(code, 1, st - 1) ) "</div>\n" \
+             _block( substr( code, st + len ) );
     } else {
       match( block, /(^|\n)[[:space:]]*(\n|$)/ ) || match( block, /$/ );
       len = RLENGTH; st = RSTART;
@@ -575,10 +579,14 @@ function _block( block, LOCAL, st, len, text, title, attrib, href, guard, code,
     attrib = gensub(/^(~~~+|```+)[ \t]*\{?[ \t]*([^\}\n]*)\}?[ \t]*\n.*$/, "\\2", 1, block);
     gsub(/[^a-zA-Z0-9_-]+/, " ", attrib);
     gsub(/(^ | $)/, "", attrib);
-    if ( match(code, "(^|\n)" guard "+(\n|$)" ) ) {
+    if ( match(code, "(^|\n)" guard "+(\n|$)" ) && attrib ) {
       len = RLENGTH; st = RSTART;
       return "<pre><code class=\"" attrib "\">" HTML( substr(code, 1, st - 1) ) "</code></pre>\n" \
              _block( substr( code, st + len ) );
+    } else if ( match(code, "(^|\n)" guard "+(\n|$)" ) ) {
+      len = RLENGTH; st = RSTART;
+      return "<pre><code>" HTML( substr(code, 1, st - 1) ) "</code></pre>\n" \
+             _block( substr( code, st + len ) );
     } else {
       match( block, /(^|\n)[[:space:]]*(\n|$)/ ) || match( block, /$/ );
       len = RLENGTH; st = RSTART;