Lotus Docs
Тема для движка Hugo
| Версия | 0.3.0 (2026-04-17) |
|---|---|
| Проверено | 2026-10-17 |
| Готовность для мультиязычного проекта | вики 68 % проверено 21 из 31 сайт 77 % проверено 22 из 34 как считается |
| Мнение автора | не выберу Не подходит: для нового проекта слишком много недочётов. Главное — языки (меню языков ведёт на несуществующие страницы, нет hreflang) и поиск (полный текст всех статей вшит в каждую страницу). (2026-10-17) |
| Цена | бесплатно |
| Лицензия | MIT |
| Репозиторий | https://github.com/colinwilson/lotusdocs |
| Демо | https://lotusdocs.dev/docs/ |
| CSS | Bootstrap 5.3 (SCSS собирается самим Hugo — нужна версия extended) |
| Версия Hugo | 0.140 и новее, extended; на 0.165 собирается с предупреждениями об устаревших функциях |
| JavaScript | Bootstrap, Prism для подсветки кода, FlexSearch для поиска |
| Node.js | Не нужен |
| Переводы интерфейса | Интерфейс темы переведён только на de, en, fr, pt |
Поиск по сайту
Поиск работает в браузере, на FlexSearch.
| Где работает | в браузере посетителя (JavaScript) |
|---|---|
| На чём построен | FlexSearch — небольшая библиотека на JavaScript: ищет прямо в браузере посетителя, сервер ей не нужен. |
| Откуда берёт тексты | Тексты всех статей вставляются прямо в каждую страницу сайта. В тестовой вики при 17 русских статьях страница выросла с 53 до 175 КБ — и будет расти с каждой новой статьёй. |
| Языки | Ищет на любом языке, в том числе на украинском, но формы слов не понимает — только начало слова: «мульти» найдёт «мультиязычность», а «языками» не найдёт статью со словом «языков». |
| Что можно настроить в теме | Выбрать, что искать — только названия или весь текст, — в настройках темы нельзя: Lotus Docs всегда кладёт в поиск весь текст. Это ограничение темы, а не FlexSearch: в Hextra на том же FlexSearch такая настройка есть. Вместо FlexSearch можно включить Algolia DocSearch — поиск на стороне внешнего сервиса Algolia. Поставить Pagefind можно только переделав шаблоны темы. |
| Ограничения | Сразу после установки ищет только в разделе /docs/. Чтобы искал по вашим разделам, в настройках нужна строка searchSectionsIndex. |
| Проверено | 2026-10-17 |
Плюсы
- Аккуратная раскладка документации: боковое меню слева, оглавление справа, на телефоне оглавление — выпадающим списком.
- Оглавление отключается на отдельной странице параметром
toc: false. - Подсветка кода Prism: 297 языков, кнопка «копировать», выделение строк; можно переключить на подсветку самим Hugo (
prism = false). - Хлебные крошки размечены Schema.org BreadcrumbList.
- Open Graph и автоматическая картинка-карточка для соцсетей.
- Обработчик ссылок находит битые внутренние ссылки при сборке.
- Собирается без Go: тему и зависимости можно положить в
themes/и подключить черезreplacements.
Минусы
- Меню языков для языков без перевода ведёт на несуществующие страницы
/en/docs,/uk/docs,/pt/docs(ошибка 404). - Нет hreflang в
<head>, нет заготовок для своего кода — для hreflang и JSON-LD придётся копировать шаблоны темы. - Индекс поиска с полным текстом всех статей вшит в каждую страницу — для большой вики не подходит.
- Боковое меню показывает только текущий раздел; скрыть статью или рубрику и отключить меню на странице нельзя.
- Тема рассчитана на раздел
/docs/и ставит на главную свой рекламный лендинг — исправляется настройкойcascade. - Нет блока «шаги», нет шаблонов для тегов и рубрик.
- Интерфейс не переведён на uk и ru; часть подписей вшита на английском.
- Использует устаревшие функции Hugo; последний релиз — апрель 2026.
Общее впечатление
Тема для документации на Bootstrap. Проверена на тестовом наборе вики: 4 языка, часть статей только на ru.
Для вики с несколькими языками у неё те же пробелы, что у Hextra: меню языков ведёт на несуществующие страницы, hreflang нет. Но здесь хуже: нет заготовок для своего кода, поэтому любые правки — это копии шаблонов темы. Самое серьёзное для вики — поиск: полный текст всех статей вшит в каждую страницу, и с ростом вики страницы будут становиться всё тяжелее. Боковое меню показывает только текущий раздел и не управляется параметрами.
Сильные стороны — оглавление (справа, на телефоне выпадающим списком, отключается на странице), подсветка кода и разметка хлебных крошек.
Что пришлось доработать
Свои разделы вместо /docs/
| Проблема | Тема рассчитана на то, что вся документация лежит в /docs/; разделы вики лежат в корне (/guides/, /scripts/). |
|---|---|
| Что сделано | В конфиге всем страницам, включая главную, назначен тип docs через cascade — адреса не меняются, на главной свой контент вместо лендинга темы. |
| Файлы | lab/hugo-lotusdocs/hugo.toml |
| Объём работы | небольшой |
[[cascade]]
type = "docs"
[cascade.target]
kind = "{home,section,page}"
Поиск по сайту
| Проблема | Поиск по умолчанию индексирует только раздел /docs/, статьи вики в него не попадают. |
|---|---|
| Что сделано | Параметр темы searchSectionsIndex указывает тип страниц для поиска. |
| Файлы | lab/hugo-lotusdocs/hugo.toml |
| Объём работы | небольшой |
| Требование | site-search |
[params.flexsearch]
enabled = true
searchSectionsIndex = ["docs"]
Результаты по требованиям с этой темой
Многие результаты задаёт сам Hugo, и они одинаковы для всех тем: языковые адреса, работа без базы данных, генерация страниц из данных. От темы зависят меню языков, hreflang, поиск и места для своего кода — их нужно проверять у каждой темы отдельно. Значок в пунктирной рамке — результат перенесён из проверки с другой темой этого движка. Наведите на значок, чтобы увидеть подробности.
| Требование | Результат | От чего зависит | Примечание |
|---|---|---|---|
| Мультиязычность | |||
Материал можно начать на неосновном языке ml-author-any-lang | да | движок | страница только на ru (/ru/o-proekte/) собирается без заглушки en |
Переключатель языков показывает только существующие переводы ml-switcher-existing | доработка | тема | для языков без перевода меню ведёт на /en/docs, /uk/docs, /pt/docs — таких страниц нет, это 404; исправляется своей копией i18nlist.html |
hreflang только на существующие переводы ml-hreflang-existing проверить ↗ | доработка | тема | в <head> hreflang нет; в меню языков rel=alternate hreflang стоит и на несуществующие переводы; заготовки для своего кода в head нет — придётся копировать head.html |
Нет автостраниц с контентом основного языка ml-no-fallback-pages проверить ↗ | да | тема | статья только на ru существует только на ru; пустых страниц на других языках нет, в sitemap их тоже нет |
Основной язык в корне, остальные с префиксом ml-default-root | да | движок | defaultContentLanguageInSubdir = false: en в корне, ru на /ru/ |
Атрибут lang в нужном формате ml-html-lang | да | тема | html lang берётся из locale языка: en, ru, pt-br |
Переводы интерфейса для en, uk, ru, pt-BR ml-ui-strings | доработка | тема | переводы интерфейса темы только de, en, fr, pt; подписи «Table of Contents» и «On this page» вшиты в шаблоны на английском |
Контент доступен для автоматического перевода ИИ ml-ai-translatable | да | движок | статьи — обычные Markdown-файлы; в рабочем проекте их переводит скрипт через Gemini |
| Статьи, навигация и поиск | |||
Управление боковым меню sidebar-control | нет | тема | показывает только текущий раздел; скрыть статью или рубрику параметром нельзя; отключить меню на странице нельзя; вложенность до 4 уровней |
Оглавление статьи toc-control | да | тема | справа от статьи, на телефоне — выпадающим списком; отключается на странице параметром toc: false; глубина — настройкой Hugo; подписи на английском |
Перелинковка как в DokuWiki internal-links | доработка | тема | обычные ссылки Markdown; в теме есть обработчик ссылок, который находит битые внутренние ссылки (уровень ошибки настраивается) |
Таксономии (теги, рубрики, свои классификаторы) taxonomies | доработка | тема | шаблонов для тегов и рубрик в теме нет, в статье теги не выводятся; страницы списков строит сам Hugo в общем шаблоне |
Поиск по сайту site-search | доработка | тема | по умолчанию ищет только в разделе /docs/; для своих разделов — параметр searchSectionsIndex. Индекс с полным текстом всех статей вшит в HTML каждой страницы |
Гибкость поиска search-replaceable | доработка | тема | замена: настройкой на Algolia DocSearch (внешний сервис), Pagefind — только своими копиями шаблонов; языки: любые, формы слов не понимает; где искать: не настраивается, всегда весь текст |
Подсветка кода code-highlight | да | тема | Prism в браузере, 297 языков подгружаются по мере надобности, кнопка «копировать», выделение строк; можно переключить на подсветку самим Hugo (prism = false) |
Пошаговые инструкции content-steps | нет | тема | блока «шаги» нет; есть alert, tabs, table, katex |
Свой код в шаблоны без правки темы (Inject Partials) theme-inject-partials | нет | тема | заготовок для своего кода (в head, до и после статьи) нет — только копировать шаблоны темы |
Генерация страниц из данных (pSEO) data-pages | да | движок | module.mounts: data/products → content/cms, data/*.yaml → hugo.Data, без копирования |
| SEO | |||
title, description и OG на уровне записи seo-meta проверить ↗ | да | тема | title, description, Open Graph; тема сама генерирует картинку-карточку для og:image |
Микроразметка schema.org seo-schema | доработка | тема | хлебные крошки размечены BreadcrumbList; Article в JSON-LD нет, заготовки для своего кода в head нет |
| Хранение и окружение | |||
Работает без сервера БД no-db | да | движок | SSG, контент в Markdown и YAML |
Работает в окружении Nginx + PHP-FPM 8.5 runtime-php | да | движок | PHP не нужен: Nginx отдаёт статику |