在 Jekyll 中获取特定页面的 front matter 数据到 table

Get front matter data of specific pages into table in Jekyll

我想从我的一些网站页面的前端({{ page.title }}{{ page.status }})获取一些信息到我的索引页面上的 table。

我应该怎么做?

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

您可以从 Jekyll 的 site.pages collection with the Liquid filter where 中获取特定页面。

假设我有一个页面 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>