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






Reply via email to