首页 > 解决方案 > 在 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>

标签: htmljekyll

解决方案


您可以使用Jekyllsite.pages的 Liquid 过滤器从集合中获取特定页面。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>

推荐阅读