如何检测最后一个Docpad渲染通道?

时间:2013-06-18 16:24:36

标签: docpad

我正在编写一个小的Docpad插件,将文档contentRenderedWithoutLayouts输出到.html版本旁边的单独.json文件中,以便稍后通过ajax请求加载它。

该插件通过覆盖Baseplugin的渲染来工作:(opts) - >方法并做一些检查我们是否正在渲染文档和html。

我现在注意到,对于某些文档,这个方法被多次调用,这似乎与渲染通道相关。那么如何检测每个文档的最终渲染过程以避免每次渲染多次写入.json?

非常感谢

-

编辑: 在看了Docpads事件列表之后找到了答案:http://docpad.org/docs/events

writeAfter事件是获取最终数据并设置输出目录树的正确位置,因此我可以将.json文件放在.html旁边。

如果你有兴趣在这里找到插件:https://github.com/field/docpad-plugin-jsonfragment

1 个答案:

答案 0 :(得分:0)

另一种方法是使用serverExtend事件,并编写一个路由器来检测它是否是ajax请求(存在IS_XHR标头),然后从中发送必要的json数据那。这将要求您的托管平台支持node.js,因为您将使用docpad服务器。