1

假设我正在使用DocPad构建一个博客,其中包含一个列表文档和一堆帖子(在过滤的集合中)。清单显示每篇文章内容的开头,使用document.contentRenderedWithoutLayouts. (如何?)DocPad 是否确保在呈现列表之前呈现所有帖子?

快速调试运行docpad -d --env static run建议每次呈现新帖子时都会呈现列表。这对吗?

如果有循环呢?说其中一个帖子想要列表的contentRenderedWithoutLayout

4

1 回答 1

3

:) 这就是 DocPad 变得超级聪明的地方 :)

每当您执行模板助手调用以获取不属于您自己的文档时,我们都会注意到这一点并将referencesOthers 元数据属性设置为 true。然后我们继续渲染所有不引用其他文档的文档,然后渲染所有引用其他文档的文档。

这也是为什么当您修改布局时,我们会重新生成所有使用它的文档。与您修改博客文章一样,我们还将重新生成该博客文章的所有列表。

如果您有循环引用,我们将通知您发生了此类事件,并建议您增加renderPasses 配置属性以确保它呈现足够的时间以发挥作用。

渲染通道背后的确切代码在这里:https ://github.com/bevry/docpad/blob/v6.32.0/src/lib/docpad.coffee#L2567-L2579

于 2013-05-06T07:17:05.080 回答