假设我正在使用DocPad构建一个博客,其中包含一个列表文档和一堆帖子(在过滤的集合中)。清单显示每篇文章内容的开头,使用document.contentRenderedWithoutLayouts
. (如何?)DocPad 是否确保在呈现列表之前呈现所有帖子?
快速调试运行docpad -d --env static run
建议每次呈现新帖子时都会呈现列表。这对吗?
如果有循环呢?说其中一个帖子想要列表的contentRenderedWithoutLayout
?
假设我正在使用DocPad构建一个博客,其中包含一个列表文档和一堆帖子(在过滤的集合中)。清单显示每篇文章内容的开头,使用document.contentRenderedWithoutLayouts
. (如何?)DocPad 是否确保在呈现列表之前呈现所有帖子?
快速调试运行docpad -d --env static run
建议每次呈现新帖子时都会呈现列表。这对吗?
如果有循环呢?说其中一个帖子想要列表的contentRenderedWithoutLayout
?
:) 这就是 DocPad 变得超级聪明的地方 :)
每当您执行模板助手调用以获取不属于您自己的文档时,我们都会注意到这一点并将referencesOthers
元数据属性设置为 true。然后我们继续渲染所有不引用其他文档的文档,然后渲染所有引用其他文档的文档。
这也是为什么当您修改布局时,我们会重新生成所有使用它的文档。与您修改博客文章一样,我们还将重新生成该博客文章的所有列表。
如果您有循环引用,我们将通知您发生了此类事件,并建议您增加renderPasses
配置属性以确保它呈现足够的时间以发挥作用。
渲染通道背后的确切代码在这里:https ://github.com/bevry/docpad/blob/v6.32.0/src/lib/docpad.coffee#L2567-L2579