0

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

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

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

非常感谢

--

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

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

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

4

1 回答 1

0

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

于 2013-06-19T04:55:26.697 回答