README-Badge-Markdown mit Alternativtext erstellen
Erstellen Sie aus Beschriftung, Meldung und Farbe ein sofort einsetzbares README-Badge, ohne sich die Pfadsyntax von Shields merken zu müssen.
Im Browser ausführen – kostenlos
Der Generator gibt das vollständige Markdown, die zugrunde liegende Bild-URL und den lesbaren Alternativtext als getrennte Felder zurück. Leerzeichen, Bindestriche, Unterstriche, Satzzeichen und für Markdown relevante eckige Klammern werden sicher verarbeitet. Dadurch bleibt die Struktur auch dann korrekt, wenn Beschriftungen echte Build-Aufträge oder Veröffentlichungskanäle bezeichnen. Nutzen Sie das Browserwerkzeug für ein einzelnes Badge oder rufen Sie die deterministische API auf, wenn Ihre Dokumentation automatisch zusammengestellt wird.
Wählen Sie einen kurzen Text, der den Status vermittelt
Ein nützliches Badge beantwortet auf einen Blick eine kleine, konkrete Frage. Setzen Sie links die Kategorie als Beschriftung und rechts ihren aktuellen Wert als Meldung ein. Eine Beschriftung wie Build zusammen mit einer Meldung wie erfolgreich lässt sich beispielsweise schneller erfassen als ein langer Satz, der in ein Bild gedrängt wurde. Der erzeugte Alternativtext verbindet beide Werte mit einem Doppelpunkt. Menschen mit Screenreader erhalten dadurch dieselbe grundlegende Beziehung, die visuell vermittelt wird. Beide Werte sollten auch ohne Farbe verständlich sein, denn Farbe darf niemals allein einen wesentlichen Status ausdrücken. Der Generator entfernt äußere Leerzeichen, bewahrt aber die beabsichtigte Schreibweise und Großschreibung. Leere Beschriftungen und Meldungen werden abgewiesen, statt ein verwirrendes Bild mit einer leeren Hälfte zu erzeugen. Wenn das Badge eine Automatisierung darstellt, verwenden Sie über Veröffentlichungen hinweg eine stabile Wortwahl, damit Änderungen lesbar bleiben. Über das Feld alt_text kann Ihre Dokumentationskette die barrierefreie Beschreibung außerdem unabhängig vom fertigen Markdown prüfen oder wiederverwenden.
Verstehen Sie den Aufbau der Shields-Bild-URL
Statische Shields-Badges codieren Beschriftung, Meldung und Farbe im Pfad eines Bildes. Für diesen Pfad gelten besondere Trennregeln: Leerzeichen werden zu Unterstrichen, wörtliche Unterstriche werden verdoppelt und wörtliche Bindestriche ebenfalls, damit sie nicht mit den Trennzeichen zwischen Badge-Teilen verwechselt werden. Andere Satzzeichen werden für eine gültige URL prozentcodiert. Diese Fähigkeit wendet die Umformungen deterministisch an und gibt die entstandene URL zusammen mit dem Markdown zurück. Eine hexadezimale Farbe darf mit einer führenden Raute angegeben werden; diese wird entfernt, bevor die Farbe in den Pfad gelangt. Shields-Farbnamen wie brightgreen können Sie direkt verwenden. Der Dienst nimmt keinen Kontakt zu Shields auf und prüft nicht, wie ein bestimmter Farbname dargestellt wird. Er erzeugt lediglich den üblichen Bildverweis. Dadurch bleibt die Ausführung schnell, privat und für Offline-Dokumentationsläufe geeignet. Ein erfolgreicher Aufruf bestätigt also die erzeugte Syntax und nicht den Abruf des entfernten Bildes. Sie können das Ergebnis in einer Vorlage speichern und das Bild später vom README-Betrachter laden lassen.
Fügen Sie das Markdown sicher ein und automatisieren Sie es
Kopieren Sie das Feld markdown in ein README, eine Pull-Request-Vorlage, eine Paketseite oder ein anderes Markdown-Dokument, das entfernte Bilder zulässt. Das Ergebnis nutzt die vertraute Bildform mit barrierefreiem Text in eckigen Klammern und der Shields-URL in runden Klammern. Eckige Klammern und umgekehrte Schrägstriche im sichtbaren Text werden maskiert, damit vom Benutzer gelieferte Formulierungen den Alternativtext nicht vorzeitig beenden. Senden Sie in einem automatisierten Ablauf beim Rendern der Dokumentation die drei Eingabefelder und schreiben Sie den zurückgegebenen markdown-Wert an die vorgesehene Stelle. Der Algorithmus hängt weder von Uhrzeit, Zufall, Zustand noch Netzwerk ab. Gleiche Eingaben liefern deshalb stets gleiche Ausgaben, wodurch erzeugte Dateien in der Versionsverwaltung stabil bleiben. Verwalten Sie Platzierung und Reihenfolge der Badges in Ihrer eigenen Vorlage, statt hier ein vollständiges README zusammenzusetzen. Diese Fähigkeit erzeugt bewusst genau ein Badge pro Anfrage. Sie bearbeitet keine Repositorys, prüft keine Build-Ergebnisse und bestimmt keinen Status. Ihre vorgeschaltete Automatisierung liefert die Wahrheit; dieser Generator übernimmt korrekte Codierung und Darstellung.
Anwendungsfälle
Einen Platzhalter für den Build-Status hinzufügen
Erzeugen Sie einheitliches Markdown für eine README-Vorlage, bevor das Continuous-Integration-System die aktuelle Meldung liefert.
Paketkompatibilität dokumentieren
Verwandeln Sie eine Laufzeitbeschriftung und eine unterstützte Version in ein kompaktes Badge mit passendem Alternativtext.
Veröffentlichungsdokumentation erzeugen
Erstellen Sie deterministische Badge-Abschnitte in einem Dokumentationslauf, ohne eigene Shields-Pfadregeln zu programmieren.
Häufige Fragen
Was kostet eine Anfrage?
Jede API-Anfrage kostet $0.002. Derselbe deterministische Generator kann auch im Browser ausgeführt werden.
Wird geprüft, ob das Shields-Bild verfügbar ist?
Nein. URL und Markdown werden ohne Netzwerkanfrage und ohne Abruf des Bildes erzeugt.
Kann ich eine hexadezimale Farbe verwenden?
Ja. Geben Sie einen RGB-Hexadezimalwert mit oder ohne führende Raute an; der erzeugte Pfad lässt die Raute weg.
Warum werden Bindestriche und Unterstriche in der URL verdoppelt?
Shields verdoppelt sie, um wörtliche Zeichen von Pfadtrennzeichen und codierten Leerzeichen zu unterscheiden.
Was geschieht bei einer leeren Beschriftung oder Meldung?
Die Anfrage endet mit einem Fehler für ungültige Eingaben, da beide Teile für ein nützliches und barrierefreies Badge erforderlich sind.
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/dev/readme-badge-markdown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"build","message":"passing","color":"brightgreen"}'const res = await fetch("https://api.kit.forhosting.com/dev/readme-badge-markdown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"label": "build",
"message": "passing",
"color": "brightgreen"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/readme-badge-markdown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"label": "build",
"message": "passing",
"color": "brightgreen"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/readme-badge-markdown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"label":"build","message":"passing","color":"brightgreen"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"label":"build","message":"passing","color":"brightgreen"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/readme-badge-markdown", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"label": "build",
"message": "passing",
"color": "brightgreen"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.readme_badge_markdown",
"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.
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. |