Я строю навигацию для своего сайта Jekyll (который будет размещен на страницах GitHub). Это включает 3 части:
- Главное дерево навигации
- Панировочные сухари на каждой странице
- Список дочерних страниц, если таковые имеются, на каждой странице
Страницы сайта могут иметь глубину 3-4 уровня. Хотя сначала я создавал скрипт для динамического построения навигации, сейчас я экспериментирую с определением навигации в файле данных yaml. Вот пример файла данных с именем menu.yml:
- link: fruit
menu:
- link: bananas
- link: kiwi
- link: apples
menu:
- link: red-delicious
- link: gala
- link: watermelon
- link: shapes
menu:
- link: circle
- link: square
- link: triangle
Каждая страница имеет переменную "link", определенную в начале статьи.
Мой вопрос: Каков наилучший способ извлечения предков и потомков, знающих переменную «link» для данной страницы (скажем, «apple», например).
В настоящее время я перебираю каждый элемент (и каждое меню для каждого элемента), чтобы найти совпадение. Это работает, но меня беспокоит время создания страницы, так как я должен сделать это для каждой страницы как минимум 3 раза. На этом сайте размещена документация объемом от 500 до 1000 страниц. И мне просто любопытно узнать, является ли это лучшим способом. С моей точки зрения кажется, что для этого была бы встроенная функция (либо через Jekyll, либо через Liquid). Или есть лучший способ сделать это динамически, без файла данных yaml? Любая помощь приветствуется!