#html #jekyll
#HTML #jekyll
Вопрос:
Я хочу получить некоторую информацию из исходных данных ( {{ page.title }}
и {{ page.status }}
) для некоторых страниц моего сайта в таблицу на моей индексной странице.
Как я должен это сделать?
<table>
<tr>
<td>Page title</td> <td>Page status</td>
</tr>
<tr>
<td>{{ page-name-1.title }}</td><td>{{ page-status-1.status }}</td>
</tr>
<tr>
<td>{{ page-name-2.title }}</td><td>{{ page-status-2.status }}</td>
</tr>
</table>
Ответ №1:
Вы можете получить конкретную страницу из site.pages
коллекции с помощью жидкостного фильтра where
Jekyll.
Учитывая, что у меня есть страница foo.md с помощью этого исходного материала:
---
title: foo
status: bar
---
Затем это:
<table>
<tr>
<td>Page title</td>
<td>Page status</td>
</tr>
{% assign page_info = site.pages | where: 'name', 'foo.md' %}
<tr>
<td>{{ page_info[0].title }}</td>
<td>{{ page_info[0].status }}</td>
</tr>
</table>
Будет отображаться как
<table>
<tr>
<td>Page title</td>
<td>Page status</td>
</tr>
<tr>
<td>foo</td>
<td>bar</td>
</tr>
</table>
Просто повторите это для любой страницы, которая вас интересует:
{% assign pages_info = 'foo.md,index.md' | split: ',' %}
<table>
<tr>
<td>Page title</td>
<td>Page status</td>
</tr>
{% for page_name in pages_info %}
{% assign page_info = site.pages | where: 'name', page_name %}
<tr>
<td>{{ page_info[0].title }}</td>
<td>{{ page_info[0].status }}</td>
</tr>
{% endfor %}
</table>