docpad系统中的静态与动态内容 - 如何创建动态内容?

时间:2013-05-05 23:01:04

标签: ajax dynamic static docpad

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

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

作为一个相对初学者,我想知道是否有人可以帮助我更好地理解将动态内容整合到DocPad中的方法......?例如AJAX和动态服务器端脚本,用于在点击某个标签时动态将图片从Flickr加载到网页中......

感谢。

1 个答案:

答案 0 :(得分:12)

因此,DocPad可以通过几种方式促进动态内容:

  1. 通过regenerateEvery configuration option。这将按照您指定的频率重新生成您的网站。当与feedr等插件结合使用以从远程供稿源(如您最新的社交活动)中提取数据时,以及repocloner克隆并在项目中保持最新的git存储库时,这非常棒。这个选项的好处是它很容易做到,并提供动态网站的幻觉。例如,Benjamin Lupton Website应用此方法来保持主页上的统计信息,以及最新的侧边栏中的社交数据。每小时它都会根据最新信息进行再生。使它快速,而且动态不明显。

  2. 通过dynamic meta-data property。当设置为true时,这告诉DocPad服务器我们应该在每个请求上重新呈现该文档,而不是仅仅一次。这适用于Kitchensink Skeletonsearch pagesmisc forms内部。这种方式与PHP开发最相似。

  3. 通过serverExtend event。此事件允许您挂钩和扩展DocPad服务器,允许您添加额外的服务器端逻辑,处理等。常见的用例是向服务器添加额外的路由以处理路由别名,添加表单处理(如联系人)表单,或为Backbone.js应用程序添加RESTULful接口。 DocPad Website将此用于add extra routing and a regenerate post-receive hook for the documentationNodeChat Skeleton使用此add the Socket.io server-side logic

  4. 通过API。这种方式涉及最多,但如果您希望DocPad成为现有node.js应用程序的一小部分,则可能非常有益。有了这个,您可以在代码中创建DocPad实例并与之交互。 grunt-docs grunt任务使用此:)