Estragga i link da Markdown: testo e URL
Ottenga tutti i link di un testo Markdown come elenco pulito di testo e indirizzo: l’esempio dà 4 link, da setup guide a Home, e i link per riferimento come [support][] vengono risolti nel loro indirizzo reale. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Trasformi il sorgente Markdown in un elenco ordinato di link senza renderizzare il documento né creare un parser. Lo strumento individua link inline e di riferimento, risolve le definizioni e restituisce il testo visibile accanto all’URL di destinazione nell’ordine originale. Ignora immagini ed esempi simili a link racchiusi nel codice, mentre per i documenti privi di link restituisce un elenco vuoto. L’elaborazione è deterministica, non accede alla rete e funziona con README, pagine di documentazione, changelog, modelli di segnalazione e file Markdown generati.
Estragga testo e destinazioni con una sola richiesta
Incolli l’intero sorgente Markdown nel campo <code>text</code>. Il risultato contiene un array <code>links</code>; ogni record offre <code>text</code> per l’etichetta visibile e <code>url</code> per la destinazione. I link inline come <code>[Guida](https://example.com/setup)</code> vengono restituiti direttamente.
L’ordine di lettura rimane invariato, facilitando verifiche, migrazioni e report senza un ulteriore ordinamento. Le occorrenze duplicate sono conservate, poiché ciascun utilizzo può essere importante nell’analisi della navigazione. Se non sono presenti link supportati, la richiesta riesce con un array vuoto invece di trattare un normale documento come errore.
Anche il Markdown vuoto viene gestito nello stesso modo.
Risolva i riferimenti senza scambiare gli esempi per link
I riferimenti Markdown possono avere etichette esplicite, compresse o abbreviate. L’estrattore supporta <code>[etichetta][id]</code>, <code>[etichetta][]</code> e <code>[etichetta]</code> quando esiste una definizione corrispondente. Le etichette vengono risolte senza distinzione tra maiuscole e minuscole e gli spazi consecutivi sono normalizzati.
Sono accettate destinazioni tra parentesi angolari e titoli facoltativi, ma i titoli non vengono inclusi perché il risultato richiesto contiene soltanto testo e URL. La sintassi delle immagini, preceduta da un punto esclamativo, è esclusa: indica una risorsa e non un collegamento di navigazione. Anche i blocchi delimitati e il codice inline vengono ignorati, così gli esempi tecnici non contaminano l’inventario.
Le righe di definizione non producono record autonomi. I marcatori di formattazione sono rimossi dall’etichetta e la punteggiatura con escape viene ripristinata.
Usi link strutturati nei flussi di documentazione
Un inventario dei link è utile prima di spostare la documentazione, cambiare dominio o cercare riferimenti a servizi dismessi. Lei può inviare ogni URL a una fase di convalida autorizzata, raggruppare le destinazioni per host o confrontare revisioni per trovare aggiunte e rimozioni. I redattori possono individuare etichette vaghe, mentre gli sviluppatori possono rilevare riferimenti ripetuti nei README generati.
L’input è limitato a un milione di caratteri.
Casi d'uso
Verifichi le destinazioni della documentazione
Crei un inventario ordinato degli URL prima di controllarne disponibilità, proprietà o preparazione alla migrazione.
Esamini le etichette dei link
Individui diciture ambigue e migliori l’accessibilità e la chiarezza della documentazione.
Confronti revisioni Markdown
Estragga i link da due versioni e identifichi destinazioni aggiunte, sostituite o rimosse.
Domande frequenti
Quali forme di link sono supportate?
Sono supportati link inline e riferimenti completi, compressi o abbreviati quando esiste la relativa definizione.
Le immagini Markdown vengono incluse?
No. La sintassi delle immagini è esclusa perché vengono estratti collegamenti di navigazione, non sorgenti incorporate.
Che cosa accade se non sono presenti link?
La richiesta riesce e restituisce un array <code>links</code> vuoto.
I link dentro gli esempi di codice vengono contati?
No. I blocchi di codice e il codice in linea vengono saltati, così gli esempi Markdown di un tutorial non sporcano il suo inventario reale di link. Anche le righe che definiscono soltanto un riferimento non compaiono; solo gli usi effettivi.
Controlla se i link funzionano ancora?
No. Non apre gli indirizzi, non ne verifica lo stato, non segue i reindirizzamenti e non modifica il suo testo. Legge soltanto ciò che incolla, quindi lo stesso testo dà sempre lo stesso elenco ordinato.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev2/markdown-link-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"}'const res = await fetch("https://api.kit.forhosting.com/dev2/markdown-link-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/markdown-link-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/markdown-link-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Read the [guide](https://example.com/guide) and [API docs][api].\\n\\n[api]: https://example.com/api"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/markdown-link-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.markdown_link_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 1000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Estragga testo e destinazioni con una sola richiesta
I riferimenti come <code>[API][docs]</code> sono associati a definizioni quali <code>[docs]: https://example.com/api</code>, anche se compaiono più avanti.
Usi link strutturati nei flussi di documentazione
La capacità non visita gli URL, non controlla lo stato HTTP, non espande i reindirizzamenti e non modifica il Markdown. Questi limiti rendono l’esecuzione rapida, privata e prevedibile. Un campo <code>text</code> assente o non testuale restituisce <code>invalid_input</code>, distinguendo una richiesta errata da un documento valido senza link. Ogni richiesta API costa $0.002.
Domande tecniche
Lo strumento verifica se un URL funziona?
No. Estrae le destinazioni senza richieste di rete, reindirizzamenti o controlli dello stato HTTP.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. L’esecutore nel browser applica localmente la stessa estrazione deterministica.