Получить исходные данные определенных страниц в таблицу в Jekyll

#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>