O til em «não» não é um simples acento decorativo — marca uma nasalização que muda completamente o significado da palavra. Ao virar slug, «não» perde o til e vira «nao», uma sequência de letras que, isolada, não tem significado próprio em português, mas que ilustra bem quanta informação fonética um slug descarta silenciosamente ao achatar acentos e til para o alfabeto ASCII básico.
O que a conversão para slug faz
- Converte todas as letras para minúsculas.
- Substitui espaços e pontuação por hífens.
- Translitera ou remove caracteres fora do latim básico (como cirílico, cedilha, til ou letras acentuadas).
- Reduz hífens repetidos e remove hífens do início e do fim.
Por exemplo, o título "Olá, Mundo! Como vai?" vira algo como ola-mundo-como-vai.
Por que apenas URL-encode não basta
O percent-encoding (por exemplo, %C3%A3 para "ã") é tecnicamente válido numa URL, mas ilegível para uma pessoa e parece pouco confiável na barra de endereços ou ao compartilhar um link. Um slug resolve justamente o problema de legibilidade, não só a validade técnica.
Para que serve
- Gerar automaticamente a URL de um post de blog a partir do seu título em português.
- Criar um identificador legível a partir do nome de um produto para uma loja online.
- Formar um nome de arquivo ou classe CSS a partir de um texto qualquer, evitando caracteres não permitidos.
Colisões: quando títulos diferentes geram o mesmo slug
Os títulos "Olá, Mundo!" e "olá mundo" viram, após a normalização (minúsculas, remoção de pontuação), o mesmo slug ola-mundo, embora os textos originais sejam diferentes. Se o slug for usado como identificador único (por exemplo, na URL de um artigo), essa colisão precisa ser resolvida à parte — tipicamente adicionando um sufixo numérico ou um ID ao duplicado.