urltoolskit.org
URL utilities, in the browser
Say hi →

Markdown link tools

inline ↔ reference · autolink bare URLs · extract all · strip to plain text

Five operations on the links in a Markdown document. Convert a paragraph cluttered with inline URLs into tidy reference style, or go the other way. Autolink bare URLs without mangling the ones inside code blocks. Pull every link out as a list — and see which reference links point at a definition that does not exist.

Links found

Ready.

How to use

  1. Paste your Markdown. The Links found table fills in immediately regardless of which operation you pick.
  2. Choose an Operation. Extract gives you a plain URL list — the input format the other tools here expect.
  3. Inline → reference moves every URL to a numbered definition at the bottom, which makes long prose paragraphs readable again in a plain-text editor.
  4. Autolink bare URLs wraps naked URLs in Markdown link syntax while leaving code spans, fenced blocks, existing links and reference definitions untouched.
  5. Strip removes the link syntax and keeps the visible text — useful for turning a README section into plain prose.

What the table tells you

Every link is listed with its kind: inline, reference, definition, autolink (the <https://…> form), or image. Two kinds of row are outlined as problems.

A reference with no definition. [the spec][spec] with no [spec]: … line anywhere renders as literal brackets — the link silently is not a link. This is the most common Markdown link bug, and it usually happens after moving a paragraph between files, because the definition stayed behind. Renderers do not warn about it.

An empty URL. [text]() parses as a link to nowhere. Often a placeholder that was never filled in.

Definitions that no reference uses are shown too, as their own rows — harmless, but they accumulate, and after converting reference → inline they are the leftovers.

Which style to use

Inline keeps the URL next to the text, which is better for short documents and for anything where the link will be read by a person editing raw Markdown once and never again. It is what every editor's link shortcut produces.

Reference keeps prose readable when URLs are long — a paragraph with four inline tracking-laden URLs is unreadable in an editor — and lets you reuse one definition for several links, which means a URL that changes gets updated once. It is the convention in most large documentation repositories for exactly that reason.

A detail worth knowing: reference labels are case-insensitive and whitespace-collapsed, so [The Spec] matches [the spec]:. And the shortcut form [spec][] — or even just [spec] when a definition with that label exists — uses the link text as the label, which is why converting to inline style has to look up definitions rather than pattern-match blindly.

FAQ

Will autolinking break my code samples?

No. Fenced blocks and inline code spans are set aside before the scan and restored afterwards, along with existing links and reference definitions. A URL inside backticks stays a URL inside backticks.

Where does an autolinked URL stop?

Before trailing punctuation, so a URL at the end of a sentence does not swallow the full stop, and one in parentheses does not take the closing bracket. That heuristic is occasionally wrong for URLs that legitimately end in a bracket — check the result if your URLs contain them.

Are titles preserved?

Yes, in both conversion directions — the "Title" after the URL survives the round trip.

What about images?

Listed separately as image or image ref, and converted along with links. Strip removes an image entirely rather than leaving its alt text as stray prose.