]> git.plutz.net Git - cgilite/commitdiff
allow block lists (again)
authorPaul Hänsch <paul@plutz.net>
Wed, 30 Aug 2023 14:02:19 +0000 (16:02 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 30 Aug 2023 14:02:19 +0000 (16:02 +0200)
markdown.awk

index eb40210c9bc78c8cacadda40389c73df2e8d6d6b..57a04e986703b122bc1d0f2a629ab0c03cf792cf 100755 (executable)
@@ -41,7 +41,7 @@
 # - [x] Automatic <section>-wrapping (custom)
 # -  ?  Heading identifiers (php md, pandoc)
 #   - [x] Heading attributes (custom)
-#   - [ ] <hr> ends section
+#   - [ ] <hr> terminates section
 # - [x] Automatic heading identifiers (custom)
 # - [x] Fenced code blocks (php md, pandoc)
 #   - [x] Fenced code attributes
@@ -741,10 +741,11 @@ function _block( block, LOCAL, st, len, text, title, attrib, href, guard, code,
   }
 }
 
-function _list (block, mark, LOCAL, len, st, text, indent, task) {
+function _list (block, mark, p, LOCAL, len, st, text, indent, task) {
   if ( match(block, "^([ \t]*\n)*$")) return;
   match(block, "^" mark "[ \t]"); indent = RLENGTH;
   sub("^" mark "[ \t]", "", block);
+  if (match(block, /\n[ \t]*\n/)) p = 1;
 
   match( block, "\n" mark "[ \t][^\n]+(\n|$)" \
       "(([ \t]*\n)* ? ? ?" mark "[ \t][^\n]+(\n|$)" \
@@ -763,10 +764,10 @@ function _list (block, mark, LOCAL, len, st, text, indent, task) {
   sub(/^\[[-? /xX]\]/, "", text);
 
   text = _nblock( text );
-  if (match( text, "^<p>(</p[^>]|</[^p]|<[^/]|[^<])*</p>\n$" ))
+  if ( ! p && match( text, "^<p>(</p[^>]|</[^p]|<[^/]|[^<])*</p>\n$" ))
      gsub( "(^<p>|</p>\n$)", "", text);
 
-  return task text "</li>\n" _list(block, mark);
+  return task text "</li>\n" _list(block, mark, p);
 }
 
 function _dlist (block, LOCAL, len, st, text, indent, p) {