Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Транслит для загранпаспорта ГОСТ 7.79 ISO 9 Блог Вопросы и ответы Создать URL
Транслитерация

Hugo и Jekyll: slug, url и русские заголовки в адресах

Генераторы статических сайтов берут адрес из имени файла или заголовка. Для русских заголовков лучше задавать адрес явно: разберём, какие для этого есть поля и режимы.

Hugo: slug и url

  • В front matter поле slug переопределяет последний сегмент адреса, а url — весь путь. Если указаны оба, побеждает url.
  • Hugo не очищает значение url: пишите его латиницей сами.
  • Настройка removePathAccents убирает только комбинирующие знаки (например, «é» → «e»). Из её описания следует, что она не переводит кириллицу в латиницу, поэтому для русских заголовков задавайте slug вручную.

Jekyll: режимы slugify

Фильтр slugify в Jekyll работает в нескольких режимах:

  • raw — заменяются только пробелы;
  • default — заменяются пробелы и небуквенно-цифровые символы;
  • pretty — как default, но оставляются некоторые знаки пунктуации, безопасные для адреса;
  • ascii — дополнительно удаляются все не-ASCII символы;
  • latin — латинские буквы с диакритикой сначала переводятся в обычные (например, «à» → «a»).

Из описания режимов видно, что режим ascii удалит русские буквы, и адрес может оказаться пустым. Режим latin работает только с латинскими буквами с диакритикой, кириллицу он не транслитерирует.

Что делать в обоих генераторах

  • Задавать адрес явно: в Hugo — slug или url, в Jekyll — через имя файла латиницей или поле permalink в front matter.
  • Брать значение из генератора, а не вычислять на лету.
  • Для массового создания постов — заранее подготовить список адресов.

Как проверить

Чтобы узнать, как ваш проект превращает заголовок в адрес, создайте тестовую страницу с названием «Щёлково цех юг» и сравните результат. Таблица Яндекса даёт shhelkovo-ceh-yug; привычный английский вариант — shchyolkovo-tsekh-yug. Как читать другие результаты — в статье «Транслит Яндекса против встроенного в CMS».

Источники

Использованы документация Jekyll по фильтрам и обсуждения на форуме Hugo. Проверьте поведение на вашей версии.

Типичные ошибки

  • Использовать slugify: ascii для русских заголовков.
  • Рассчитывать, что removePathAccents переведёт кириллицу в латиницу.
  • Указывать в url русские буквы.
  • Менять адрес опубликованного поста без редиректа.

Пошагово: приводим адреса к единому виду

  1. Составьте список заголовков статей.
  2. Получите адреса в генераторе в режиме «Список строк».
  3. Запишите их в slug (Hugo) или в имя файла и permalink (Jekyll).
  4. Соберите сайт и проверьте адреса в готовой папке сборки.
  5. Для опубликованных страниц настройте редиректы.

Разбор заголовка по шагам

Возьмём заголовок «Как выбрать беговые кроссовки» и пройдём путь до адреса. Hugo и Jekyll сами латиницу не создадут: нужен явный slug.

Заголовок:           Как выбрать беговые кроссовки
Без служебных слов:  Как выбрать беговые кроссовки
Адрес целиком:       kak-vybrat-begovye-krossovki
Адрес короче:        kak-vybrat-begovye-krossovki

Режим «Убрать служебные слова» в генераторе делает второй шаг сам. Короткий адрес читается легче и лучше помещается в строку браузера. Ограничения по длине и другие правила составления адреса собраны в статье «Как составить ЧПУ-адрес страницы».

Памятка для редактора

Если в проекте несколько редакторов, дайте им короткую памятку. Достаточно этих правил:

  • Slug или url задаём явно.
  • В Jekyll режим ascii для русских заголовков не использовать.
  • Менять опубликованный адрес — с редиректом.

Чек-лист

  1. Определить, откуда берётся адрес: из имени файла или front matter.
  2. Задавать адрес явно.
  3. Не использовать режим ascii для русских заголовков.
  4. Менять адрес — с редиректом.

Частые вопросы

Какие поля Hugo задают адрес вручную?

slug переопределяет последний сегмент, url — весь путь.

Переводит ли removePathAccents кириллицу?

Нет: по описанию настройка убирает только комбинирующие знаки.

Что делает режим ascii в Jekyll?

Удаляет все не-ASCII символы: русские буквы пропадут.

Как получить адрес для русского заголовка?

Подставить результат генератора в slug, url или permalink.

Проверьте свои заголовки: вставьте их в генератор ЧПУ и посмотрите, как в адресе выглядят слова с этой буквой.

Читайте также

4 мин чтения

Транслит Яндекса против встроенного в CMS: как определить, что у вас

Короткий тест из одной фразы, по которому можно определить, по какой схеме ваша CMS превращает заголовки в адреса, и что делать, если она отличается от таблицы Яндекса.

Читать статью →