DavidAnson / markdownlint

A Node.js style checker and lint tool for Markdown/CommonMark files.
MIT License
4.83k stars 732 forks source link

MD049: Incorrectly detecting [[_TOC_]] #734

Open Prefix42 opened 1 year ago

Prefix42 commented 1 year ago

Problem Description

Rule MD049 incorrectly detects the the Azure Devops markdown tag to auto generate a table of contents

Issue

Azure Devops uses the tag [[_TOC_]] to auto generate a table of contents at render. The tag must match case and syntax exactly or will be rendered as the litteral text. As the tag uses a prefix and suffix of underscore (_) the rule MD049 incorrectly detects the use of underscore as the emphasis style of the document.

Proposal

Exclude "[[TOC]]" from emphasis evaluation

Impacted version(s)

v0.27.0

Supporting Documentation

Markdown syntax for wikis

DavidAnson commented 1 year ago

This construct is not part of the CommonMark specification, so it is reasonable for it to be flagged. That said, your example does not seem to generate a violation: https://dlaa.me/markdownlint/#%25m%23%20Issue%20734%0A%0A%5B%5B_TOC_%5D%5D%0A

Prefix42 commented 1 year ago

Thank you for the super prompt response.

My apologies for the poor explanation and lack of example. Please see the following for a better demonstration of the issue. https://dlaa.me/markdownlint/#%25m%23%20Issue%20734%0A%0A%5B%5B_TOC_%5D%5D%0A%0A*foo*%0A_bar_%0A

In regards to being outside of the CommonMark specification I completely understand but figured it never hurts to ask,

DavidAnson commented 1 year ago

Thank you! I don't like adding special cases for weird stuff like this, but I see why it's annoying in your scenario. I'll leave this open to think about.

ElCuboNegro commented 5 months ago

Almost the same with wikilinks. they have a foo [[bar]] foo syntax that is incorrectly flagged as MD052/reference-links-images