Lo slug è la parte leggibile alla fine di un indirizzo web — il my-first-post in example.com/blog/my-first-post. È la parte che una persona può leggere prima di decidere se cliccare, e quella che un motore di ricerca analizza come breve descrizione del contenuto della pagina, motivo per cui merita più attenzione di un ID del database o di una data. Questo generatore gratuito trasforma qualsiasi testo in uno slug: incolla un titolo in "Testo da convertire", premi "Genera", e il risultato appare con un pulsante di copia accanto. Le impostazioni predefinite corrispondono a ciò che la maggior parte dei siti desidera — minuscole, trattini tra le parole, rimozione delle parole vuote comuni e traslitterazione delle lettere non latine — così da ottenere uno slug utilizzabile con un solo clic, ma ognuna di queste decisioni è un'opzione che puoi modificare liberamente.
Tutto avviene sul tuo dispositivo. La pagina carica un piccolo motore JavaScript e lo esegue localmente: i tuoi titoli non vengono mai caricati né registrati, e lo strumento continua a funzionare anche se la connessione è disattivata. Questo è anche il motivo per cui il risultato si aggiorna nell'istante in cui cambi un'impostazione. L'ordine delle operazioni merita di essere precisato, perché è ciò che rende prevedibile il risultato: un link incollato viene prima ridotto al suo ultimo segmento, poi il testo viene convertito in minuscolo, le parole vuote vengono scartate, i caratteri non latini vengono traslitterati, i numeri e i caratteri speciali vengono rimossi se lo hai richiesto, ciò che rimane viene unito con il tuo separatore, il risultato viene troncato alla lunghezza massima e infine a un duplicato viene aggiunto un suffisso numerico. "Testo da convertire" accetta fino a 500.000 caratteri in una volta sola, il che equivale a qualche migliaio di titoli di articoli.
Una riga in entrata, uno slug in uscita. Incolla un intero elenco di titoli e ogni riga diventerà il proprio slug numerato, con il titolo da cui proviene mostrato sopra in grigio, in modo che in un blocco di cinquanta tu possa ancora distinguere a quale intestazione appartiene ogni slug. Un elenco già presente in un file non deve passare dagli appunti: "Carica da file", il pulsante accanto alla casella di input, apre un file di testo normale — .txt, .csv, .md, .json e simili — e inserisce il suo contenuto nel campo. Il tuo browser legge quel file esattamente come legge ciò che digiti, e non viene caricato da nessuna parte. "Dividi l'input per" decide come viene tagliato l'elenco. L'impostazione "Automatico" è predefinita: un'interruzione di riga separa sempre gli elementi, mentre una virgola li separa solo quando l'input è una singola riga le cui parti sembrano tutte valori indipendenti — in questo modo "prezzo 3,5 EUR" e "Capitolo 5: risultati, conclusioni" rimangono integri invece di frammentarsi. "Nuova riga", "Virgola" e "Spazio" forzano la scelta quando conosci già la struttura dei tuoi dati. "Formato del risultato" decide come viene restituito un blocco quando lo copi — uno per riga, separati da spazi o separati da virgole — e sia "Copia tutto" che "Salva su file" seguono questa preferenza. La "Cronologia" conserva i tuoi ultimi 10 blocchi nel tuo browser, quindi un elenco che hai convertito un'ora fa è ancora lì.
Il testo non latino è la parte che la maggior parte dei generatori di slug gestisce in modo approssimativo, e pochissimi risolvono esattamente. Un URL è più sicuro nel formato ASCII di base, quindi le lettere cirilliche, greche, arabe, cinesi e quelle europee accentate devono essere convertite, e l'unica vera domanda è secondo quale regola. Questa pagina lo risolve in due livelli. Il livello generale copre qualsiasi alfabeto: una libreria di traslitterazione che offre una risposta ASCII sensata per quasi tutti i caratteri che puoi digitare, ed è ciò che "Traslittera da" fa quando è impostato su "Automatico (qualsiasi lingua)". Il livello specifico è un insieme di tabelle costruite a mano per le lingue in cui la risposta generica non coincide con quella effettivamente usata nel paese; il menu "Traslittera da" indica quali lingue dispongono oggi di una tabella, e l'elenco cresce man mano che lo strumento raggiunge nuove lingue che ne necessitano. Scegliendone una, la sua tabella viene caricata in una griglia modificabile sotto "Regole di traslitterazione", dove ogni lettera è un campo di testo che puoi cambiare, e "Ripristina le regole" riporta tutto alle condizioni standard. La tabella ucraina segue la Risoluzione del Consiglio dei Ministri n. 55 del 2010, lo standard stampato sui passaporti ucraini, compresi quei dettagli facili da sbagliare: зг diventa zgh anziché zh per rimanere distinto da ж; le lettere є, ї, й, ю e я assumono una forma all'inizio di una parola e un'altra all'interno; e l'apostrofo e il segno debole vengono rimossi senza iniziare una nuova parola, così Знам'янка diventa znamianka e non znamyanka. Il tedesco usa come impostazione predefinita le forme estese ä → ae, ö → oe, ü → ue che gli indirizzi tedeschi effettivamente adoperano, con una semplice variante ä → a se lo preferisci.
"Rimuovi le parole vuote" è attivo per impostazione predefinita. Scarta quelle piccole parole di collegamento — il, la, e, di, per — che allungano uno slug senza aggiungervi significato. L'elenco sotto "Parole vuote" è completamente modificabile e arriva già compilato: un elenco in inglese più un elenco per la lingua della pagina in cui ti trovi, per cui la pagina italiana conosce il, lo, la, i, gli e le. Aggiungi le tue parole personali, elimina quelle che vuoi mantenere o disattiva del tutto la funzione, nel qual caso il campo si ingrigirà invece di fingere di avere ancora rilevanza. Due note sincere al riguardo. Rimuovere le parole vuote è un piccolo guadagno in termini di ordine, piuttosto che una leva per il posizionamento: ottieni un indirizzo più corto e pulito, non un posto migliore nelle ricerche. E se capita che ogni singola parola di un titolo sia presente nell'elenco, il risultato onesto è il nulla assoluto, per cui lo strumento te lo farà sapere invece di consegnarti una casella vuota.
Il resto delle opzioni definisce la forma. "Separatore nello slug" sceglie cosa va inserito tra le parole, e l'impostazione predefinita del trattino non è una questione di gusto: Google legge un trattino come separatore di parole e un trattino basso come elemento di unione, quindi my_first_post raggiunge un crawler come un'unica parola lunga, mentre my-first-post ci arriva come tre parole separate. Il "Trattino basso (_)" è presente per i sistemi che lo pretendono. L'opzione "Minuscole" è attiva perché la maggior parte dei server considera gli indirizzi sensibili alle maiuscole, e usare un mix di maiuscole e minuscole è un modo semplice per ritrovarsi con due URL per una singola pagina. "Rimuovi i caratteri speciali" scarta tutto ciò che non è una lettera, un numero, uno spazio, un trattino o un trattino basso, ed è ciò che tiene fuori da un indirizzo la punteggiatura, le virgolette e le emoji — le emoji in particolare vengono rimosse prima della traslitterazione affinché un razzo non si trasformi nella parola rocket. "Rimuovi i numeri" è disattivato, perché un numero in un titolo di solito fa parte del titolo stesso. "Lunghezza max" va da 10 a 200 con un valore predefinito di 80; quando uno slug supera quella lunghezza il motore lo taglia all'ultima parola intera che vi rientra, piuttosto che interromperlo a metà. Il numero accanto a ciascun risultato è la sua lunghezza in caratteri, e diventa rosso oltre i 60 — non un limite rigido, ma il punto in cui uno slug inizia a essere troncato nei risultati di ricerca e diventa scomodo da incollare in un messaggio.
Esistono altri due interruttori che servono a riportare una conversione massiva alla praticità di un solo clic. "Slug univoci" rileva il caso in cui due titoli diversi si riducono allo stesso slug — "Top 10 consigli" e "Top-10 consigli" diventano entrambi top-10-consigli — e assegna al secondo un -2, al terzo un -3, accorciando preventivamente la base se il suffisso spingesse lo slug oltre la lunghezza massima. Due pagine allo stesso indirizzo rappresentano un problema che costa molto meno individuare in questo elenco rispetto al tuo CMS. "Prendi lo slug da un URL incollato" funziona nella direzione opposta: incolla un link completo e lo strumento estrarrà l'ultima parte del percorso, scarterà la stringa di query e qualsiasi estensione .html o .php, e decodificherà la codifica percentuale, in modo che un indirizzo Wikipedia che termina con %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 ritorni come lviv al posto di una sequenza di cifre esadecimali. Questa opzione si attiva solo quando l'intera riga è un link, di conseguenza un URL citato all'interno di una frase viene lasciato dov'è.
Perché scegliere questo generatore di slug?
- Solo nel browser: i tuoi titoli non vengono mai caricati e la pagina continua a funzionare offline
- Conversione in blocco da un incolla o da un file di testo, con il titolo di origine sopra ogni slug
- Veri standard di traslitterazione per ogni lingua, non una sola tabella generica per tutte
- L'ucraino segue la Risoluzione n. 55 del 2010 — l'ortografia adoperata nei passaporti
- Ogni regola modificabile lettera per lettera, con un ripristino in un clic
- Suffissi automatici -2 e -3 per non avere mai due slug identici in un gruppo
- Incolla un link ed estrai lo slug, con la codifica percentuale già decodificata
- Un elenco modificabile di parole vuote che arriva già compilato per la tua lingua
- Troncamento sicuro a una parola intera, con il conteggio dei caratteri a fianco di ogni risultato
- Gratuito e illimitato: nessuna registrazione, nessuna quota, niente salvato sui nostri server
Gli slug sono necessari ovunque una pagina debba riportare un indirizzo leggibile. Un blog o un sito di notizie trasforma ogni titolo in uno slug, che è esattamente il caso per cui questo strumento è stato concepito: incolli i titoli della settimana, ottieni gli URL della settimana. Un negozio online fa lo stesso per i nomi dei prodotti e delle categorie, di solito in blocco dopo un'importazione, e molto spesso in una lingua il cui alfabeto non può figurare nell'indirizzo. La documentazione e le basi di conoscenza costruiscono ancore e nomi di file allo stesso modo. Al di là degli indirizzi web, questa stessa stringa pulita è ciò che ti serve per il nome di un file che non darà errori su un altro sistema operativo, per una chiave di database che una persona possa leggere in un file di log, per il nome di un branch, per il nome di un'immagine in un catalogo multimediale o per l'identificatore di una sezione in un generatore di siti statici. Qualsiasi punto in cui un nome leggibile da esseri umani debba sopravvivere all'inserimento in un campo leggibile da macchine è un punto in cui serve uno slug.
Vale la pena conoscere alcuni limiti prima di fare totale affidamento sullo strumento. Si tratta di un generatore, non di un validatore: non controllerà se uno slug è già occupato sul tuo sito, perché non ha idea di cosa contenga il tuo sito — l'univocità che garantisce è circoscritta al gruppo di titoli che hai davanti. Le reindirizzazioni (redirect) sono altrettanto una tua responsabilità; cambiare lo slug di una pagina già pubblicata interrompe il suo vecchio indirizzo, e questa è una decisione che spetta al tuo CMS piuttosto che a questo strumento. L'opzione "Salva su file" scrive semplice testo normale, non CSV né JSON. La divisione automatica delle righe compie una stima sulle virgole che risulta corretta in quasi tutti i casi, ma non nella loro totalità, ed è esattamente il motivo per cui "Dividi l'input per" ti permette di annullarla. Inoltre, la traslitterazione è una convenzione più che una traduzione — München diventa muenchen, non Munich — per cui quando una pagina possiede un nome affermato nella lingua di destinazione, quel nome costituirà sempre uno slug migliore rispetto a qualsiasi conversione automatica dell'originale.