2016-10-12 2 views
1

Чтобы установить сцену, у меня есть информация об авторе, хранящаяся в каталоге.json, внутри моей папки Jekyll _data.Сравните данные из разных файлов Jekyll_data

"name": "Brandon Bellew", 
    "bio": "Brandon Bellew is a great writer.", 
    "email": "[email protected]", 
    "specialties": "introspection, ventilation systems, memorization, post-prandial revelry", 
    "photo": "http://www.tpgweb2.net/headshots/thumbs/brandon-b-thumb-2.jpg" 

Я также информация хранится в статье catalogue.json, а также в моем Джекиле _data папки

"name": "Beginner's Guide to Google Analytics", 
    "author": "Brandon Bellew", 
    "date": "May 18 2016", 
    "description": "The Google Analytics (GA) dashboard is quite intuitive, and it's easy to collect basic information (number of users on the site, average time spent on site, etc.) without having a deep background in analytics. But what about specifics?", 
    "category": "Analytics" 

Я пытаюсь перебрать все статьи в моем файле catalogue.json и дисплее, статью, но вытащите фотографию из правильного автора в мой файл directory.json.

В сущности, я пытаюсь его заставить: если «автор» статьи в каталоге соответствует «имени» автора в элементе каталога, отобразите фотографию, связанную с этим автором. Таким образом, мне не нужно хранить фотографию автора в отдельном элементе для каждой статьи, которую они пишут.

Вот моя неудавшаяся попытка потянув фотографии из правильного автора в каталоге:

<h4>Articles</h4> 
    {% for item in site.data.catalogue %} 
     {% for item in site.data.directory %} 
     {% if item.name == page.author %} 
     <img src="{{ item.photo }}" > 
     {% endif %} 
     {% endfor %} 
    {% endfor %} 

Возможно ли это с помощью Джекил или есть другой способ мне нужно структурировать?

ответ

1

Я считаю, что удаление дубликатов item ссылки будет исправить текущий код:

{% for catalogue in site.data.catalogue %} 
    {% for item in site.data.directory %} 
    {% if item.name == catalogue.author %} 
     <img src="{{ item.photo }}" > 
    {% endif %} 
    {% endfor %} 
{% endfor %} 

Вы можете структурировать каталог автора, так что вы можете получить доступ к дополнительной информации, без перебора каждого автора.

authors.json:

{ 
    "Fred Flintstone": { 
     "bio": "Doesn't wear shoes" 
     "image": "/images/fred.png" 
    } 
} 

Тогда вы могли бы доступ к изображению, как это (вы могли бы улучшить это, чтобы проверить, если автор существует):

{% for catalogue in site.data.catalogue %} 
    <img src="{{ site.data.authors[catalogue.author].photo }}" > 
{% endfor %} 
0

Вы можете использовать фильтр where например:

{% for article in site.data.catalogue %} 
    {% assign author = site.data.directory | where: 'name', article.author | first %} 
    {% if author %}<img src="{{ author.photo }}" >{% endif %} 
    {% endfor %} 
{% endfor %} 
Смежные вопросы