2015-09-04 3 views
1

Я пытаюсь создать схему для имитации меню с прямой ссылкой на сообщение. Эта структура будет похожа на справочные руководства по темам или как структура глав книг.Как создать меню темы с Jekyll/Liquid

Проблема в том, как это сделать, я думал о создании структуры в config.yml, определяющей тег и заголовок для каждой темы и проверяя рекурсивно, если есть подтема. Я не думаю, что это самый правильный путь, но я создал такую ​​структуру:

http://pastebin.com/k07yPmAq

Как я путешествовал этот массив, печать названия и соответствующие сообщения эти теги?

Или есть лучший способ?

Обс: Это будет на GitHub, поэтому я не могу использовать плагины.

+0

Ты германский чувак, который живет в Бразилии: D? –

+0

Нет, мои бабушки и дедушки немецкие и приехали в Бразилию. :) –

ответ

0

Если вы не можете использовать плагины, единственным способом, который, как я знаю, является достижение этого цикла, - это цикл для каждого цикла. Вот пример:

<ul class="topics"> 
{% for topic in site.topics %} 
    <li> 
     <a title="{{topic.title}}" href="/tags/{{topic.tag}}">{{topic.title}}</a> 
     {% if topic.subtopics %} 
     <ul class="subtopics"> 
      {% for subtopic in topic.subtopics %} 
       <li> 
        <a title="{{subtopic.title}}" href="/tags/{{subtopic.tag}}">{{subtopic.title}}</a> 
        <!-- add another for if you have another level, and so on... --> 
       </li> 
      {% endfor %} 
     </ul> 
     {% endif %} 
    </li> 
{% endfor %} 
<ul> 

Я не думаю, что вы должны бояться по производительности, так как здесь вы собираете один раз «медленно», чтобы служить много раз «быстро».

P.s. Если вам не нужно создавать меню из файла конфигурации, вы всегда можете записать его непосредственно в html, внутри файла, например. _includes/navigation.html, а затем включить его из макетов, используя {% include navigation.html %}.

+0

Я решил использовать это решение, ty. :) –

+0

Добро пожаловать. – lifeisfoo

Смежные вопросы