Написал гибкую древовидную навигацию для сайта

Весь контент сайта по математике определяется расположением файлов и папок. А потом эти файлы сканируются и автоматически составляется навигация сайта. Поддерживается неограниченная вложенность материала. 2 дня ушло. Как же я намучался с рекурсиями... Но оно работает!

1818
22
11

Каким образом рекурсии применяли и описывали при реализации?

Ответить

Сначала рекурсивно создается сам объект навигации, который учитывает миллиард ограничений (например, чтобы не было пустых групп и прочего), а также учитывает возможность пропустить часть названий для более коротких URL.

Потом уже из готового дерева навигации рекурсивно можно создавать под-деревья навигации: глобальную (до учебников не включая их навигацию) и по отдельной подгружаемой навигации для каждого учебника.

Дальше рекурсивно на фронте по этим поддеревьям создается уже видимая навигация.

Ну и наконец рекурсивным образом определяется активный в текущий момент элемент и весь путь до него, ведь надо подсветить как сам элемент, так и открыть + подсветить любые группы, частью которых он является.

И все это разные рекурсии. Я ебанулся, пока все это делал)

1
Ответить