Text Slugify (URL)
Profesjonalne narzędzie do slugowania tekstu, które normalizuje tekst na slugi przyjazne dla URL, obsługuje konwersję na małe litery, własne separatory oraz usuwanie angielskich słów stopowych. Wykorzystuje normalizację Unicode do obsługi znaków większości języków, co sprawia, że generowane slugi są zgodne z najlepszymi praktykami SEO. Idealne do adresów URL wpisów na blogach, nazywania plików, identyfikatorów w bazach danych oraz innych zastosowań. Cały proces odbywa się lokalnie w celu ochrony Twojej prywatności – nie wymaga rejestracji. Dostarcza szczegółowe wytyczne dotyczące użycia oraz zalecenia dotyczące najlepszych praktyk, aby pomóc Ci generować wysokiej jakości slugi.
Dlaczego warto używać Slugify?
🔍 Optymalizacja SEO
Słowa kluczowe w adresach URL pomagają wyszukiwarkom zrozumieć zawartość strony i poprawiają jej pozycję w wynikach wyszukiwania. Na przykład example.com/blog/how-to-learn-javascript jest bardziej efektywne niż example.com/blog/123.
👁️ Czytelność i udostępnianie
Użytkownicy mogą od razu zrozumieć zawartość z adresu URL. Slugi są bardziej udostępnialne w mediach społecznościowych oraz łatwiejsze do zapamiętania lub wpisania ręcznie.
💻 Zgodność systemowa
Zapobiega błędom spowodowanym znakami specjalnymi w nazwach plików lub adresach URL. Zapewnia zgodność między platformami (Windows/Linux/macOS) i eliminuje problemy z kodowaniem.
🗄️ Przyjazność dla baz danych
Może być używane jako unikalny identyfikator (np. nazwa użytkownika, tag), aby zmniejszyć ryzyko ataków SQL injection oraz poprawić wydajność indeksowania i zapytań.
Co to jest Slugify?
Slug to skrócona, ustandaryzowana wersja tekstu używana jako adres URL, nazwa pliku lub identyfikator. Typowe przetwarzanie obejmuje ujednolicenie wielkości liter, usunięcie interpunkcji oraz łączenie słów za pomocą separatorów.
- Priorytet ASCII: Usuń akcenty i symbole, zachowaj tylko znaki alfanumeryczne i spacje
- Kompatybilność Unicode: Normalizuj znaki większości języków za pomocą NFKD przed przetwarzaniem
- Bezpieczny dla URL: Wynik zawiera tylko litery, cyfry oraz separatory – gotowy do bezpośredniego użycia w ścieżkach
Często zadawane pytania
P: Jak obsługiwane są znaki chińskie?
O: Domyślnie znaki diakrytyczne są usuwane, a litery pinyin są zachowywane. Czysty tekst chiński może stać się pusty; zaleca się ręczne przekonwertowanie go na pinyin przed slugowaniem lub użycie narzędzia do konwersji pinyinu chińskiego.
P: Dlaczego mój wynik jest pusty?
O: Twój dane wejściowe mogą składać się wyłącznie z znaków interpunkcyjnych, symboli lub spacji, lub wszystkie słowa mogły zostać usunięte przez filtrowanie słów nieznaczących. Spróbuj wyłączyć opcję słów nieznaczących lub dostosować swoje dane wejściowe.
P: Czy powinienem używać - czy _ jako separator?
O: Dla SEO użyj - (pauzy), ponieważ Google traktuje ją jako spację; _ (podkreślenie) jest traktowane jako symbol łączenia, co utrudnia oddzielanie słów. W przypadku nazw plików oba są dopuszczalne.
P: Czy istnieje limit długości slugi?
O: Nie ma technicznego limitu, ale zaleca się utrzymanie długości slugi poniżej 50 znaków, aby lepiej prezentował się w adresach URL i dla SEO. Zbyt długie slugi mogą zostać obcięte przez wyszukiwarki.
Najlepsze praktyki
Zalecane praktyki
- ✓ Utrzymaj krótko (zalecane < 50 znaków)
- ✓ Unikaj znaków specjalnych; używaj wyłącznie liter, cyfr i separatorów
- ✓ Używaj małych liter, aby uniknąć problemów z rozróżnianiem wielkości liter
- ✓ Usuń słowa puste, aby poprawić gęstość semantyczną
Unikaj tych praktyk
- ✗ Nie umieszczaj danych wrażliwych (np. identyfikatorów, adresów e-mail, haseł)
- ✗ Nie używaj znaków specjalnych (np. @#$%^&*)
- ✗ Nie pozostawiaj spacji ani kolejnych separatorów
- ✗ Nie powtarzaj tego samego słowa
Szczegóły techniczne
Wykorzystuje dekompozycję NFKD + usunięcie znaków diakrytycznych łączących (\p{M}), przekształcając Café na Cafe. Obsługuje większość znaków opartych na łacinie.
Oparta na popularnych słowach angielskich (a/an/the/and/or/of/to/in/on/for/at/by/with); można dostosowywać. Słowa puste w języku chińskim wymagają osobnego traktowania.
Wymaga obsługi ES6+ oraz wyrażeń regularnych Unicode (\p{...}). Obsługiwane w nowoczesnych przeglądarkach: Chrome 64+, Firefox 78+, Safari 11.1+.
Jak wygenerować slug za pomocą języka programowania?
JavaScript
function slugify(text) {
return text
.toLowerCase()
.normalize("NFKD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/[^\w\s-]/g, "")
.trim()
.replace(/[\s_-]+/g, "-")
.replace(/^-+|-+$/g, "");
}
PHP
function slugify($text) {
$text = mb_strtolower($text);
$text = iconv("UTF-8", "ASCII//TRANSLIT", $text);
$text = preg_replace("/[^\w\s-]/", "", $text);
$text = preg_replace("/[\s_-]+/", "-", $text);
return trim($text, "-");
}
Python
import re
import unicodedata
def slugify(text):
text = text.lower()
text = unicodedata.normalize("NFKD", text)
text = text.encode("ascii", "ignore").decode("ascii")
text = re.sub(r"[^\w\s-]", "", text)
text = re.sub(r"[\s_-]+", "-", text)
return text.strip("-")
Go
import (
"regexp"
"strings"
"golang.org/x/text/unicode/norm"
)
func Slugify(text string) string {
text = strings.ToLower(text)
text = norm.NFKD.String(text)
re := regexp.MustCompile(`[^\w\s-]`)
text = re.ReplaceAllString(text, "")
re = regexp.MustCompile(`[\s_-]+`)
text = re.ReplaceAllString(text, "-")
return strings.Trim(text, "-")
}
Ruby
require "unicode"
def slugify(text)
text = text.downcase
text = Unicode.nfkd(text).gsub(/[^\x00-\x7F]/, "")
text = text.gsub(/[^\w\s-]/, "")
text = text.gsub(/[\s_-]+/, "-")
text.strip.gsub(/^-+|-+$/, "")
end
Java
import java.text.Normalizer;
public static String slugify(String text) {
text = text.toLowerCase();
text = Normalizer.normalize(text, Normalizer.Form.NFKD);
text = text.replaceAll("[^\\w\\s-]", "");
text = text.replaceAll("[\\s_-]+", "-");
return text.replaceAll("^-+|-+$", "");
}