markdownlint/doc/md052.md

1.9 KiB

MD052 - Reference links and images should use a label that is defined

Tags: images, links

Aliases: reference-links-images

Parameters:

  • ignored_labels: Ignored link labels (string[], default ["x"])
  • shortcut_syntax: Include shortcut syntax (boolean, default false)

Links and images in Markdown can provide the link destination or image source at the time of use or can define it elsewhere and use a label for reference. The reference format is convenient for keeping paragraph text clutter-free and makes it easy to reuse the same URL in multiple places.

There are three kinds of reference links and images:

Full: [text][label]
Collapsed: [label][]
Shortcut: [label]

Full: ![text][image]
Collapsed: ![image][]
Shortcut: ![image]

[label]: https://example.com/label
[image]: https://example.com/image

A link or image renders correctly when the corresponding label is defined, but displays as text with brackets when the label is not present. By default, this rule warns of undefined labels for "full" and "collapsed" reference syntax but not for "shortcut" syntax because it is ambiguous.

The text [example] could be a shortcut link or the text "example" in brackets, so "shortcut" syntax is ignored by default. To include "shortcut" syntax, set the include_shortcut parameter to true. Note that doing so produces warnings for all text in the document that could be a shortcut. If bracketed text is intentional, brackets can be escaped with the \ character: \[example\].

If there are link labels that are deliberately unreferenced, they can be ignored by setting the ignored_labels parameter to the list of strings to ignore. The default value of this parameter ignores the checkbox syntax used by GitHub Flavored Markdown task list items:

- [x] Checked task list item