Markdown Link Extractor
Parses common Markdown link forms — `[text](url 'title')`, ``, reference-style `[text][id]` with `[id]: url 'title'`, and autolinks `<https://…>` — and returns each as a row of `{type, text, url, title}`. Useful for inventorying outbound links for SEO audits, building a sitemap from blog posts, checking for dead URLs across a docs folder, or extracting all images from a README before migrating to a new CDN.
| Type | Text | URL | Title |
|---|---|---|---|
| image | alt text | https://example.com/cat.png | Cute cat |
| link | a regular link | https://example.com | Example homepage |
| link | docs | https://docs.example.com | |
| link | help | https://help.example.com | Help center |
| link | https://example.org | https://example.org |
Output (5 items)
type,text,url,title image,alt text,https://example.com/cat.png,Cute cat link,a regular link,https://example.com,Example homepage link,docs,https://docs.example.com, link,help,https://help.example.com,Help center link,https://example.org,https://example.org,
Reference links resolve against `[id]: url` definitions in the same document. Bare URLs not wrapped in `<>` are skipped.
How to use
- Paste a Markdown document or section.
- Toggle whether images (``) are included.
- Pick CSV, JSON, or Markdown list output; copy and feed into your downstream tool.
Frequently asked questions
- Which link syntaxes are recognized?
- Inline `[text](url)` with optional `"title"` or `'title'`; reference `[text][id]` resolved via `[id]: url "title"` definitions; shortcut `[text][]`; image equivalents with `!` prefix; and HTML-style autolinks `<https://…>`. Bare URLs not wrapped in `<>` are intentionally skipped because they're ambiguous in CommonMark.
- Why is a link missing from the output?
- Most common reasons: the URL spans multiple lines (Markdown disallows that), there's a stray space between `]` and `(`, or it's a reference link whose definition uses a different ID than the reference. The recognized set follows CommonMark's relaxed rules but isn't a full parser.
- Does this fetch the URLs?
- No — it only extracts what's in the text. To verify links are alive, pipe the output into a link-checker (`lychee`, `markdown-link-check`, your favorite Node tool).
- What about Markdown inside code blocks?
- The parser doesn't skip fenced code blocks, so `[example](https://x)` inside ``` ``` ``` will still be picked up. If that's a problem for your input, strip code blocks first with `sed` or a Markdown AST tool.
Related tools
Email & URL Extractor
Pull every email address or URL out of a block of text, in your browser.
Markdown Table to CSV Converter
Convert a GitHub-flavored Markdown table into CSV, TSV or semicolon-separated rows, in your browser.
Markdown → HTML Converter
Convert Markdown to clean HTML — copy the source for emails, CMS pages, or anywhere a rendered preview isn't enough.
Markdown → Plain Text
Strip all Markdown formatting and keep readable plain text — useful for previews, summaries, email, character counts.
Markdown Table Generator
Paste CSV, TSV, or pipe-delimited data and get a properly aligned GitHub-flavored Markdown table.
Excel (XLSX) to CSV, JSON & Markdown
Open an .xlsx workbook in the browser and export any sheet as CSV, JSON or a Markdown table — the file never leaves your device.