2013-05-05 141 views
6

DocPad被描述爲可與其他靜態站點生成器進行比較,但它也被描述爲「不限於靜態站點生成」。docpad系統中的靜態與動態內容 - 如何創建動態內容?

我一直在瀏覽DocPad網站和其他文檔,還沒有找到任何似乎解釋如何合併動態內容的東西,以及可能涉及哪些類型的限制?

作爲一個相對的初學者,我想知道是否有人可以幫助我更好地理解動態內容將被納入DocPad的方法......?例如AJAX和動態服務器端腳本,用於在點擊某個標籤時將圖片從Flickr動態加載到網頁中...

謝謝。

回答

12

因此,有幾個方法DocPad利於動態內容:

  1. 經由regenerateEveryconfiguration option。這將每隔指定時間重新生成一次您的網站。與feedr等插件結合用於從遠程供稿源(例如最近的社交活動)中提取數據時,以及repocloner這些插件可以克隆並保持項目中最新的git存儲庫,這非常棒。這個選項的好處是它很容易做到,並提供了一個動態網站的幻想。例如,Benjamin Lupton Website將應用此方法來保持主頁上的統計數據以及側欄中的社交數據保持最新。它每小時都會重新生成最新的信息。讓它變得快速,而且也是虛幻的動態。通過dynamicmeta-data property。當設置爲true這告訴DocPad服務器,我們應該在每個請求上重新呈現該文檔,而不是僅僅一次。這適用於search pagesmisc formsKitchensink Skeleton。這種方式與PHP開發最相似。通過serverExtendevent。此事件允許您掛接並擴展DocPad服務器,允許您添加額外的服務器端邏輯,處理等。常見用例是向服務器添加額外路由以處理路由別名,添加表單處理,如聯繫人表單,或爲Backbone.js應用程序添加RESTfulful接口。 DocPad Website將其用於add extra routing and a regenerate post-receive hook for the documentationNodeChat Skeleton將此用於add the Socket.io server-side logic

  2. 通過API。這種方式是涉及最多的,但如果您只希望DocPad成爲現有node.js應用程序的一小部分,則可能會帶來相當大的回報。有了這個,你可以在你的代碼中創建一個DocPad實例並與之交互。 grunt-docs咕task任務利用此:)