Слаг — це зрозумілий хвіст веб-адреси, як-от my-first-post у example.com/blog/my-first-post. Це частина, яку людина читає перед тим, як клікнути, і яку пошукова система сприймає як короткий опис вмісту сторінки. Саме тому він заслуговує більшої уваги, ніж ідентифікатор бази даних чи дата. Цей безкоштовний генератор перетворює будь-який текст на слаг: вставте заголовок у поле «Текст для конвертації», натисніть «Згенерувати», і результат з'явиться поруч із кнопкою копіювання. За замовчуванням увімкнені налаштування, які потрібні більшості сайтів — малі літери, дефіси між словами, видалення поширених службових слів, транслітерація нелатинських символів. Готовий до використання слаг знаходиться на відстані одного кліка, і кожне з цих рішень можна змінити.
Усе відбувається на вашому пристрої. Сторінка завантажує невеликий JavaScript-рушій і запускає його локально: ваші заголовки ніколи не завантажуються в мережу, не логуються, а інструмент продовжує працювати навіть без інтернету. Саме тому результат оновлюється щомиті, коли ви змінюєте налаштування. Порядок обробки варто знати, адже він робить результат передбачуваним: вставлене посилання спочатку скорочується до останнього сегмента шляху, потім текст переводиться у малі літери, далі видаляються стоп-слова, транслітеруються нелатинські символи, після чого, за вашим бажанням, видаляються числа та спецсимволи. Усе, що залишилося, з'єднується вибраним роздільником, обрізається до максимальної довжини, і, нарешті, дублікати отримують числовий суфікс. «Текст для конвертації» приймає до 500 000 символів за раз — це кілька тисяч заголовків статей.
Один рядок на вході — один слаг на виході. Вставте цілий список заголовків, і кожен рядок стане окремим пронумерованим слагом із вихідним текстом сірого кольору над ним. Так навіть у списку з п'ятдесяти елементів легко зрозуміти, якому заголовку належить слаг. Список, який уже лежить у файлі, не мусить іти через буфер обміну: кнопка «Завантажити з файлу» біля поля вводу відкриває звичайний текстовий файл — .txt, .csv, .md, .json і подібні — і підставляє його вміст у поле. Браузер читає цей файл так само, як читає те, що ви набираєте, і нікуди його не відправляє. «Ділити ввід за» визначає, як список розрізається на частини. «Автоматично» стоїть за замовчуванням: новий рядок завжди розділяє елементи, тоді як кома ділить їх лише тоді, коли весь ввід — це один рядок, частини якого виглядають як самостійні значення. Тому «ціна 3,5 грн» та «Розділ 5: результати, висновки» залишаються цілими і не розпадаються на фрагменти. «Новий рядок», «Кома» та «Пробіл» дозволяють примусово вказати роздільник, якщо ви точно знаєте формат своїх даних. «Формат результату» визначає, як саме ви отримаєте список: по одному в рядку, через пробіл чи через кому. І «Скопіювати все», і «Зберегти у файл» дотримуються цього формату. «Історія» зберігає останні 10 конвертацій у вашому браузері, тож список, який ви обробили годину тому, усе ще там.
Нелатинський текст — це те, що більшість генераторів слагів обробляє приблизно правильно, і лише одиниці — ідеально. Веб-адреса може містити літери будь-якого алфавіту, і пошукові системи читають їх, але багато сайтів усе ще віддають перевагу чистому ASCII, який копіюється, вставляється та проходить крізь будь-яку систему без percent-encoding. Якщо вам потрібен ASCII, кирилицю, грецьку, арабську, китайську та європейські літери з діакритикою треба конвертувати, і справжнє питання — за чиїми правилами. Ця сторінка вирішує це у два етапи. Загальний етап охоплює всі системи письма: бібліотека транслітерації знаходить логічний ASCII-відповідник майже для кожного символу, який ви можете ввести. Цей шар працює для символів, яких не покриває жодна таблиця. Специфічний етап — це набір ручних таблиць для мов, де загальна відповідь не збігається з тою, яку країна реально використовує: українська — одна з таких мов, і список поповнюється в міру того, як інструмент доходить до мов, яким потрібна власна таблиця. Якщо вибрати одну з них, її таблиця завантажується в сітку під назвою «Правила транслітерації». Там кожна літера — це текстове поле, яке можна змінити, а кнопка «Скинути правила до типових» повертає все як було. Українська таблиця слідує постанові Кабінету Міністрів № 55 від 2010 року — стандарту, за яким друкують закордонні паспорти. Вона враховує деталі, які легко пропустити: зг стає zgh, щоб не плутатися з ж; є, ї, й, ю та я мають одну форму на початку слова і іншу — всередині; а апостроф і м'який знак відкидаються, не починаючи нового слова, тому Знам'янка перетворюється на znamianka, а не znamyanka. Німецька мова за замовчуванням використовує розширений варіант ä → ae, ö → oe, ü → ue, яким послуговуються німецькі адреси, але є і простий варіант ä → a, якщо ви віддаєте йому перевагу.
Функція «Видалити стоп-слова» ввімкнена за замовчуванням. Вона відкидає короткі зв'язкові слова, які зазвичай подовжують слаг, не додаючи йому сенсу. Зазвичай, але не завжди: «статті про ШІ» і «статті для ШІ» відрізняються лише стоп-словом, тому перевіряйте результат, коли маленьке слово несе ключовий зміст. Список у полі «Стоп-слова» повністю редагується і надходить уже заповненим: англійський список плюс список для мови сторінки, на якій ви перебуваєте. Тому українська сторінка знає слова в, на, та і, а німецька — der, die та das. Додавайте власні слова, видаляйте ті, що хочете зберегти, або повністю вимкніть функцію — тоді поле стане сірим, не вдаючи, що воно досі на щось впливає. Два чесні зауваження з цього приводу. Видалення стоп-слів — це скоріше про охайність, ніж про важелі ранжування: ви отримуєте коротшу і чистішу адресу, а не кращу позицію. І якщо кожне слово в заголовку виявиться у списку, чесним результатом буде порожнеча, тому інструмент повідомить вам про це, замість того, щоб просто видати порожнє поле.
Решта перемикачів визначають форму. «Роздільник у слагу» відповідає за те, що стоятиме між словами. Дефіс за замовчуванням відповідає власній рекомендації Google розділяти слова в URL дефісами, а не підкресленнями. «Підкреслення (_)» залишили для систем, які цього вимагають. «Малі літери» ввімкнено, оскільки більшість серверів розрізняють регістр в адресах, а змішаний регістр — це простий спосіб отримати два URL для однієї сторінки. «Видалити спецсимволи» прибирає все, що не є літерою, цифрою, пробілом, дефісом чи підкресленням. Саме це не пускає пунктуацію, лапки та емодзі в адресу. Емодзі видаляються ще до транслітерації, щоб ракета випадково не перетворилася на слово rocket. «Видалити числа» вимкнено, адже число у заголовку зазвичай є його частиною. «Максимальна довжина» налаштовується від 10 до 200 із типовим значенням 80. Коли слаг довший, рушій обрізає його на останньому цілому слові, яке поміщається, а не посеред слова; лише одне слово, довше за весь ліміт, доводиться обрізати всередині. Цифра біля кожного результату — це його довжина в символах, і вона стає червоною після 60 — наш власний орієнтир читабельності, а не обмеження пошукових систем: далі слаг стає важким для швидкого сприйняття і незручним для вставки в повідомлення.
Є ще два перемикачі, які перетворюють масову конвертацію на роботу в один клік. «Унікальні слаги» ловить випадки, коли два різні заголовки зводяться до однакового слага — «Топ 10 порад» і «Топ-10 порад» обидва стають top-10-porad — і додає другому суфікс -2, а третьому -3. При цьому базова частина скорочується першою, якщо суфікс виштовхує загальну довжину за встановлений максимум. Дві сторінки за однією адресою — це проблема, яку набагато дешевше виловити в цьому списку, ніж у вашій CMS. «Слаг зі вставленого посилання» працює у зворотному напрямку: вставте повний лінк, і інструмент візьме останню частину шляху, відкине параметри запиту та закінчення на зразок .html чи .php, а також розкодує percent-encoding. Так посилання на Вікіпедію, що закінчується на %D0%9B%D1%8C%D0%B2%D1%96%D0%B2, перетвориться на lviv, а не на набір шістнадцяткових цифр. Це працює лише тоді, коли весь рядок є посиланням, тож адреса всередині речення залишиться текстом.
Чому варто вибрати цей генератор слагів?
- Працює лише у браузері: ваші заголовки нікуди не завантажуються, а сторінка працює навіть офлайн.
- Масова конвертація зі вставки або з текстового файлу з вихідним заголовком над кожним слагом.
- Справжні стандарти транслітерації для різних мов, а не одна загальна таблиця для всіх.
- Українська за постановою № 55 від 2010 року — правопис, що використовується в паспортах.
- Кожне правило можна редагувати літера за літерою зі скиданням в один клік.
- Автоматичні суфікси -2 та -3, щоб жодні два слаги у списку не конфліктували.
- Вставте посилання і отримайте з нього слаг із розкодованим percent-encoding.
- Список стоп-слів, який можна редагувати і який уже заповнений для вашої мови.
- Обрізання на цілому слові всюди, де можливо, з лічильником символів біля кожного результату.
- Безкоштовно та без лімітів: жодних реєстрацій, квот та збереження даних на наших серверах.
Слаги потрібні скрізь, де сторінка має мати читабельну адресу. Блог або новинний сайт перетворює на них кожен заголовок. Саме під цей сценарій створювався інструмент: вставляєте заголовки за тиждень — отримуєте URL-адреси за тиждень. Інтернет-магазин робить те саме для назв товарів і категорій, зазвичай масово після імпорту, і часто мовою, літери якої магазин бажає бачити як чистий ASCII. Документація та бази знань так само створюють якорі та імена файлів. Окрім веб-адрес, такий самий чистий рядок тексту — це те, що потрібно для імені файлу, яке не зламається в іншій операційній системі, ключа бази даних, який людина зможе прочитати в логах, назви гілки коду, імені зображення в медіабібліотеці або ідентифікатора розділу в генераторі статичних сайтів. Будь-яке місце, де зрозуміле для людини ім'я має вижити після потрапляння в машинно-читане поле — це місце для слага.
Є кілька обмежень, про які варто знати перед використанням. Це генератор, а не валідатор: він не перевірятиме, чи зайнятий уже слаг на вашому сайті, бо не знає, що там є. Унікальність гарантується лише в межах поточного списку. Редиректи — теж ваша турбота. Зміна слага опублікованої сторінки ламає її стару адресу, і це рішення для вашої CMS, а не для цього інструмента. Кнопка «Зберегти у файл» записує звичайний текст, а не CSV чи JSON. Автоматичний поділ робить припущення щодо ком, яке є правильним майже завжди, але не завжди. Саме тому «Ділити ввід за» дозволяє вам це змінити. І транслітерація — це домовленість, а не переклад. Мюнхен стає miunkhen, а не Munich. Тому коли сторінка має усталену назву цільовою мовою, ця назва буде кращим слагом, ніж будь-яка автоматична конвертація оригіналу.