]> git.plutz.net Git - cgilite/commitdiff
change order of precedence (HTML binds more than link brackets)
authorPaul Hänsch <paul@plutz.net>
Sun, 8 Oct 2023 20:42:43 +0000 (22:42 +0200)
committerPaul Hänsch <paul@plutz.net>
Sun, 8 Oct 2023 20:42:43 +0000 (22:42 +0200)
markdown.awk

index 6143b73dea4ccd07e4262867480152d4ad85b028..7ec1280d34784d35377afd860d88b81f47df4906 100755 (executable)
@@ -154,6 +154,11 @@ function inline( line, LOCAL, len, text, code, href, guard ) {
       return "<code>" code "</code>" inline( substr( line, len + 1 ) )
     }
 
+  # Macros
+  } else if ( match( line, /^<<([^>]|>[^>])+>>/ ) ) {
+    len = RLENGTH;
+    return "<code class=\"macro\">" HTML( substr( line, 3, len - 4 ) ) "</code>" inline(substr(line, len + 1));
+
   # Wiki style links
   } else if ( match( line, /^\[\[([^]|]+)(\|[^]]+)?\]\]/) ) {
     len = RLENGTH;
@@ -174,6 +179,11 @@ function inline( line, LOCAL, len, text, code, href, guard ) {
     href = URL( substr( line, 2, len - 2) );
     return "<a href=\"mailto:" href "\">" href "</a>" inline( substr( line, len + 1) );
 
+  # Verbatim inline HTML
+  } else if ( AllowHTML && match( line, /^(<!--([^-]|-[^-]|--[^>])*-->|<\?([^\?]|\?[^>])*\?>|<![A-Z][^>]*>|<!\[CDATA\[([^\]]|\][^\]]|\]\][^>])*\]\]>|<\/[A-Za-z][A-Za-z0-9-]*[[:space:]]*>|<[A-Za-z][A-Za-z0-9-]*([[:space:]]+[A-Za-z_:][A-Za-z0-9_\.:-]*([[:space:]]*=[[:space:]]*([[:space:]"'=<>`]+|"[^"]*"|'[^']*'))?)*[[:space:]]*\/?>)/) ) {
+    len = RLENGTH;
+    return substr( line, 1, len) inline(substr(line, len + 1));
+
   # inline links
   #                                 ,_______________________Image____________________________,
   } else if ( match(line, /^\[([^]]+|!\[[^]]*\]\([^"\)]+([ \t]+"[^"]+")?\)(\{[a-zA-Z \t-]*\})?)\]\(([^"\)]+)([[:space:]]+"([^"]+)")?\)/) ) {
@@ -290,16 +300,6 @@ function inline( line, LOCAL, len, text, code, href, guard ) {
     len = RLENGTH;
     return "<em>" inline( substr( line, 2, len - 2 ) ) "</em>" inline( substr( line, len + 1 ) );
 
-  # Macros
-  } else if ( match( line, /^<<([^>]|>[^>])+>>/ ) ) {
-    len = RLENGTH;
-    return "<code class=\"macro\">" HTML( substr( line, 3, len - 4 ) ) "</code>" inline(substr(line, len + 1));
-
-  # Verbatim inline HTML
-  } else if ( AllowHTML && match( line, /^(<!--([^-]|-[^-]|--[^>])*-->|<\?([^\?]|\?[^>])*\?>|<![A-Z][^>]*>|<!\[CDATA\[([^\]]|\][^\]]|\]\][^>])*\]\]>|<\/[A-Za-z][A-Za-z0-9-]*[[:space:]]*>|<[A-Za-z][A-Za-z0-9-]*([[:space:]]+[A-Za-z_:][A-Za-z0-9_\.:-]*([[:space:]]*=[[:space:]]*([[:space:]"'=<>`]+|"[^"]*"|'[^']*'))?)*[[:space:]]*\/?>)/) ) {
-    len = RLENGTH;
-    return substr( line, 1, len) inline(substr(line, len + 1));
-
   # Literal HTML entities
   } else if ( match( line, /^&([a-zA-Z]{2,32}|#[0-9]{1,7}|#[xX][0-9a-fA-F]{1,6});/) ) {
     len = RLENGTH;