Slug to czytelna końcówka adresu internetowego — my-first-post w example.com/blog/my-first-post. Jest to część, którą człowiek może przeczytać przed podjęciem decyzji o kliknięciu, i część, którą wyszukiwarka czyta jako krótki opis zawartości strony, dlatego zasługuje na więcej uwagi niż identyfikator z bazy danych czy data. Ten darmowy generator zmienia dowolny tekst w slug: wklej tytuł w pole Tekst do konwersji, naciśnij Generuj, a wynik pojawi się wraz z przyciskiem do kopiowania obok. Ustawienia domyślne to te, których potrzebuje większość stron — małe litery, myślniki między słowami, usunięte popularne słowa wypełniające, przetransliterowane litery spoza alfabetu łacińskiego — dzięki czemu użyteczny slug jest na wyciągnięcie ręki, a każda z tych decyzji to przełącznik, który możesz zmienić.
Wszystko dzieje się na Twoim urządzeniu. Strona ładuje mały silnik JavaScript i uruchamia go lokalnie: Twoje tytuły nigdy nie są wysyłane na serwer, nigdy nie są logowane, a narzędzie działa nawet po wyłączeniu połączenia z siecią. To również powód, dla którego wynik aktualizuje się w momencie zmiany ustawienia. Warto wspomnieć o kolejności działań, ponieważ to ona sprawia, że wynik jest przewidywalny: wklejony link jest najpierw redukowany do ostatniego segmentu ścieżki, potem tekst jest zamieniany na małe litery, następnie usuwane są zbędne słowa, później znaki nielacińskie są transliterowane, potem usuwane są cyfry i znaki specjalne (jeśli o to poprosiłeś), następnie to, co zostało, jest łączone za pomocą wybranego separatora, potem wynik jest przycinany do maksymalnej długości, a na koniec duplikat otrzymuje przyrostek numeryczny. Tekst do konwersji przyjmuje jednorazowo do 500 000 znaków, co odpowiada kilku tysiącom nagłówków artykułów.
Jeden wiersz na wejściu, jeden slug na wyjściu. Wklej całą listę tytułów, a każdy wiersz stanie się własnym, ponumerowanym slugiem z oryginalnym tytułem widocznym powyżej w kolorze szarym, dzięki czemu w partii pięćdziesięciu sztuk wciąż zorientujesz się, do którego nagłówka należy dany slug. Lista, która znajduje się już w pliku, nie musi wędrować przez schowek: Załaduj z pliku, przycisk obok pola wprowadzania, otwiera zwykły plik tekstowy — .txt, .csv, .md, .json i tym podobne — i wrzuca jego zawartość do pola. Twoja przeglądarka czyta ten plik dokładnie tak, jak to, co wpisujesz z klawiatury, i nie jest on nigdzie wysyłany. Dziel dane wejściowe wg decyduje, w jaki sposób lista jest dzielona. Automatycznie jest opcją domyślną: nowa linia zawsze rozdziela pozycje, podczas gdy przecinek rozdziela je tylko wtedy, gdy dane to pojedynczy wiersz, którego części wyglądają jak niezależne wartości — więc "cena 3,5 EUR" oraz "Rozdział 5: wyniki, wnioski" pozostają w całości zamiast rozpadać się na fragmenty. Nowy wiersz, Przecinek i Spacja wymuszają ten wybór, kiedy znasz już kształt swoich danych. Format wyników decyduje o tym, w jakiej postaci partia wraca po skopiowaniu — jeden wiersz na wynik, oddzielone spacjami, czy oddzielone przecinkami — a obie opcje Kopiuj wszystko i Zapisz do pliku stosują się do tego. Historia przechowuje 10 ostatnich przetworzeń w Twojej własnej przeglądarce, więc lista przekształcona godzinę temu wciąż tam jest.
Znaki spoza alfabetu łacińskiego to element, z którym większość generatorów slugów radzi sobie z grubsza, a mało który robi to bezbłędnie. Adres URL jest najbezpieczniejszy w czystym formacie ASCII, dlatego też znaki cyrylicy, greckie, arabskie, chińskie czy europejskie litery z akcentami muszą zostać przekonwertowane — i tu jedynym pytaniem jest, według czyich reguł. Ta strona odpowiada na to dwutorowo. Warstwa ogólna obsługuje każdy system pisma: biblioteka transliteracyjna zapewnia sensowny odpowiednik ASCII dla niemal każdego znaku, jaki możesz wpisać. Warstwa szczegółowa to zestaw ręcznie przygotowanych tabel dla języków, w których ogólna odpowiedź nie pokrywa się z tym, co faktycznie stosuje dany kraj; polski jest jednym z nich. Z uwagi na to, że jest to polska wersja strony, używana jest tutaj polska tabela. Trafia ona od razu do edytowalnej siatki w sekcji Reguły transliteracji, gdzie każda litera jest polem tekstowym, które możesz zmienić, a Przywróć domyślne reguły cofa te zmiany. Polska tabela odwzorowuje polskie normy: ą staje się a, ł zamienia się na l, a ż i ź stają się literą z. Jako przykład, że dla innych języków zasady się różnią, ukraińska tabela w narzędziu spełnia wymogi urzędowej uchwały nr 55.
Usuń zbędne słowa jest domyślnie włączone. Pozbywa się krótkich słów łączących — w, z, do, na, i — które wydłużają slug, nie dodając mu znaczenia. Lista pod hasłem Zbędne słowa jest w pełni edytowalna i trafia do Ciebie już wypełniona: zawiera listę angielską oraz listę dla języka, w którym przeglądasz stronę, więc polska wersja rozpoznaje w, na, i oraz z. Możesz dodać własne słowa, usunąć te, które chcesz zatrzymać, albo całkowicie wyłączyć tę funkcję, w którym to przypadku pole zmienia kolor na szary, by nie udawać, że nadal ma znaczenie. Dwie szczere uwagi na ten temat. Pozbycie się zbędnych słów to mały zysk na uporządkowaniu, a nie dźwignia rankingowa — zyskujesz krótszy, czystszy adres, a nie lepszą pozycję. Jeśli każdy wyraz w tytule znajdzie się na tej liście, rzetelnym wynikiem będzie po prostu nic, więc narzędzie poinformuje Cię o tym, zamiast wręczać puste pole.
Pozostałe przełączniki decydują o kształcie. Separator w slugu pozwala wybrać znak umieszczany pomiędzy słowami, a domyślny wybór myślnika nie jest kwestią gustu: Google odczytuje myślnik jako znak oddzielający słowa, a podkreślenie jako łącznik, więc my_first_post dociera do robota jako jedno długie słowo, podczas gdy my-first-post jako trzy. Podkreślenie (_) jest dostępne dla tych systemów, które na to nalegają. Małe litery jest włączone, ponieważ większość serwerów traktuje adresy jako wrażliwe na wielkość liter, a wymieszanie ich to prosty sposób, by skończyć z dwoma adresami URL dla jednej strony. Usuń znaki specjalne usuwa wszystko, co nie jest literą, cyfrą, spacją, myślnikiem ani podkreśleniem, dzięki czemu z adresu znikają znaki przestankowe, cudzysłowy i emoji — co ważne, emoji usuwane są celowo przed procesem transliteracji, aby obrazek rakiety nie zmienił się w słowo rocket. Usuń cyfry jest wyłączone, gdyż liczba w tytule zazwyczaj jest jego integralną częścią. Maks. długość obejmuje zakres od 10 do 200 znaków i domyślnie wynosi 80; jeśli slug okazuje się dłuższy, silnik obcina go przy ostatnim pełnym słowie, które mieści się w limicie, zamiast ciąć w środku wyrazu. Liczba obok każdego wyniku to jego długość w znakach, która zmienia kolor na czerwony po przekroczeniu 60 — to nie jest twardy limit, lecz moment, w którym slug zaczyna być przycinany w wynikach wyszukiwania i staje się nieporęczny do wklejenia w wiadomości.
Dwa kolejne przełączniki istnieją po to, aby zamienić konwersję masową z powrotem w zadanie na jedno kliknięcie. Unikalne slugi wyłapuje sytuacje, w których dwa odmienne tytuły generują identyczny slug — "Top 10 porad" i "Top-10 porad" stają się tym samym top-10-porad — i nadaje temu drugiemu przyrostek -2, trzeciemu -3, najpierw skracając rdzeń, jeśli dodanie przyrostka sprawiłoby, że slug przekroczy Twoją maksymalną długość. Dwie strony funkcjonujące pod tym samym adresem to problem znacznie tańszy do naprawienia na tej liście niż w Twoim systemie CMS. Slug z wklejonego adresu działa w drugą stronę: wklej pełny link, a narzędzie odetnie tylko ostatnią część ścieżki, odrzuci ciąg zapytania czy końcówkę .html lub .php i odkoduje kodowanie procentowe, dzięki czemu link do Wikipedii kończący się na %C5%81%C3%B3d%C5%BA powróci jako lodz zamiast ciągu cyfr szesnastkowych. Opcja ta jest uruchamiana tylko wtedy, gdy cały ciąg znaków w danej linii stanowi link, zatem adres umieszczony wewnątrz zdania pozostanie potraktowany jak zwykły tekst.
Dlaczego warto wybrać ten generator slugów?
- Tylko w przeglądarce: Twoje tytuły nigdy nie są przesyłane, a strona działa offline
- Masowa konwersja ze schowka lub pliku tekstowego, z tytułem źródłowym nad każdym slugiem
- Prawdziwe standardy transliteracji dla poszczególnych języków, a nie jedna ogólna tabela dla wszystkich
- Tabela dla języka polskiego pozbawiająca znaków akcentów: ą→a, ł→l, ż→z
- Każda reguła edytowalna znak po znaku, z możliwością zresetowania jednym kliknięciem
- Automatyczne przyrostki -2 i -3, dzięki czemu w jednej grupie nigdy nie powstaną zderzające się slugi
- Możliwość wklejenia pełnego linku i wyciągnięcia z niego sluga z odkodowaniem procentowym
- Edytowalna lista zbędnych słów, dostarczona wypełniona dla języka polskiego
- Bezpieczne przycinanie przy pełnym słowie z liczbą znaków obok każdego wyniku
- Całkowicie za darmo i bez limitów: brak konta, brak kwot, nic nie jest trzymane na naszych serwerach
Slugi potrzebne są wszędzie tam, gdzie strona musi posiadać czytelny adres. Blog lub strona z wiadomościami zamienia każdy nagłówek na slug, i to jest przypadek użycia, wokół którego zostało zaprojektowane to narzędzie: wklej najważniejsze tematy tygodnia, odbierz adresy URL na ten tydzień. Sklep internetowy robi to samo z nazwami produktów i kategorii, zazwyczaj masowo po imporcie danych, i bardzo często w języku, którego alfabet nie mieści się w adresie. Dokumentacja i bazy wiedzy konstruują na tych samych zasadach kotwice oraz nazwy plików. Poza adresami internetowymi, dokładnie tego samego czystego ciągu znaków potrzebujesz dla nazwy pliku, która nie popsuje się na innym systemie operacyjnym, klucza bazy danych, który człowiek zdoła odczytać w logach, nazwy gałęzi, nazwy obrazu w bibliotece multimediów czy identyfikatora sekcji w generatorze stron statycznych. Każde miejsce, w którym nazwa przyjazna dla człowieka musi przetrwać wstawienie w pole przeznaczone dla maszyny, jest miejscem należącym do sluga.
Zanim zaczniesz na nim w pełni polegać, warto poznać kilka jego ograniczeń. Jest to generator, a nie walidator: nie sprawdzi, czy dany slug jest już zajęty na Twojej stronie, ponieważ nie ma pojęcia o jej zawartości — unikalność, którą gwarantuje, obowiązuje jedynie w partii danych znajdującej się przed Tobą. Przekierowania również pozostają Twoim zadaniem; zmiana sluga opublikowanej strony psuje jej stary adres, a to jest decyzja do podjęcia wewnątrz CMS-a, a nie dla tego narzędzia. Zapisz do pliku zapisuje tylko zwykły tekst, a nie pliki CSV czy JSON. Automatyczny podział podejmuje decyzję o przecinkach, która jest poprawna w prawie wszystkich przypadkach, ale nie we wszystkich, co jest dokładnie powodem, dla którego Dziel dane wejściowe wg pozwala na zmianę tego ustawienia. Transliteracja to konwencja, a nie tłumaczenie — München staje się muenchen, a nie Munich — dlatego też, gdy strona ma już ustaloną nazwę w języku docelowym, ta nazwa będzie znacznie lepszym slugiem niż automatyczna konwersja oryginału.