Generi Markdown per badge README con testo alternativo
Crei un badge README pronto da incollare partendo da un’etichetta, un messaggio e un colore, senza dover ricordare la sintassi dei percorsi Shields.
Esegui gratis nel browser
Il generatore restituisce separatamente il Markdown completo, l’URL dell’immagine e il testo alternativo leggibile. Gestisce in sicurezza spazi, trattini, caratteri di sottolineatura, punteggiatura e parentesi quadre significative per Markdown, affinché il risultato rimanga strutturalmente corretto anche con nomi reali di attività di compilazione o canali di rilascio. Usi lo strumento nel browser per creare rapidamente un badge oppure richiami l’API deterministica quando la documentazione viene assemblata automaticamente.
Scelga un testo conciso che comunichi lo stato
Un badge utile risponde a colpo d’occhio a una domanda piccola e precisa. Inserisca a sinistra la categoria come etichetta e a destra il suo valore attuale come messaggio. Per esempio, un’etichetta come compilazione associata a un messaggio come riuscita è più facile da leggere di una lunga frase compressa in un’immagine. Il testo alternativo generato unisce i due valori con i due punti, così chi usa un lettore di schermo riceve la stessa relazione essenziale comunicata visivamente. Entrambi i valori dovrebbero mantenere significato anche senza colore, perché il colore non deve mai essere l’unico mezzo per esprimere uno stato importante. Il generatore elimina gli spazi esterni, ma conserva le parole e le maiuscole scelte. Etichette e messaggi vuoti vengono rifiutati per evitare immagini ambigue con una metà bianca. Se il badge rappresenta un’automazione, mantenga un vocabolario stabile fra le versioni, così le differenze restano leggibili. Il campo alt_text consente inoltre alla procedura documentale di controllare o riutilizzare la descrizione accessibile indipendentemente dalla stringa Markdown finale.
Comprenda come viene formato l’URL dell’immagine Shields
I badge statici Shields codificano etichetta, messaggio e colore nel percorso di un’immagine. Il percorso segue regole speciali per i separatori: gli spazi diventano caratteri di sottolineatura, quelli letterali vengono raddoppiati e anche i trattini letterali vengono raddoppiati, affinché non siano confusi con le divisioni fra le parti. Gli altri segni ricevono una codifica percentuale per ottenere un URL valido. Questa capacità applica le trasformazioni in modo deterministico e restituisce l’URL insieme al Markdown. Lei può fornire un colore esadecimale con un cancelletto iniziale, che viene rimosso prima di inserire il valore nel percorso; può inoltre usare direttamente nomi Shields come brightgreen. Il servizio non contatta Shields e non verifica come verrà visualizzato un determinato nome di colore. Genera soltanto il riferimento convenzionale all’immagine, mantenendo l’esecuzione rapida, privata e adatta alle compilazioni documentali offline. Un risultato corretto conferma pertanto la sintassi prodotta, non il download dell’immagine remota. La risposta può essere conservata in un modello, lasciando al lettore finale del README il normale caricamento dell’immagine.
Inserisca e automatizzi il Markdown in modo sicuro
Copi il campo markdown in un README, in un modello di pull request, nella pagina di un pacchetto o in qualsiasi documento Markdown che accetti immagini remote. Il risultato usa la consueta forma dell’immagine, con il testo accessibile fra parentesi quadre e l’URL Shields fra parentesi tonde. Le parentesi quadre e le barre inverse nel testo visibile vengono sottoposte a escape, così una frase fornita dall’utente non chiude anticipatamente la sezione del testo alternativo. In un flusso automatico, invii i tre campi di ingresso ogni volta che genera la documentazione e scriva il valore markdown restituito nella posizione prevista. L’algoritmo non dipende da orologio, casualità, stato o rete: ingressi identici producono sempre uscite identiche e i file generati rimangono stabili nel controllo di versione. Gestisca posizione e ordine dei badge nel Suo modello invece di concatenare qui un intero README. Questa capacità crea intenzionalmente un solo elemento per richiesta e non modifica repository, non controlla risultati di compilazione e non decide quale stato mostrare. L’automazione precedente fornisce il dato corretto; il generatore cura codifica e presentazione.
Casi d'uso
Aggiungere un segnaposto per lo stato della compilazione
Crei Markdown coerente per un modello README prima che il sistema di integrazione continua fornisca il messaggio corrente.
Documentare la compatibilità di un pacchetto
Trasformi un’etichetta di ambiente e una versione supportata in un badge compatto con testo alternativo corrispondente.
Generare documentazione per le versioni
Produca frammenti deterministici in una compilazione documentale senza programmare regole personalizzate di escape per Shields.
Domande frequenti
Quanto costa una richiesta?
Ogni richiesta API costa $0.002. Lo stesso generatore deterministico può funzionare anche nel browser.
Viene verificata la disponibilità dell’immagine Shields?
No. L’URL e il Markdown vengono generati senza richieste di rete né download dell’immagine.
Posso usare un colore esadecimale?
Sì. Fornisca un valore esadecimale RGB con o senza cancelletto iniziale; il percorso generato ometterà tale segno.
Perché trattini e caratteri di sottolineatura sono raddoppiati nell’URL?
Shields raddoppia questi caratteri per distinguere i segni letterali dai separatori del percorso e dagli spazi codificati.
Che cosa accade se l’etichetta o il messaggio sono vuoti?
La richiesta non riesce e restituisce un errore di ingresso non valido, perché entrambe le parti servono per un badge utile e accessibile.
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/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)Esempio di richiesta
{
"label": "build",
"message": "passing",
"color": "brightgreen"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.readme_badge_markdown",
"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.
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. |