Markdown Link & Image Extractor
Extract every link and image from Markdown — inline, reference-style and autolinks — as a filterable table (also CSV) or JSON. Classifies each URL as external or internal, resolves reference definitions, and optionally deduplicates by URL.
Input
Options
Output
Paste markdown content above to extract links and images.
| Type | Style | Text / Alt | URL | Title | Location | Line |
|---|---|---|---|---|---|---|
| No data yet | ||||||
Guides
Paste any Markdown document — a README, a blog post, docs pages — and instantly pull out every link and image it contains. The extractor reads all four Markdown reference styles: inline links [text](url), inline images , reference-style links and images ([text][id] with a matching [id]: url definition), and bare autolinks (<https://example.com>). Each result lands in a filterable table you can copy, download as CSV, or export as JSON.
How to use it
- Paste your Markdown into the input box, or upload a
.mdfile. - Choose what to extract — links, images, or both.
- Optionally filter by location: external URLs (http, https, mailto, tel) or internal references (relative paths and page anchors).
- Read the results in the table, or grab the CSV / JSON export.
The summary line above the table counts what was found: how many links, how many images, how many point outward versus stay inside the document, and how many reference-style links have no matching definition.
What it detects
- Inline links and images — the everyday
[label](url "title")andforms, including optional titles. - Reference-style links and images —
[label][id]paired with a[id]: url "title"definition elsewhere in the file. Turn on Resolve references to substitute the real URL; leave it off to see the raw reference ids. - Autolinks — angle-bracket URLs and email addresses like
<https://site.com>or<you@example.com>(emails are normalised tomailto:). - Code is ignored — anything inside fenced code blocks (
```,~~~) or inline`code`spans is skipped, so URLs shown as examples in code samples don't pollute your results.
Each row records the type (link or image), the style (inline, reference, or autolink), the visible text or alt text, the URL, any title, the location classification, and the source line number.
Output formats
The table is the primary view and doubles as your CSV: the Copy and Download buttons emit comma-separated values ready for a spreadsheet. The separate JSON panel gives the same data as structured objects (with reference ids and 1-based index) for scripting or programmatic use.
Why would a link show as "unresolved"?
A reference-style link like [docs][d] needs a matching definition ([d]: https://…) somewhere in the document. If that definition is missing — or if you've turned Resolve references off — the row is marked unresolved and no URL is shown. Add the definition, or enable resolving, to fill it in.
Does it check whether links work?
No. This tool parses structure only — it never fetches any URL, so nothing you paste leaves your browser. It tells you what links and images exist in the Markdown and how they're classified, not whether they return a 200. Everything runs client-side.