2017-01-15 14 views
2

В настоящее время я работаю над своим первым сайтом Jekyll. У меня есть страница, в которой две отдельные секции отображают превью некоторых сообщений (эскиз в стиле).Вытягивание из определенных подпапок с использованием {% для сообщения в site.posts%}

Я хочу, чтобы эти разделы отображали сообщения из разных подпапок в _site/_posts. Я организовал _posts, чтобы содержать две подпапки,/lesplannen и/verslagen (планы уроков и отчеты), каждая из которых содержит кучу статей.

Мой код для одного из этих разделов следующим образом (Jade форматирования):

{% for post in site.posts limit: 4 %} 
    a(href="{{post.url}}" target="_blank" style="background-image: url(assets/img/posts/lesplannen/thumbnails/{{post.thumbnail}})").lesplan-thumb 
     .article-meta 
     .name {{post.title}} 
     .date {{ post.date | date: "%b %d, %Y" }} 
    {% endfor %} 

И точно так же для другой секции. Мой первый инстинкт состоял в том, чтобы изменить сайт site.posts на site.posts.lesplannen и site.posts.verslagen, но это привело к тому, что большие пальцы не отображались вообще. Я также добавил категории в передний предмет в самих статьях, но это тоже не было подобрано.

Для ясности, что я пытаюсь сделать, это сообщение раздела 1 дисплей от _site/_posts/вложенной 1 и раздел 2 отображения сообщений от _site/_posts/подпапки 2.

Что бы быть правильный путь идти об этом?

Вопрос на бонусные баллы: на странице отображаются 4 сообщения, как и ожидалось, но выбирается для отображения сообщений с 6 по 9 из 12 сообщений. Почему это и я могу указать, например, всегда отображать последние сообщения x?

Для справки:
GitHub страницы: https://zaena.github.io/portfolio-nadine/
GitHub репо: https://github.com/Zaena/portfolio-nadine

+0

Вот еще некоторая информация, которая может помочь с проблемой заказа: http://stackoverflow.com/questions/26196559/jekyll-post-order –

ответ

1

На сайте есть несколько вопросов:

Структура папок сообщений неправильно

Сообщения должны всегда находиться в папке _posts, они не могут быть в другой папке (Джекил может отображать их, но некоторые функциональность теряется, они не должны быть там)

Если категории папки, они не могут начинаться с символа подчеркивания (_)

фактический structu вновь имеет категории, определенные как /_verslagen, они должны быть /verslagen и его сообщения в /verslagen/_posts

Имея ту же должность в двух разных папках имеет неожиданное поведение

Есть сообщения, расположенные в разных папках, только одна версия должна существовать.

Решение

Структура вы ищете:

├── index.html 
├── lesplannen 
│   └── _posts 
│    ├── 2016-12-10-dit-is-een-lesplan2.md 
│    ├── 2016-12-10-dit-is-een-lesplan3.md 
│    ├── 2016-12-10-dit-is-een-lesplan4.md 
│    └── 2016-12-10-dit-is-een-lesplan.md 
└── verslagen 
    └── _posts 
     ├── 2016-12-10-dit-is-een-verslag10.md 
     ├── 2016-12-10-dit-is-een-verslag11.md 
     ├── 2016-12-10-dit-is-een-verslag12.md 
     ├── 2016-12-10-dit-is-een-verslag2.md 
     ├── 2016-12-10-dit-is-een-verslag3.md 
     ├── 2016-12-10-dit-is-een-verslag4.md 
     ├── 2016-12-10-dit-is-een-verslag5.md 
     ├── 2016-12-10-dit-is-een-verslag6.md 
     ├── 2016-12-10-dit-is-een-verslag7.md 
     ├── 2016-12-10-dit-is-een-verslag8.md 
     ├── 2016-12-10-dit-is-een-verslag9.md 
     └── 2016-12-10-dit-is-een-verslag.md 

Это сделает сообщения доступны для каждой категории в site.categories.verslagen и site.categories.lesplannen.

Затем код, чтобы показать каждое сообщение категории выглядит следующим образом:

{% for post in site.categories.verslagen %} 
<p>{{post.title}}</p> 
<p>{{ post.date | date: "%b %d, %Y" }}</p> 
<p>{{post.thumbnail}}</p> 
{% endfor %} 

{% for post in site.categories.lesplannen %} 
<p>{{post.title}}</p> 
<p>{{ post.date | date: "%b %d, %Y" }}</p> 
<p>{{post.thumbnail}}</p> 
{% endfor %} 
+0

Я получаю то, что вы говорите! Я реализую это и вернусь к вам. Благодарим вас за подробный комментарий. –

+0

Это сработало! Оба раздела отображают соответствующий контент. Спасибо, что нашли время, чтобы прояснить это, я понимаю, что Jekyll немного лучше сейчас :) –

+0

Ницца, удачи;) – marcanuy

0

Вот как я получил их отображение отдельно:

index.html

--- 
--- 

<p>Posts in dir-a:</p> 

<ul> 
    {% for post in site.posts %} 
     {% assign first_dir = post.path | remove_first: "_posts/" | split: "/" | first %} 
     {% if first_dir == 'dir-a' %} 
      <li> 
       <a href="{{ post.url }}">{{ post.title }}: {{ post.date | date: "%b %d, %Y" }}</a> 
      </li> 
     {% endif %} 
    {% endfor %} 
</ul> 

<p>Posts in dir-b:</p> 

<ul> 
    {% for post in site.posts %} 
     {% assign first_dir = post.path | remove_first: "_posts/" | split: "/" | first %} 
     {% if first_dir == 'dir-b' %} 
      <li> 
       <a href="{{ post.url }}">{{ post.title }}: {{ post.date | date: "%b %d, %Y" }}</a> 
      </li> 
     {% endif %} 
    {% endfor %} 
</ul> 

Это предполагает следующий каталог структура:

/_posts 
/_posts/dir-a 
/_posts/dir-b 

Должно быть красивым и легким в соответствии с вашими потребностями.

+0

Привет, Билал, большое спасибо за ваш ответ. К сожалению, моя страница настаивает на отображении сообщений 6-9 из dir_a, несмотря на указание dir_b. Для простоты я загрузил скриншот кода: [Снимок экрана] (http://i.imgur.com/3IG2aCr.jpg). Можете ли вы заметить какие-либо ошибки, которые я сделал? Еще раз спасибо за ваше время. –

+0

Хорошо, я не вижу ничего очевидного на скриншоте, поэтому я не уверен, почему он так себя ведет. Быстрая проверка работоспособности: восстановили ли вы сайт с момента изменения кода? Если у вас есть, то можете ли вы направить свой сайт в ветку разработки вашего репозитория GitHub, чтобы я мог проверить его и попытаться воспроизвести проблему? Кроме того, какую версию Jekyll вы используете ('jekyll --version')? –

+0

После пробной ошибки я получил отступ справа (что было важно, так как я использую Jade). Тем не менее, статьи из dir_a теперь отображаются хорошо, но те из dir_b вообще не отображаются. Код идентичен. У вас есть понимание? –

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

  • Нет связанных вопросов^_^