我正在编写一个小的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
答案 0 :(得分:0)
另一种方法是使用serverExtend
事件,并编写一个路由器来检测它是否是ajax请求(存在IS_XHR
标头),然后从中发送必要的json数据那。这将要求您的托管平台支持node.js,因为您将使用docpad服务器。