Skip to content

Triple underscores in Markdown mode not supported #11420

@crasbe

Description

@crasbe

Describe the bug

Markdown stars for italic, bold and bold-italic at the line start are ignored. This means that **foo** will be printed in the HTML output as foo**, as you can see in the screenshots. Using the Markdown stars not at the line start will show the right behavior.

Furthermore I observed that Doxygen does not support three underscores for bold-italic like ___foo___. I'm not sure if it is supposed to, but since it generally supports three stars ***foo***, it should support three underscores as well. GitHub for example supports it, foo.

Screenshots

Behavior in Doxygen 1.8.15 (the oldest I could get to compile in Ubuntu 22.04):

Image

Behavior in Doxygen 1.13.2:

Image

This is what the generated HTML looks like:

Image

To Reproduce
I created a minimal example in the doc.txt that is rendered with a pretty standard Doxyfile.txt, created by version 1.13.0. I only disabled LaTeX output and added the doc.txt to the INPUT.

Doxyfile.txt

doc.txt

/**
@defgroup    testcase This is a testcase for bold text

## Overview

_Beware:_ Markdown underscores for italic are rendered correctly at line start.

__Beware:__ Markdown underscores for bold are rendered correctly at line start.

___Beware:___ Markdown underscores for bold and italic are rendered incorrectly at line start.

However ___beware:___ Markdown underscores for bold and italic not at the line start are rendered incorrectly.

*Beware:* Markdown stars for italic is rendered incorrectly at line start.

**Beware:** Markdown stars for bold are rendered incorrectly at line start.

***Beware:*** Markdown starts for bold and italic are rendered incorrectly at line start.

However *beware*: Markdown starts for italic not at the line start are rendered correctly.

However **beware**: Markdown starts for bold not at the line start are rendered correctly.

However ***beware***: Markdown starts for bold and italic not at the line start are rendered correctly.

<i>Beware:</i> HTML tags for italic are rendered correctly at line start.

<b>Beware:</b> HTML tags for bold are rendered correctly at line start.

<b><i>Beware:</i></b> HTML tags for bold and italic are rendered correctly at line start.

*/

Expected behavior

1) The Markdown stars at the line beginning should be rendered correctly as bold, italic or bold-italic.

  1. The three Markdown underscores should be rendered as bold-italic.

Version
The bug happens with doxygen version 1.8.13, 1.8.15, 1.9.1 and 1.13.2 (and probably everything in between).

Version 1.8.13 was found on Web Archive, version 1.8.15 was compiled from source, 1.9.1 was from the Ubuntu package sources and 1.13.2 was installed from the binary release on GitHub.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

Metadata

Metadata

Assignees

No one assigned

    Labels

    MarkdownMarkdown translation input related issuebug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions