We did the same with guillermo but we are bullet profing the code before
announcing it.
Stef
Le 20/5/15 21:45, Norbert Hartl a écrit :
I've found some minutes today to play with pillar and mustache. I wanted to
know how far I can go when doing some static site generation. The exercise was
to simulate a page that has multiple components either in mustache or pillar
format. I could do this
| masterTemplate masterPillar masterDocument partialPillar partialTemplate
finalPillar |
masterTemplate := '<master>
<head>{{{title}}}</head>
<masterContent>
{{{content}}}
</masterContent>
</master>'.
masterPillar := '{{title: This is the title of the master!}}
!masterheading
This text is contained in the master pillar template
{{{{{>phase2Template}}}}}'.
partialPillar := '!{{{{{{title}}}}}}
Some text in the partial template before the content...
{{{{{{content}}}}}}}
... and after'.
finalPillar := 'I''m a text in pillar format that was inserted in a partial
mustache template generated from pillar that was inserted in a mustache master
template in pillar format that was inserted in a master mustache template'.
masterDocument := PRDocumentParser parse: masterPillar readStream.
partialTemplate := PRHTMLWriter write: (PRDocumentParser parse: partialPillar
readStream).
phase1Result := masterTemplate asMustacheTemplate
value: masterDocument properties, {
'content' -> (PRHTMLWriter write: masterDocument) }
asDictionary.
phase2Result := phase1Result asMustacheTemplate
value: {
'title' -> 'A partial title'.
'content' -> (PRHTMLWriter write: (PRDocumentParser parse:
finalPillar readStream)) } asDictionary
partials: {
'phase2Template' -> partialTemplate } asDictionary.
and got
<master>
<head>This is the title of the master!</head>
<masterContent>
<h1>masterheading</h1>
<p>This text is contained in the master pillar template</p>
<p><h1>A partial title</h1>
<p>Some text in the partial template before the content...</p>
<p><p>I'm a text in pillar format that was inserted in a partial mustache template
generated from pillar that was inserted in a mustache master template in pillar format that was
inserted in a master mustache template</p>}</p>
<p>... and after</p></p>
</masterContent>
</master>
That is really cool. Actually pillar and mustache are a good match.
FYI,
Norbert