Relearn
Тема для движка Hugo
| Версия | 9.2.1 (2026-10-11) |
|---|---|
| Проверено | 2026-10-17 |
| Готовность для мультиязычного проекта | вики 85 % проверено 20 из 31 сайт 90 % проверено 21 из 34 как считается |
| Мнение автора | можно рассмотреть Можно рассмотреть. С языками лучшая, но поиск не ищет по-украински — придётся менять поиск. (2026-10-17) |
| Цена | бесплатно |
| Лицензия | MIT |
| Репозиторий | https://github.com/McShelby/hugo-theme-relearn |
| Демо | https://mcshelby.github.io/hugo-theme-relearn |
| CSS | Свои стили темы, без фреймворков; 10 готовых цветовых схем |
| Версия Hugo | 0.166 и новее (проверено на 0.168; 9.1.0 — на 0.165) |
| JavaScript | Свой JavaScript; поиск — Lunr |
| Node.js | Не нужен |
| Переводы интерфейса | Интерфейс переведён на 27 языков, в том числе ru и pt-BR; украинский есть, но под кодом ua |
Поиск по сайту
Поиск в боковом меню: подсказки при вводе и отдельная страница результатов. На Lunr, включён сразу.
| Где работает | в браузере посетителя (JavaScript) |
|---|---|
| На чём построен | Lunr — небольшая библиотека на JavaScript, ищет прямо в браузере. Вторым вариантом в теме есть Orama, но он помечен как экспериментальный. |
| Откуда берёт тексты | Тексты статей — отдельный файл на язык (у тестовой вики русский — 135 КБ). Грузится сразу на каждой странице, а не когда открывают поиск. Выдаёт только статьи на языке страницы. |
| Языки | Понимает формы слов для английского, русского и португальского: «серверами» найдёт «серверов». Украинский не поддерживает: статьи на uk в поиск не попадают совсем. Orama по-русски и по-украински не нашёл ничего. |
| Что можно настроить в теме | Выключить поиск и сменить движок (Lunr или Orama) — настройкой. Свой шаблон индекса (например, искать только по названиям) и своя страница поиска — настройкой плюс свой файл. Pagefind — только своим кодом. |
| Проверено | 2026-10-17 |
Плюсы
- Сделана для документации: боковое меню по разделам, хлебные крошки, переход к следующей странице.
- Меню языков и hreflang ведут только на существующие переводы; есть x-default, код pt-br правильный.
- Переключатель языков ставится вверх или вниз бокового меню настройкой, без правки шаблонов.
- Верхняя панель настраивается так же, как меню: какие кнопки и где показывать.
- Боковое меню гибко настраивается: порядок, раскрытые разделы, скрытые страницы, свои меню.
- Много мест для своего кода: head, подвал, до и после заголовка, над и под статьёй, меню.
- Поиск выдаёт только статьи на языке страницы и понимает формы слов для en, ru, pt.
- Много блоков: подсказки, вкладки, раскрывающиеся блоки, карточки, Mermaid, формулы.
Минусы
- Поиск не ищет по-украински: статьи на uk в него не попадают. Настройкой не исправить.
- Тексты для поиска грузятся на каждой странице (ru — 135 КБ), даже если поиском не пользуются.
- Украинский перевод интерфейса не подключается сам: в теме он назван ua, а не uk.
- Оглавление — кнопкой в верхней панели, поверх страницы; колонки сбоку нет.
- Нет canonical и блока «шаги».
- По умолчанию ссылки с index.html на конце — нужно выключить настройкой.
- Переключатель языков в верхнюю панель настройкой не поставить — только своим шаблоном.
- Готовится версия 10 (ещё не вышла): уберёт всё, о чём 9.x предупреждает при сборке. Когда выйдет — перепроверить.
Общее впечатление
Тема для документации. Меню языков и hreflang — лучшие из проверенных тем: правильные сразу, а переключатель ставится куда нужно настройкой.
Главный минус для сайта на украинском — поиск: украинские статьи в него не попадают, и настройкой это не исправить. Оглавление открывается кнопкой поверх страницы, а не колонкой сбоку.
Что пришлось доработать
Переводы интерфейса для en, uk, ru, pt-BR
| Проблема | На /uk/ интерфейс темы английский: украинский перевод в теме лежит в файле ua.toml, а язык сайта — uk. |
|---|---|
| Что сделано | Копия файла темы i18n/ua.toml в i18n/uk.toml проекта. |
| Файлы | i18n/uk.toml |
| Объём работы | небольшой |
| Требование | ml-ui-strings |
Корректный canonical
| Проблема | На страницах нет canonical. |
|---|---|
| Что сделано | Одна строка в заготовке для своего кода в head. |
| Файлы | layouts/partials/custom-header.html |
| Объём работы | небольшой |
| Требование | seo-canonical |
<link rel="canonical" href="{{ .Permalink }}">
Корректный canonical
| Проблема | Все ссылки и hreflang по умолчанию заканчиваются на index.html — у страницы два адреса. |
|---|---|
| Что сделано | Настройка в hugo.toml. |
| Файлы | hugo.toml |
| Объём работы | небольшой |
| Требование | seo-canonical |
[params]
disableExplicitIndexURLs = true
Переключатель языков вверху меню
| Проблема | Переключатель языков по умолчанию внизу бокового меню. |
|---|---|
| Что сделано | Настройкой перенесён наверх меню, под поиск. |
| Файлы | hugo.toml |
| Объём работы | небольшой |
[params]
sidebarheadermenus = [
{ type = 'custom', elements = [ { type = 'languageswitcher', icon = 'globe' } ] },
{ type = 'divider' },
]
sidebarmenus = [ { type = 'page' } ]
sidebarfootermenus = []
Результаты по требованиям с этой темой
Многие результаты задаёт сам Hugo, и они одинаковы для всех тем: языковые адреса, работа без базы данных, генерация страниц из данных. От темы зависят меню языков, hreflang, поиск и места для своего кода — их нужно проверять у каждой темы отдельно. Значок в пунктирной рамке — результат перенесён из проверки с другой темой этого движка. Наведите на значок, чтобы увидеть подробности.
| Требование | Результат | От чего зависит | Примечание |
|---|---|---|---|
| Мультиязычность | |||
Материал можно начать на неосновном языке ml-author-any-lang | да | движок | страница только на ru (/ru/o-proekte/) собирается без заглушки en |
Переключатель языков показывает только существующие переводы ml-switcher-existing | да | тема | в меню языков только существующие переводы статьи; на статье только на ru — один русский. Место меняется настройкой: внизу бокового меню или вверху, под поиском. В верхнюю панель настройкой не ставится (тема выдаёт ошибку) — только своим шаблоном элемента |
hreflang только на существующие переводы ml-hreflang-existing проверить ↗ | да | тема | hreflang только на существующие переводы, на саму страницу и x-default; код языка из locale (pt-br) — верно |
Нет автостраниц с контентом основного языка ml-no-fallback-pages проверить ↗ | да | тема | статья только на ru существует только на ru и не попадает в меню других языков |
Основной язык в корне, остальные с префиксом ml-default-root | да | движок | defaultContentLanguageInSubdir = false: en в корне, ru на /ru/ |
Атрибут lang в нужном формате ml-html-lang | да | тема | html lang = ru, для португальского pt-br |
Переводы интерфейса для en, uk, ru, pt-BR ml-ui-strings | доработка | тема | интерфейс переведён на ru и pt-BR, но украинский файл в теме назван ua, а язык сайта — uk, поэтому на /uk/ интерфейс английский. Исправлено копией файла i18n/ua.toml в i18n/uk.toml проекта. Кнопка «Home» в меню не переведена ни на ru, ни на uk |
Контент доступен для автоматического перевода ИИ ml-ai-translatable | да | движок | статьи — обычные Markdown-файлы; в рабочем проекте их переводит скрипт через Gemini |
| Статьи, навигация и поиск | |||
Управление боковым меню sidebar-control | да | тема | боковое меню — дерево разделов; настройками: порядок, раскрыть или свернуть разделы, скрыть страницу, свои меню сверху и снизу |
Оглавление статьи toc-control | да | тема | оглавление — кнопкой в верхней панели, открывается поверх страницы, а не колонкой сбоку; на странице выключается disableToc |
Таксономии (теги, рубрики, свои классификаторы) taxonomies | да | тема | теги и категории со страницами списков |
Поиск по сайту site-search | нет | тема | Lunr в браузере; тексты — отдельный файл на язык (ru — 135 КБ), грузится на каждой странице сразу. Выдаёт только статьи на языке страницы. Украинский Lunr не поддерживает: статьи на uk в поиск не попадают вообще (тема сама предупреждает при сборке). Второй движок темы, Orama, по-русски и по-украински не нашёл ничего — в 9.2.1 так же, как в 9.1.0 |
Гибкость поиска search-replaceable | доработка | тема | замена: настройкой — только на второй движок Orama (экспериментальный); свой шаблон индекса и своя страница поиска — настройкой плюс свой файл; Pagefind — только своим кодом. Языки: формы слов понимает для en, ru, pt; украинский не ищет. Где искать: только через свой шаблон индекса |
Подсветка кода code-highlight | да | тема | подсвечивает сам Hugo при сборке, кнопка «копировать» |
Пошаговые инструкции content-steps | нет | тема | блока «шаги» нет; есть подсказки, вкладки, раскрывающиеся блоки, карточки, кнопки, Mermaid, формулы |
Свой код в шаблоны без правки темы (Inject Partials) theme-inject-partials | да | тема | заготовки: в head, в подвале, до и после заголовка, над и под статьёй, до и после меню, низ меню, комментарии |
Генерация страниц из данных (pSEO) data-pages | да | движок | module.mounts: data/products → content/cms, data/*.yaml → hugo.Data, без копирования |
| SEO | |||
Корректный canonical seo-canonical проверить ↗ | доработка | тема | canonical на страницах нет; добавлен одной строкой в заготовку custom-header.html. Ещё: по умолчанию ссылки с index.html на конце — выключается настройкой disableExplicitIndexURLs |
Микроразметка schema.org seo-schema | да | тема | микроразметка в HTML (не JSON-LD): Article и BreadcrumbList |
| Хранение и окружение | |||
Работает без сервера БД no-db | да | движок | SSG, контент в Markdown и YAML |
Работает в окружении Nginx + PHP-FPM 8.5 runtime-php | да | движок | PHP не нужен: Nginx отдаёт статику |