从模板渲染页面 object

Render a Page object from a template

在 Lektor 网站中,我遇到了以下问题:

现在的问题是:如何在 facts.html 中呈现这些 child 页面?

我知道这可以通过将 fact.html 模板转换为可以从 facts.html 调用的宏来实现,但我希望有一种更优雅的方法来实现相同的结果。

页面 objects 是否有类似 render 的方法?

我不能完全理解你的设置。您说您有一个 .facts 类型的属性。但是,您对 /facts 执行查询以获取其子项,这表明这些是 sub-pages 而不是流块。所以..我不确定你想达到什么目的,但是:

您可以拥有 flow-blocks 的模板文件,您只需将它们放在例如 templates/blocks/fact.html 中即可。如果这样做,您可以只打印出流属性本身 (<div>{{ this.facts }}</div>),并且所有个体 flow-blocks 都将使用流块模板绘制。

编辑:

您要求将另一个(完整)页面模板显示为 flow-block 类型:

{% set other = site.get('/projects') %}
{{ site.env.render_template('facts.html', pad=other.pad, this=other)|safe }}