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

咨询:为site.pages.content页面应用布局及MD渲染布局失效问题

解答

这是预期行为吗?

是的,这种情况完全符合Jekyll的工作逻辑。当你直接调用{{ subheader.content }}时,你只是输出了该页面经过Markdown渲染后的原始内容,并没有触发Jekyll的布局合并流程。

Jekyll处理页面的完整流程是:

  1. 解析页面的Markdown/HTML内容,转换成纯HTML;
  2. 将转换后的内容插入到页面指定布局模板的{{ content }}占位符中;
  3. 生成包含布局(头部、导航、页脚等)的完整HTML文件。

而你直接提取content属性,拿到的是第一步的结果,跳过了布局合并的步骤,所以自然看不到布局效果。


如何让布局生效?

有两种常用方法可以实现带布局的页面内容渲染:

方法1:使用render标签(推荐,Jekyll 3.2+支持)

Jekyll的render标签会完整触发页面的渲染流程,包括应用它指定的布局。用法如下:

{% assign subheader = site.pages | where: "title", "subheader" | first %}
{% render subheader %}

这样输出的就是subheader页面包含完整布局的全部内容。

方法2:手动调用布局模板(兼容旧版本Jekyll)

如果你使用的Jekyll版本不支持render标签,可以手动调用目标页面的布局模板,并将页面内容传递进去。假设subheader页面在Front Matter中指定的布局是subheader-layout,可以这样写:

{% assign subheader = site.pages | where: "title", "subheader" | first %}
{% include subheader-layout.html content=subheader.content %}

注意:这种方法需要你明确知道目标页面使用的布局文件名,且布局模板中是通过{{ content }}来接收内容的。


内容的提问来源于stack exchange,提问作者Vladyslav Zavalykhatko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:03