DocPad被描述为与其他静态站点生成器可比,但是它也被描述为“不限于静态站点生成”。

我一直在浏览DocPad网站和其他文档,却找不到任何似乎可以解释如何合并动态内容的内容,以及可能涉及哪些类型的限制?

作为一个相对入门的人,我想知道是否有人可以帮助我更好地理解将动态内容合并到DocPad中的方法...?例如AJAX和动态服务器端脚本,用于执行诸如单击特定标签时将图片从Flickr动态加载到网页中的操作...

谢谢。

最佳答案

因此,DocPad有几种促进动态内容的方式:

  • 通过regenerateEvery configuration option。您指定的每隔一次就会重新生成您的网站。当与feedr之类的插件结合使用以从远程feed源(如您的最新社交 Activity )中提取数据时,这非常有用,而repocloner可以克隆并保持git存储库在项目中的最新状态。此选项的好处是它确实很容易实现,并提供了动态网站的错觉。例如,Benjamin Lupton Website应用此方法以使其在主页上的统计信息以及侧边栏中的社交数据保持最新。每小时都会使用最新信息进行重新生成。使其快速运行,并且具有动态效果。
  • 通过dynamic meta-data property。当设置为true时,这告诉DocPad服务器,我们应该在每个请求上重新呈现该文档,而不是一次。这对于Kitchensink Skeletonsearch pagesmisc forms内部非常有效。这种方式最类似于PHP开发。
  • 通过serverExtend event。此事件使您可以 Hook 并扩展DocPad服务器,从而允许您添加额外的服务器端逻辑,处理等。常见用例是向服务器添加额外的路由以处理路由别名,并添加表单处理(例如联系人)表单,或为Backbone.js应用程序添加RESTULful接口(interface)。 DocPad Website使用它来add extra routing and a regenerate post-receive hook for the documentationNodeChat Skeleton使用它来add the Socket.io server-side logic
  • 通过API。这种方式涉及最多,但是如果您只是希望DocPad成为现有node.js应用程序的一小部分,那么它可能会非常有意义。这样,您可以在代码中创建DocPad实例并与其进行交互。 grunt-docs grunt任务利用了这个:)
  • 09-27 03:01