You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jekyll首页表格中展示指定页面的Front Matter数据?

实现站点页面Front Matter信息在首页表格展示的方案

嘿,这个需求在静态站点搭建里其实挺常见的,我给你拆解下具体怎么实现,以最常用的Jekyll为例(其他生成器思路类似,只是语法略有不同):

1. 给目标页面添加识别标记(可选但推荐)

为了避免把所有页面都塞进表格,你可以给需要展示的页面在Front Matter里加个专属标记,比如show_on_home: true。举个例子,某个页面的Front Matter会是这样:

---
title: "用户指南"
status: "已发布"
show_on_home: true
---

2. 在首页模板中编写循环渲染逻辑

打开首页的模板文件(一般是index.html或者index.md),用Liquid模板语法编写表格和循环逻辑,自动拉取符合条件的页面信息:

<table>
  <tr>
    <th>Page title</th>
    <th>Page status</th>
  </tr>
  {% for page in site.pages %}
    {% if page.show_on_home %}
    <tr>
      <td>{{ page.title }}</td>
      <td>{{ page.status }}</td>
    </tr>
    {% endif %}
  {% endfor %}
</table>

3. 自定义筛选规则(按需调整)

如果你不想加标记,而是想按特定目录/类型筛选页面,比如只展示_docs目录下的文档,直接修改循环对象就行:

<table>
  <tr>
    <th>Page title</th>
    <th>Page status</th>
  </tr>
  {% for page in site.docs %}
  <tr>
    <td>{{ page.title }}</td>
    <td>{{ page.status }}</td>
  </tr>
  {% endfor %}
</table>

4. 其他静态站点生成器的适配(比如Hugo)

如果用的是Hugo,语法会换成Go模板风格,思路还是一样的:

<table>
  <tr>
    <th>Page title</th>
    <th>Page status</th>
  </tr>
  {{ range where .Site.Pages ".Params.show_on_home" true }}
  <tr>
    <td>{{ .Title }}</td>
    <td>{{ .Params.status }}</td>
  </tr>
  {{ end }}
</table>

注意事项

  • 确保所有目标页面的Front Matter里都有title和status字段,不然表格对应位置会显示为空;
  • 如果站点有分页或者特殊页面(比如404),记得在筛选条件里排除掉,避免干扰表格内容。

内容的提问来源于stack exchange,提问作者Andrei Deinichenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:42:32