Extrahieren Sie Links mit Text und URL aus Markdown
Erhalten Sie alle Links eines Markdown-Textes als saubere Liste aus Linktext und Adresse: Das Beispiel ergibt 4 Links, von setup guide bis Home, und Referenzlinks wie [support][] werden zu ihrer echten Adresse aufgelöst. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Wandeln Sie Markdown-Quelltext in eine übersichtliche Linkliste um, ohne das Dokument zu rendern oder einen eigenen Parser zu entwickeln. Das Werkzeug erkennt Inline- und Referenzlinks, löst Definitionen auf und gibt sichtbaren Text sowie Ziel-URL in der ursprünglichen Reihenfolge zurück. Bilder und linkähnliche Beispiele in Code werden ausgelassen; Dokumente ohne Links liefern eine leere Liste. Die Verarbeitung ist deterministisch, benötigt keinen Netzwerkzugriff und eignet sich für README-Dateien, Dokumentationsseiten, Änderungsprotokolle, Issue-Vorlagen und erzeugte Markdown-Dateien.
Ermitteln Sie Linktexte und Ziele mit einer Anfrage
Fügen Sie den vollständigen Markdown-Quelltext in das Feld <code>text</code> ein. Das Ergebnis enthält ein Array <code>links</code>; jeder Eintrag besitzt <code>text</code> für die sichtbare Beschriftung und <code>url</code> für das Ziel. Inline-Links wie <code>[Anleitung](https://example.com/setup)</code> werden direkt zurückgegeben.
Die Lesereihenfolge bleibt erhalten, sodass Prüfungen, Migrationen und Berichte keine weitere Sortierung benötigen. Wiederholte Links bleiben bestehen, weil jedes Vorkommen für eine Navigationsanalyse relevant sein kann. Enthält das Markdown keine unterstützten Links, ist die Anfrage dennoch erfolgreich und liefert ein leeres Array.
Ein leeres Markdown-Dokument wird genauso behandelt und nicht fälschlich als Fehler eingestuft.
Lösen Sie Referenzen auf, ohne Codebeispiele zu erfassen
Markdown-Referenzen können vollständige, eingeklappte oder verkürzte Bezeichner verwenden. Unterstützt werden <code>[Text][id]</code>, <code>[Text][]</code> und <code>[Text]</code>, sofern eine passende Definition vorhanden ist. Bei Bezeichnern wird die Groß- und Kleinschreibung ignoriert; mehrere Leerzeichen werden vereinheitlicht.
Ziele in spitzen Klammern und optionale Titel sind zulässig, doch Titel gehören nicht zur Ausgabe, da nur Text und URL verlangt sind. Mit einem Ausrufezeichen beginnende Bildsyntax wird ausgeschlossen, denn eine Bildquelle ist kein Navigationslink. Eingezäunte Codeblöcke und Inline-Code werden ebenfalls ignoriert, damit technische Beispiele das tatsächliche Inventar nicht verfälschen.
Definitionszeilen erzeugen allein keinen Eintrag. Formatierungszeichen werden aus dem sichtbaren Text entfernt, während maskierte Markdown-Satzzeichen wiederhergestellt werden.
Nutzen Sie strukturierte Links in Dokumentationsabläufen
Ein Linkinventar hilft vor einem Dokumentationsumzug, einem Domainwechsel oder der Suche nach Verweisen auf stillgelegte Dienste. Sie können jede URL an eine genehmigte Prüfphase übergeben, Ziele nach Host gruppieren oder Revisionen vergleichen, um Ergänzungen und Löschungen zu erkennen. Redaktionsteams finden unklare Beschriftungen; Entwicklungsteams erkennen wiederholte Verweise in generierten README-Dateien.
Die Eingabe ist auf eine Million Zeichen begrenzt. So bleibt eine fehlerhafte Anfrage von einem gültigen Dokument ohne Links unterscheidbar.
Anwendungsfälle
Dokumentationsziele prüfen
Erstellen Sie vor Verfügbarkeits-, Eigentums- oder Migrationsprüfungen ein geordnetes URL-Inventar.
Linkbeschriftungen untersuchen
Finden Sie unklare Formulierungen und verbessern Sie Verständlichkeit und Barrierefreiheit Ihrer Dokumentation.
Markdown-Versionen vergleichen
Extrahieren Sie Links aus zwei Versionen und erkennen Sie hinzugefügte, ersetzte oder entfernte Ziele.
Häufige Fragen
Welche Linkformen werden unterstützt?
Inline-Links sowie vollständige, eingeklappte und verkürzte Referenzen werden bei vorhandener Definition unterstützt.
Werden Markdown-Bilder einbezogen?
Nein. Bildsyntax wird ausgeschlossen, da Navigationslinks und nicht Quellen eingebetteter Ressourcen gesucht werden.
Was geschieht, wenn keine Links vorhanden sind?
Die Anfrage ist erfolgreich und gibt ein leeres Array <code>links</code> zurück.
Werden Links in Codebeispielen mitgezählt?
Nein. Codeblöcke und Inline-Code werden übersprungen, sodass die Markdown-Beispiele eines Tutorials Ihre echte Linkübersicht nicht verfälschen. Zeilen, die nur eine Referenz definieren, erscheinen ebenfalls nicht, nur tatsächliche Verwendungen.
Prüft das Werkzeug, ob die Links noch funktionieren?
Nein. Es öffnet keine Adressen, prüft keinen Status, folgt keinen Weiterleitungen und verändert Ihren Text nicht. Es liest nur, was Sie einfügen, daher liefert derselbe Text immer dieselbe geordnete Liste.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"text": "Read the [guide](https://example.com/guide) and [API docs][api].\n\n[api]: https://example.com/api"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.markdown_link_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 1000000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Ermitteln Sie Linktexte und Ziele mit einer Anfrage
Referenzen wie <code>[API][docs]</code> werden Definitionen wie <code>[docs]: https://example.com/api</code> zugeordnet, auch wenn diese später stehen.
Nutzen Sie strukturierte Links in Dokumentationsabläufen
Die Fähigkeit ruft keine URL ab, prüft keinen HTTP-Status, folgt keiner Weiterleitung und verändert das Markdown nicht. Diese Grenzen sorgen für eine schnelle, private und vorhersehbare Ausführung. Fehlt <code>text</code> oder ist der Wert keine Zeichenkette, wird <code>invalid_input</code> ausgegeben. Eine API-Anfrage kostet $0.002.
Technische Fragen
Prüft das Werkzeug, ob eine URL erreichbar ist?
Nein. Es extrahiert Ziele ohne Netzwerkzugriff, Weiterleitungen oder Prüfung des HTTP-Status.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Im Browser kann dieselbe deterministische Extraktion lokal ausgeführt werden.