Blog · Guide

How to Add Links in Markdown

May 31, 2026 · 5 min read
advertisement

Adding links is one of the most fundamental Markdown skills. There are several ways to do it — inline, reference-style, automatic, and image links. This guide covers all of them.

The standard link syntax wraps the display text in square brackets and the URL in parentheses:

[Visit Markdown Monk](https://markdownmonk.com)

Output: Visit Markdown Monk

The text inside [] is what the reader sees and clicks. The URL inside () is the destination. Simple.

Add a quoted string after the URL for a title that appears on hover:

[Markdown Guide](https://markdownmonk.com "Free online Markdown editor")

The title shows as a tooltip when the cursor hovers over the link. It’s optional but useful for accessibility and context.

For long URLs or links used multiple times, reference-style keeps your text readable:

The [Markdown Monk][mm] editor supports all common syntax.
For syntax help, see the [Markdown cheat sheet][cheatsheet].

[mm]: https://markdownmonk.com
[cheatsheet]: https://markdownmonk.com/blog/markdown-cheat-sheet

The references at the bottom can go anywhere in the document — end of section, end of file. The identifier in [] is case-insensitive.

Shortened reference links also work when the reference label matches the link text:

[Markdown Monk][]

[Markdown Monk]: https://markdownmonk.com

Wrap a URL or email in angle brackets to auto-link it:

<https://markdownmonk.com>
<hello@example.com>

Output: https://markdownmonk.com — displayed as the raw URL but clickable.

Many Markdown parsers also auto-link bare URLs without the angle brackets. GitHub, for example, linkifies https://example.com in plain text. This behavior is parser-dependent, so use angle brackets when you need reliability.

[Email us](mailto:hello@example.com)

Or with the auto-link syntax:

<hello@example.com>

The mailto: prefix tells the browser to open an email client instead of navigating to a URL.

Links don’t have to be full URLs. Relative links work for navigation within a site or document set:

[Go to the cheat sheet](/blog/markdown-cheat-sheet)
[Back to homepage](/)
[See the image](../images/diagram.png)

Relative links are resolved from the location of the current document.

Wrap an image in a link by combining both syntaxes — the image is the clickable element:

[![Markdown Monk logo](logo.png)](https://markdownmonk.com)

The ![]() image syntax sits inside the [] of the link syntax. Click the image → navigate to the URL.

Link to a heading on the same page using a fragment identifier. Most Markdown renderers automatically create IDs from heading text:

[Jump to Tables section](#tables)
[Back to the top](#)

The heading ## Tables generates the ID tables. Rules for automatic IDs:

  • Convert to lowercase
  • Replace spaces with hyphens
  • Remove most punctuation

So ## How to Add Links in Markdown becomes #how-to-add-links-in-markdown.

| Tool | URL |
|---|---|
| Markdown Monk | [markdownmonk.com](https://markdownmonk.com) |
| GitHub | [github.com](https://github.com) |

Full inline link syntax works inside table cells.

> For more information, see [the full syntax guide](/blog/markdown-cheat-sheet).

All inline formatting — links included — works inside blockquotes.

Common Mistakes

Spaces in URLs — URLs with spaces must be percent-encoded: my%20file.pdf instead of my file.pdf. Some parsers handle this; many don’t.

Missing square brackets(https://example.com) without [] is not a link. The brackets are required.

Broken relative paths — Relative links only work when the document is rendered in the right context. A ./images/photo.jpg link that works locally may break when published.

Paste any of these examples into the Markdown Monk editor to see them rendered and export to your preferred format.

Free tool

Try it in the editor

Test every syntax example above — live in your browser, free, no sign-up.

Open editor → More guides →