diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-04-05 18:52:42 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-04-05 18:52:42 (GMT) |
commit | 39ba42c3b21d08ec606eee18ee8b64c67ec6a42a (patch) | |
tree | 9348a5432e6237c1ef7f9b327484e8cebfd6df5e | |
parent | ba37d860547b6eec4d48077be573388686587e0e (diff) | |
download | Doxygen-39ba42c3b21d08ec606eee18ee8b64c67ec6a42a.zip Doxygen-39ba42c3b21d08ec606eee18ee8b64c67ec6a42a.tar.gz Doxygen-39ba42c3b21d08ec606eee18ee8b64c67ec6a42a.tar.bz2 |
Added documentation for ``` style fenced code block and more robust parsing
-rw-r--r-- | doc/markdown.doc | 6 | ||||
-rw-r--r-- | src/pre.l | 10 | ||||
-rw-r--r-- | src/scanner.l | 8 |
3 files changed, 15 insertions, 9 deletions
diff --git a/doc/markdown.doc b/doc/markdown.doc index a35b802..87af3d8 100644 --- a/doc/markdown.doc +++ b/doc/markdown.doc @@ -390,6 +390,12 @@ int func(int a,int b) { return a*b; } The curly braces and dot are optional by the way. +Another way to denote fenced code blocks is to use 3 or more backticks (```): + + ``` + also a fenced code block + ``` + \subsection md_header_id Header Id Attributes Standard Markdown has no support for labeling headers, which @@ -2452,7 +2452,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <SkipCComment>[\\@][\\@]("f{"|"f$"|"f[") { outputArray(yytext,(int)yyleng); } -<SkipCComment>"~~~"[~]* { +<SkipCComment>^({B}*"*"+)?{B}{0,3}"~~~"[~]* { static bool markdownSupport = Config_getBool("MARKDOWN_SUPPORT"); if (!markdownSupport) { @@ -2465,7 +2465,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN(SkipVerbatim); } } -<SkipCComment>"```"[`]* { +<SkipCComment>^({B}*"*"+)?{B}{0,3}"```"[`]* { static bool markdownSupport = Config_getBool("MARKDOWN_SUPPORT"); if (!markdownSupport) { @@ -2612,14 +2612,14 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) BEGIN(SkipCComment); } } -<SkipVerbatim>"~~~"[~]* { +<SkipVerbatim>^({B}*"*"+)?{B}{0,3}"~~~"[~]* { outputArray(yytext,(int)yyleng); if (g_fenceSize==yyleng) { BEGIN(SkipCComment); } } -<SkipVerbatim>"```"[`]* { +<SkipVerbatim>^({B}*"*"+)?{B}{0,3}"```"[`]* { outputArray(yytext,(int)yyleng); if (g_fenceSize==yyleng) { @@ -2629,7 +2629,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) <SkipVerbatim>"*/"|"/*" { outputArray(yytext,(int)yyleng); } -<SkipCComment,SkipVerbatim>[^*\\@\x06~\n\/]+ { +<SkipCComment,SkipVerbatim>[^*\\@\x06~`\n\/]+ { outputArray(yytext,(int)yyleng); } <SkipCComment,SkipVerbatim>\n { diff --git a/src/scanner.l b/src/scanner.l index c309289..b11d777 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -6264,14 +6264,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) g_nestedComment=FALSE; BEGIN(DocCopyBlock); } -<DocBlock>"~~~"[~]* { +<DocBlock>^({B}*"*"+)?{B}{0,3}"~~~"[~]* { docBlock+=yytext; docBlockName="~~~"; g_fencedSize=yyleng; g_nestedComment=FALSE; BEGIN(DocCopyBlock); } -<DocBlock>"```"[`]* { +<DocBlock>^({B}*"*"+)?{B}{0,3}"```"[`]* { docBlock+=yytext; docBlockName="```"; g_fencedSize=yyleng; @@ -6389,14 +6389,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) REJECT; } } -<DocCopyBlock>"~~~"[~]* { +<DocCopyBlock>^({B}*"*"+)?{B}{0,3}"~~~"[~]* { docBlock+=yytext; if (g_fencedSize==yyleng) { BEGIN(DocBlock); } } -<DocCopyBlock>"```"[`]* { +<DocCopyBlock>^({B}*"*"+)?{B}{0,3}"```"[`]* { docBlock+=yytext; if (g_fencedSize==yyleng) { |