Stacey2
Partials
Partial templates separate out re-usable and repeatable blocks of html into their own files. They sit within the /templates/partials folder.
Stacey essentially flattens the folder structure within /templates/partials, so you can place your partial files within whatever subfolders make sense to you.
Partials can be referenced within a template by using a : followed by the filename of the partial template.
:images will be a reference to the /templates/partials/assets/images.html partial.
As with templates, partials do not need to be .html files. Stacey will recognise the following formats: .html, .json, .xml, .atom, .rss, .rdf & .txt
Partial Nesting
Partials references can also be nested within other partials. So, an example :media partial could contain:
/templates/partials/assets/media.html
if $images do :images endif if $video do :video endif
Where :images & :video are references to other partial files.
Recursive Partials
Partials can also include references to themselves, allowing you to recurse through nested objects (ie, walking down a tree of $children).
A more elegant solution to the nested foreach loop example would be to split the code into two partials and take advantage of recursion within the :children partial.
/templates/partials/navigation/navigation.html
<ol id="navigation"> foreach $root do <li><a href="@url">@page_name</a> :children </li> endforeach </ol>
/templates/partials/navigation/children.html
if $children do <ol> foreach $children do <li><a href="@url">@page_name</a> :children </li> endforeach </ol> endif