Titelliste in eindeutige URL-Slugs umwandeln
Dieses Werkzeug wandelt eine geordnete Liste von Seiten-, Artikel-, Produkt- oder anderen Überschriften in einer deterministischen Anfrage in URL-taugliche Slugs um.
Im Browser ausführen – kostenlos
Es schreibt Text klein, entfernt gängige lateinische Akzente, ersetzt Leerzeichen und Satzzeichen durch Bindestriche und behält Ziffern bei. Erzeugen zwei Titel dieselbe Basis, erhält das spätere Ergebnis ein aufsteigendes Zahlensuffix. Die ursprüngliche Reihenfolge bleibt erhalten, sodass Sie die Ausgabe zuverlässig einem Import, einer redaktionellen Warteschlange, einer Migration oder einem Veröffentlichungsablauf zuordnen können.
Erstellen Sie für jeden Titel einen sauberen Slug
Übermitteln Sie die Titel genau in der Reihenfolge, in der Sie die Ergebnisse benötigen. Jeder Titel wird zu einem kompakten URL-Bestandteil: Großbuchstaben werden kleingeschrieben, gängige lateinische diakritische Zeichen entfernt und jede Folge aus Leer- oder Satzzeichen durch einen einzigen Bindestrich ersetzt. Trennzeichen am Anfang und Ende entfallen; Ziffern bleiben für Versionen, Kapitel, Jahre und Ausgaben erhalten. Die Verarbeitung verlangt echte Zeichenketten und wandelt Objekte, Wahrheitswerte oder Zahlen nicht stillschweigend um, denn daraus könnten glaubwürdig wirkende, aber falsche Routen entstehen. Nach der Normalisierung muss jeder Titel mindestens einen ASCII-Buchstaben oder eine Ziffer ergeben. Die Antwort enthält das Slug-Array in derselben Reihenfolge sowie die Anzahl, sodass Sie jede Zuordnung prüfen können. Externe Informationen werden weder abgerufen noch gespeichert, umgeordnet oder abgeleitet; dieselbe Eingabe liefert stets dieselbe Ausgabe.
Lösen Sie Kollisionen ohne Änderung der Reihenfolge
Unterschiedliche Titel können denselben Slug ergeben, weil Großschreibung, Akzente, wiederholte Leerzeichen und Satzzeichen bei der Normalisierung verschwinden. Das erste Vorkommen behält die Basis; spätere erhalten -2, -3 und weitere aufsteigende Suffixe. Die Eindeutigkeit wird gegen sämtliche bereits ausgegebenen Slugs geprüft und nicht nur anhand identischer Quelltexte gezählt. Das ist wichtig, wenn ein natürlicher Titel bereits mit einer Zahl endet oder mehrere Schreibweisen zusammenfallen. Die Verarbeitung von links nach rechts verleiht der Eingabereihenfolge klare Priorität und macht erneute Läufe reproduzierbar. Bei redaktioneller Priorität setzen Sie den Titel, der ohne Suffix bleiben soll, an die erste Stelle. Das Werkzeug durchsucht weder Ihre Website noch Ihre Datenbank und kennt veröffentlichte Routen daher nicht. Nehmen Sie relevante vorhandene Titel auf oder gleichen Sie die Ausgabe mit Ihrem eigenen Verzeichnis reservierter Slugs ab, bevor Sie Routen speichern.
Nutzen Sie das Ergebnis sicher im Veröffentlichungsablauf
Die Stapelausgabe eignet sich besonders für die Schnittstelle zwischen redaktionellen Daten und einem Inhaltsverwaltungssystem. Bewahren Sie jeden Slug bei seiner Quellzeile auf und sortieren Sie das Array nicht separat; durch die Positionszuordnung kann ein Tabellenimport, Migrationsskript oder Generator für statische Websites die richtige Route vergeben. Prüfen Sie die gesamte Anfrage, bevor Sie Änderungen dauerhaft speichern, denn ein ungültiger Titel weist den vollständigen Vorgang zurück und verhindert eine teilweise Migration. Der Algorithmus erzeugt bewusst konservative ASCII-URL-Bestandteile. Er transliteriert nicht jedes Schriftsystem, wählt keine Suchbegriffe, kürzt keine Titel und garantiert keine Eindeutigkeit gegenüber ausgelassenen Datensätzen. In automatisierten Abläufen kostet eine Anfrage $0.002; dieselbe deterministische Logik kann im Browser getestet werden. Archivieren Sie Titel und Slugs gemeinsam und ändern Sie etablierte öffentliche Routen nur mit einer vorbereiteten Weiterleitungsstrategie.
Anwendungsfälle
Bereiten Sie einen CMS-Import vor
Erzeugen Sie vor dem stapelweisen Einfügen von Artikeln oder Seiten für jeden geordneten Titel einen eindeutigen Routenbestandteil.
Migrieren Sie ein Inhaltsarchiv
Normalisieren Sie alte Überschriften und erkennen Sie Kollisionssuffixe, ohne die Zuordnung zum Quellexport zu verlieren.
Erstellen Sie Routen für statische Websites
Erzeugen Sie in einem wiederholbaren Prozess deterministische Dateinamen oder Routensegmente für eine Sammlung.
Häufige Fragen
Was geschieht, wenn zwei Titel denselben Slug erzeugen?
Der erste behält die Basis; spätere Kollisionen erhalten aufsteigende Suffixe wie -2, -3 und -4.
Bleibt die Eingabereihenfolge erhalten?
Ja. Jeder Slug steht an derselben Position wie sein Quelltitel; die Anzahl nennt die erzeugten Ergebnisse.
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 je Anfrage, unabhängig von möglichen Titelkollisionen.
Werden bereits verwendete Slugs meiner Website geprüft?
Nein. Eindeutigkeit gilt nur innerhalb der übermittelten Liste; Website, CMS und Datenbank werden nicht aufgerufen.
Warum wurde ein Titel abgelehnt?
Jedes Element muss eine Zeichenkette sein und nach der Normalisierung mindestens einen ASCII-Buchstaben oder eine Ziffer ergeben.
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/data/slugify-batch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"titles":["Getting Started","Getting Started","API Reference"]}'const res = await fetch("https://api.kit.forhosting.com/data/slugify-batch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"titles": [
"Getting Started",
"Getting Started",
"API Reference"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/slugify-batch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"titles": [
"Getting Started",
"Getting Started",
"API Reference"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/slugify-batch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"titles":["Getting Started","Getting Started","API Reference"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"titles":["Getting Started","Getting Started","API Reference"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/slugify-batch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"titles": [
"Getting Started",
"Getting Started",
"API Reference"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.slugify_batch",
"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_items | 10000 |
max_chars_per_title | 10000 |
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. |