2013-05-05 1 views
6

DocPad описывается как сопоставимый с другими статическими генераторами сайтов, но также описывается как «не ограничиваясь статическим созданием сайта».Статический и динамический контент в системе docpad - как создать динамический контент?

Я просматривал веб-сайт DocPad и другую документацию и еще не смог найти ничего, что могло бы объяснить, как включить динамический контент и какие ограничения могут быть задействованы?

Как относительный новичок, мне интересно, может ли кто-нибудь помочь мне лучше понять методологию, в соответствии с которой динамический контент будет включен в DocPad ...? например AJAX и динамических серверных сценариев для выполнения таких задач, как динамическая загрузка изображений с Flickr на веб-страницу при нажатии на определенный тег ...

Спасибо.

ответ

12

Таким образом, есть несколько способов DocPad облегчает динамическое содержание:

  1. Через regenerateEveryconfiguration option. Это позволит регенерировать ваш сайт так часто, как вы указываете. Это замечательно в сочетании с плагинами, такими как feedr для вытягивания данных из удаленных источников подачи (например, ваша последняя социальная активность), а также repocloner, который клонирует и сохраняет обновленный репозиторий git в вашем проекте. Преимущество этого варианта - это очень легко сделать и создает иллюзию динамичного веб-сайта. Например, Benjamin Lupton Website применяет этот метод, чтобы сохранить его статистику на домашней странице, а также социальные данные в боковой панели до настоящего времени. Каждый час он восстанавливается с последней информацией. Делать это быстро, а также призрачно динамично.

  2. Через dynamicmeta-data property. Когда установлено значение true, это сообщает серверу DocPad, что мы должны повторно отобразить этот документ для каждого запроса, а не только один раз. Это отлично работает внутри Kitchensink Skeleton для search pages и misc forms. Этот путь наиболее похож на PHP-разработку.

  3. Через serverExtendevent. Это событие позволяет подключать и расширять сервер DocPad, позволяя вам добавлять дополнительную логику на стороне сервера, обработку и т. Д. Обычными случаями использования являются добавление дополнительной маршрутизации на ваш сервер для обработки псевдонимов маршрутов, добавления обработки формы, например контакта формы или добавить интерфейс RESTULful для приложения Backbone.js. DocPad Website использует это значение для add extra routing and a regenerate post-receive hook for the documentation. NodeChat Skeleton использует это значение для add the Socket.io server-side logic.

  4. Через API. Этот способ наиболее востребован, но может быть весьма полезным, если вы просто хотите, чтобы DocPad был небольшой частью существующего приложения node.js. С этим вы можете создать экземпляр DocPad в своем коде и взаимодействовать с ним. Задача grunt-docs grunt использует это: