1

リスト ドキュメントと一連の投稿 (フィルター処理されたコレクション) を含むDocPadを使用してブログを作成しているとします。リストには、 を使用して各投稿のコンテンツの先頭が表示されますdocument.contentRenderedWithoutLayouts。(どのように?) リストをレンダリングする前に、DocPad はすべての投稿がレンダリングされることを確認しますか?

クイック デバッグを実行するとdocpad -d --env static run、新しい投稿がレンダリングされるたびにリストがレンダリングされることが示唆されます。それは正しいですか?

循環があれば?投稿の 1 つがリストの を必要としているとし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 に答える