Generi un indice da Markdown
Trasformi i suoi titoli in un indice con link pronto da incollare: nell’esempio Project Guide, Installation e Usage sono rientrati per livello, e il secondo Requirements riceve l’ancora requirements-1 così entrambi i link funzionano. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Trasformi un documento Markdown in un indice chiaro e collegato senza copiare i titoli o calcolare manualmente le ancore. Il generatore legge i titoli ATX scritti con cancelletti e i titoli Setext sottolineati, ignora i falsi titoli all’interno dei blocchi di codice delimitati e restituisce sia Markdown pronto da incollare sia dati strutturati. I titoli annidati ricevono il rientro corrispondente, mentre quelli ripetuti ottengono ancore distinte. Il processo è deterministico, non usa la rete e segnala chiaramente un errore quando il documento non contiene titoli.
Incolli il Markdown e ottenga una struttura pronta
Inserisca l’intero sorgente Markdown nel campo di testo. Il generatore scorre il documento nell’ordine di lettura e riconosce i titoli ATX dal livello uno al livello sei, come <code>## Installazione</code>. Riconosce anche i titoli Setext, nei quali una riga di testo è seguita da segni di uguale per il livello uno o da trattini per il livello due.
Il risultato include una stringa <code>toc</code> che Lei può incollare direttamente all’inizio di un README, di una guida, di una specifica o di un articolo della knowledge base. Ogni voce usa la normale sintassi dei collegamenti Markdown e il rientro rispecchia la differenza tra il suo livello e il titolo meno profondo trovato nel documento. In questo modo la gerarchia resta intatta anche quando un frammento inizia dal livello due.
La risposta comprende inoltre un array strutturato <code>headings</code> con livello, testo visibile e ancora generata per ogni voce, utile per realizzare una navigazione personalizzata.
Comprenda come il testo diventa un collegamento stabile
Un indice è utile soltanto quando ogni collegamento punta allo stesso identificatore di frammento prodotto per il relativo titolo. Questo generatore applica una trasformazione prevedibile in stile GitHub: converte le lettere in minuscolo, sostituisce gli spazi con trattini, elimina gran parte della punteggiatura e conserva lettere e numeri di lingue diverse dall’inglese. La formattazione Markdown inline viene rimossa dall’etichetta visibile e dall’ancora; quindi <code>Opzioni **avanzate**</code> diventa l’etichetta leggibile «Opzioni avanzate» e l’ancora <code>opzioni-avanzate</code>.
I collegamenti mantengono il testo mostrato e non l’URL di destinazione. Se lo stesso titolo ripulito compare più volte, il primo riceve l’ancora base, il secondo il suffisso <code>-1</code> e i successivi proseguono il conteggio. Le righe simili a titoli nei blocchi di codice delimitati vengono ignorate e i titoli vuoti non vengono emessi perché non offrono una navigazione utile.
Usi il risultato nei flussi di documentazione
Il flusso più semplice consiste nell’incollare la stringa <code>toc</code> sotto il titolo del documento e rigenerarla ogni volta che cambiano i titoli. Nell’automazione, richiami la capacità dopo aver assemblato la documentazione e confronti la stringa restituita con l’indice versionato. Una differenza può richiedere un aggiornamento durante la revisione senza imporre un renderer Markdown completo.
I generatori di siti statici possono invece utilizzare i record strutturati per costruire barre laterali, indici di pagina o menu per dispositivi mobili, mantenendo l’ordine e l’annidamento del sorgente. Il parser non effettua chiamate di rete, non esegue HTML incorporato e non modifica il Markdown inviato. Deriva soltanto i dati di navigazione dai titoli.
L’input è limitato a un milione di caratteri per assicurare un’elaborazione prevedibile.
Casi d'uso
Mantenga aggiornato l’indice di un README
Rigeneri la struttura collegata quando le sezioni vengono aggiunte, rinominate, riordinate o annidate durante una release.
Crei la navigazione della documentazione
Usi l’array strutturato dei titoli per creare una barra laterale o un indice senza mantenere manualmente una seconda struttura.
Controlli la documentazione nell’integrazione continua
Confronti il risultato generato con l’indice versionato e segnali la navigazione obsoleta durante la revisione del codice.
Domande frequenti
Quali stili di titolo Markdown sono supportati?
Sono supportati i titoli ATX da H1 a H6 e i titoli Setext H1 o H2. I falsi titoli nei blocchi di codice delimitati vengono ignorati.
Che cosa accade quando i nomi dei titoli si ripetono?
Il primo titolo usa l’ancora base. Quelli successivi con lo stesso testo ripulito ricevono suffissi numerici come -1 e -2.
Il generatore modifica il mio Markdown?
No. Restituisce una nuova stringa dell’indice e record strutturati; il testo sorgente non viene riscritto.
Come vengono formati i nomi delle ancore?
Nello stile di GitHub: le lettere diventano minuscole, gli spazi trattini e quasi tutta la punteggiatura viene tolta, mentre lettere e cifre di altre lingue restano. Un titolo come Advanced **options** diventa l’ancora advanced-options.
I titoli dentro i blocchi di codice vengono inclusi?
No. Le righe che sembrano titoli dentro un blocco di codice vengono ignorate, cosa importante nei tutorial su Markdown. Anche i titoli vuoti vengono saltati, e un documento senza alcun titolo dà un errore chiaro invece di un indice vuoto.
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-toc-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"# Project Guide\n\n## Installation\n\n### Requirements\n\n## Usage"}'const res = await fetch("https://api.kit.forhosting.com/dev2/markdown-toc-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "# Project Guide\n\n## Installation\n\n### Requirements\n\n## Usage"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/markdown-toc-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "# Project Guide\n\n## Installation\n\n### Requirements\n\n## Usage"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/markdown-toc-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"# Project Guide\\n\\n## Installation\\n\\n### Requirements\\n\\n## Usage"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"# Project Guide\n\n## Installation\n\n### Requirements\n\n## Usage"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/markdown-toc-generate", 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": "# Project Guide\n\n## Installation\n\n### Requirements\n\n## Usage"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.markdown_toc_generate",
"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
Usi il risultato nei flussi di documentazione
Un documento con paragrafi, elenchi, codice o tabelle, ma senza titoli validi, genera un errore <code>invalid_input</code> invece di restituire un indice vuoto.
Domande tecniche
Che cosa succede se il documento non contiene titoli?
La richiesta restituisce un errore invalid_input che segnala l’assenza di titoli Markdown.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione per browser può eseguire localmente la stessa logica deterministica.