AZ Tools

Extrator de Links Markdown

Texto

Parseia as formas comuns de link Markdown — `[text](url 'title')`, `![alt](src)`, estilo referência `[text][id]` com `[id]: url 'title'`, e autolinks `<https://…>` — e retorna cada um como linha `{type, text, url, title}`. Útil pra inventariar links externos pra auditoria SEO, construir um sitemap a partir de posts de blog, checar URLs mortas em pasta de docs, ou extrair todas as imagens de um README antes de migrar pra novo CDN.

TipoTextoURLTítulo
imagemalt texthttps://example.com/cat.pngCute cat
linka regular linkhttps://example.comExample homepage
linkdocshttps://docs.example.com
linkhelphttps://help.example.comHelp center
linkhttps://example.orghttps://example.org

Saída (5 itens)

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,

Links de referência resolvem contra definições `[id]: url` no mesmo documento. URLs nuas sem `<>` são puladas.

Como usar

  1. Cole um documento ou seção Markdown.
  2. Alterne se imagens (`![…](…)`) são incluídas.
  3. Escolha CSV, JSON ou lista Markdown como saída; copie e alimente sua ferramenta downstream.

Perguntas frequentes

Quais sintaxes de link são reconhecidas?
Inline `[text](url)` com `"title"` ou `'title'` opcional; referência `[text][id]` resolvida via definições `[id]: url "title"`; shortcut `[text][]`; equivalentes imagem com prefixo `!`; e autolinks estilo HTML `<https://…>`. URLs nuas sem `<>` são puladas intencionalmente porque são ambíguas no CommonMark.
Por que um link falta na saída?
Razões comuns: a URL abrange várias linhas (Markdown não permite), há espaço entre `]` e `(`, ou é um link de referência cuja definição usa ID diferente. O conjunto reconhecido segue as regras relaxadas do CommonMark mas não é um parser completo.
Isso busca as URLs?
Não — só extrai o que está no texto. Pra verificar que os links estão vivos, passe a saída por um link-checker (`lychee`, `markdown-link-check`, sua ferramenta Node favorita).
E Markdown dentro de blocos de código?
O parser não pula blocos de código com cercas, então `[example](https://x)` dentro de ``` ``` ``` ainda é capturado. Se for problema pro seu input, tire os blocos de código primeiro com `sed` ou ferramenta AST Markdown.

Ferramentas relacionadas