Весь контент сайта по математике определяется расположением файлов и папок. А потом эти файлы сканируются и автоматически составляется навигация сайта. Поддерживается неограниченная вложенность материала. 2 дня ушло. Как же я намучался с рекурсиями... Но оно работает!
Каким образом рекурсии применяли и описывали при реализации?
Сначала рекурсивно создается сам объект навигации, который учитывает миллиард ограничений (например, чтобы не было пустых групп и прочего), а также учитывает возможность пропустить часть названий для более коротких URL.
Потом уже из готового дерева навигации рекурсивно можно создавать под-деревья навигации: глобальную (до учебников не включая их навигацию) и по отдельной подгружаемой навигации для каждого учебника.
Дальше рекурсивно на фронте по этим поддеревьям создается уже видимая навигация.
Ну и наконец рекурсивным образом определяется активный в текущий момент элемент и весь путь до него, ведь надо подсветить как сам элемент, так и открыть + подсветить любые группы, частью которых он является.
И все это разные рекурсии. Я ебанулся, пока все это делал)