From: Paul Hänsch Date: Mon, 28 Aug 2023 14:32:42 +0000 (+0200) Subject: Merge commit 'fb04e54ec3eecd4420c0f65780bc1099c911373a' X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=c21abbf18a78baba5577ced295df1a5842baf0d8;hp=-c;p=shellwiki Merge commit 'fb04e54ec3eecd4420c0f65780bc1099c911373a' --- c21abbf18a78baba5577ced295df1a5842baf0d8 diff --combined cgilite/markdown.awk index ffa225b,be7d723..be7d723 --- a/cgilite/markdown.awk +++ b/cgilite/markdown.awk @@@ -54,7 -54,7 +54,7 @@@ # - [x] Pipe table (php md, pandoc) # - [x] Line blocks (pandoc) # - [x] Task lists (pandoc, custom) - # - [ ] Definition lists (php md, pandoc) + # - [x] Definition lists (php md, pandoc) # - [-] Numbered example lists (pandoc) # - [-] Metadata blocks (pandoc) # - [x] Metadata blocks (custom) @@@ -590,6 -590,17 +590,17 @@@ function _block( block, LOCAL, st, len gsub("(^|\n) {0," indent "}", "\n", list); return "\n
    \n" _list( substr(list, 2) ) "
\n" _block( block ); + # Definition list + } else if (match( block, "^(([ \t]*\n)*[^:\n \t][^\n]+\n" \ + "([ \t]*\n)* ? ? ?:[ \t][^\n]+(\n|$)" \ + "(([ \t]*\n)* ? ? ?:[ \t][^\n]+(\n|$)" \ + "|[^:\n \t][^\n]+(\n|$)" \ + "|( ? ? ?\t| +)[^\n]+(\n|$)" \ + "|([ \t]*\n)+( ? ? ?\t| +)[^\n]+(\n|$))*)+" \ + )) { + list = substr( block, 1, RLENGTH); block = substr( block, RLENGTH + 1); + return "\n
\n" _dlist( list ) "
\n" _block( block ); + # First Order Heading H1 + Attrib } else if ( match( block, /^([^\n]+)([ \t]*\{([^\}\n]+)\})\n===+(\n|$)/ ) ) { len = RLENGTH; @@@ -721,6 -732,31 +732,31 @@@ } } + function _dlist (block, LOCAL, len, st, text, indent, p) { + if (match( block, "^([ \t]*\n)*[^:\n \t][^\n]+\n" )) { + len = RLENGTH; text = substr(block, 1, len); + gsub( "(^\n*|\n*$)", "", text ); + return "
" inline( text ) "
\n" _dlist( substr(block, len + 1) ); + } else if (match( block, "^([ \t]*\n)* ? ? ?:[ \t][^\n]+(\n|$)" \ + "([^:\n \t][^\n]+(\n|$)" \ + "|( ? ? ?\t| +)[^\n]+(\n|$)" \ + "|([ \t]*\n)+( ? ? ?\t| +)[^\n]+(\n|$))*" \ + )) { + len = RLENGTH; text = substr(block, 1, len); + if (match( text, "^ ? ? ?:[ \t][^\n]+(\n|$)" \ + "([^:\n \t][^\n]+(\n|$)" \ + "|( ? ? ?\t| +)[^\t\n ][^\n]*(\n|$))*$" \ + )) p = 1; else p = 0; + sub( "^([ \t]*\n)*", "", text); + match(text, "^ ? ? ?:(\t| +)"); indent = RLENGTH; + sub( "^ ? ? ?:(\t| +)", "", text); + gsub( "(^|\n) {0," indent "}", "\n", text ); + text = _block(text); + if (p) gsub("(^\n*

|

\n*$)", "", text); + return "
" text "
\n" _dlist( substr(block, len + 1) ); + } + } + function _list( block, last, LOCAL, p) { if ( ! length(block) ) return ""; gsub(/^([-+*]|[0-9]+\.|#\.)( ? ? ?|\t)/, "", block)