.txt
file in Notepad, we will be using plain-text
as the markup. But say we want to get more advanced, and add things like bold text or italic text to our content, then we could use a markup like Microsoft Word (.doc)
, Rich Text Format (.rtf)
or simply Markdown (.md)
or HTML (.html)
. These markups allow us to express our content with rich formatting.**bold**
, where in HTML it is <strong>bold</strong>
. The markup that you choose for your content is highly dependent on what content you'd like to write. If you're mostly dealing with structural data (like a page layout) then HTML
, Jade
, Haml
, or CoffeeKup
would be a good way to go. If you're mostly dealing with textual data (like a blog post) then Markdown
would probably the way to go.img
to jpg
or binary-text formats like doc
to rtf
(they're not plain-text formats like txt
, docx
, or xml
but in fact binary formats) does not currently work. We will be addressing this in a future release of DocPad..eco
at the end of your file (e.g., my-blog-post.html.eco
). It doesn't have to be at the end, but it mustn't be the first extension (as the first extension is what you are rendering to)..html.eco
means process this with Eco and render it as HTML. Alternatively, we can get pretty inventive and do something like this: .html.md.eco
which means process this with Eco, then Markdown and finally render it as HTML.findAllLive
?findAll
and the second is findAllLive
.findAll
does a once-off scan of all the models in the collection that matches the criteria and returns the result in a new Backbone Collection, pretty standard stuff.findAllLive
creates a new child collection with the original collection as the parent, the new child collection then listens to the change events of the parent, and will automatically test the changes against the child collection's criteria. This is incredibly efficient for long running collections, where data changes over time.findAllLive
for short-lived collections (especially in your templates). It will cause more and more and more child collections and listeners to be created and added, causing a memory leak and unexpected results.findAllLive
when defining long-running custom collections. Typical use cases are via the collections
property of your docpad configuration file, or via the extendCollections
event within your plugin.findAll
when you are needing once-off/short-living collections. Typical use cases are inside your templates or inside other events within your plugin.renderPasses
configuration option for each amount of cross document references you have.src/render/404.html
for 404 pages, and src/render/500.html
for 500 pages. If you create a dynamic page (adding the dynamic: true
meta data header) your templating engine (e.g., 404.html.eco
) will also get access to req
(the request instance), res
(the response instance), err
(the error that occurred - for 500 errors pages only, not for 404 error pages). Allowing you to do something like this for src/render/500.html.md.eco
:<% your business logic %>
or to output a variable we can use <%=some variable%>
.templateData
. Check out the full listing of template data & helpers here.<%[email protected]%>
. The reason for the @
is because Eco associates the templateData
to the current scope, which with CoffeeScript (what Eco uses) you access by using the @
character.process.env
. DocPad also loads variables from a special environment file.docpad
command:--offline
option and see if that works. :)./cyclic.js
, what is this?