6

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

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

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

谢谢。

4

1 回答 1

12

所以有几种方式 DocPad 促进动态内容:

  1. 通过regenerateEvery 配置选项。这将每隔您指定的频率重新生成您的网站。当与feedr等插件结合使用时,这非常棒,用于从远程 feed 源(如您的最新社交活动)中提取数据,以及repocloner克隆出来并在您的项目中保持 git 存储库是最新的。这个选项的好处是它真的很容易做并且提供了一个动态网站的错觉。例如,Benjamin Lupton 网站应用这种方法来保持主页上的统计信息以及侧边栏中的社交数据是最新的。每小时都会使用最新信息重新生成。让它变得快速,而且充满活力。

  2. 通过dynamic 元数据属性。当设置为true这个时,告诉 DocPad 服务器我们应该在每个请求上重新渲染该文档,而不是只渲染一次。这在Kitchensink Skeleton中非常适用于搜索页面和其他表单。这种方式最类似于 PHP 开发。

  3. 通过serverExtend 事件。此事件允许您连接和扩展 DocPad 服务器,允许您添加额外的服务器端逻辑、处理等。常见的用例是向您的服务器添加额外的路由以处理路由别名,添加表单处理,例如联系人表单,或为 Backbone.js 应用程序添加 RESTULful 接口。DocPad 网站使用它来为文档添加额外的路由和重新生成接收后挂钩。NodeChat骨架使用它来添加 Socket.io 服务器端逻辑

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

于 2013-05-06T00:17:37.137 回答