doxygen / doxygen

Official doxygen git repository
https://www.doxygen.org
GNU General Public License v2.0
5.61k stars 1.27k forks source link

Markdown HTML parsing break when parsing quotes #8529

Closed eseiler closed 2 months ago

eseiler commented 3 years ago

Describe the bug

/*!\brief A struct.
 *\details
 *
 * <table>
 *   <tr>
 *     <td style="border: 1px solid black"> <code>"</code>
 *     </td>
 *     <td style="background:#ff9090;"><code>A</code>
 *     </td>
 *   </tr>
 * </table>
 */
struct S{};

produced a proper table before, now it stops parsing at " and breaks the HTMl code:

example.hpp:7: warning: explicit link request to 'ff9090' could not be resolved
example.hpp:11: warning: end of comment block while expecting command </code>

Expected behavior Working table.

To Reproduce example.tar.gz

Version 1.9.2 (487daf86335f91be24bebaf89920828b5f3c3d73)

commit 44d55811919cca36ba0709d805fd5b1478fdf4ea is known to work

albert-github commented 3 years ago

This is a bit of a mean problem. Now more than 2 lines are possible in one string and in the past it was limited to 2 lines. When we had in the past:

/*!\brief A struct.
 *\details
 *
 * <table>
 *   <tr>
 *     <td style="border: 1px solid black"> <code>"</code></td>
 *     <td style="background:#ff9090;"><code>A</code>
 *     </td>
 *   </tr>
 * </table>
 */
struct S{};

we would get the warnings:

.../example.hpp:6: warning: explicit link request to 'ff9090' could not be resolved
.../example.hpp:10: warning: end of comment block while expecting command </code>

so I don't think that the problem lies in the version 487daf8 but was a longer existing problem of the " in a <code> part.

Workaround, change:

 *     <td style="border: 1px solid black"> <code>"</code>

to

 *     <td style="border: 1px solid black"> <code>\"</code>

It might be that the remark with the \" command:

This command writes the " character to the output. This character has to be escaped in some cases, because it is used in pairs to indicate an unformatted text fragment.

will apply here, but still we should have a look at it.

eseiler commented 3 years ago

Thank you! For me personally, the workaround/fix is easy enough, and I think it's totally fine to need some characters escaped.

However, maybe a note could be added to https://www.doxygen.nl/manual/markdown.html#md_html_blocks that states that you may need to escape certain characters (\" would be a good example).

albert-github commented 3 years ago

@doxygen Should we qualify this issue as usage or as bug / enhancement?

albert-github commented 4 months ago

Seen the possibility of \" I think this issue should be qualified as usage.