2013-05-29 7 views
5

Ich habe kürzlich die Version von Heist aktualisiert, die ich verwende. Es war meistens eine willkürliche Entscheidung, und ich sehe immer noch die Konsequenzen dieser Aktion, hauptsächlich in Form einer angenehmeren Code-Struktur.Warum funktioniert mein "Apply" -Tag in Heist 0.11.0.1 nicht mehr?

Aber ich war ziemlich stark auf das "apply" -Tag in meinen Vorlagen angewiesen, um die Komponenten, wie meine Website-Header und Menüs, einzubringen. Für mich sieht eine typische Vorlage wie folgt aus:

<html> 
<head> 
    <title> <PageTitle /> </title> 
    <link rel="stylesheet" type="text/css" href="/styles/style.css" /> 
    <link rel="alternate" type="application/rss+xml" title="${PageTitle} Feed" href="http://www.savannidgerinel.com/rss" /> 
</head> 
<body class="center"> 

<apply template="header" /> 

<div id="content"> 
<h1><PageTitle /></h1> 
<ul> 
<PageMetadata /> 
</ul> 

<PageContent /> 
</div> 

</body> 
</html> 

Und ich lade jetzt die Vorlagen wie folgt aus:

setup_heist template_dir = do 
    templates <- Heist.loadTemplates template_dir 
    hs <- Heist.initHeist (Heist.HeistConfig [] [] [] [] templates) 
    return hs 

Das ist nicht zu viel anders aus, wie ich verwendeten Vorlagen laden (immer noch mit der loadTemplates-Funktion), aber es ist eine andere Art, den Heist-Zustand einzurichten, an den ich nicht gewöhnt bin.

Aber jetzt hat keiner der apply Tags einen Effekt. Meine „enthalten“ Vorlagen nur geladen werden nie und in der resultierenden HTML Ich sehe dies:

<apply template='header'></apply> 

Antwort

6

Die anwenden Tag eine Splice ist wie jede andere. Es hat keinen besonderen Status, außer dass es in Heist enthalten ist. Daher müssen Sie diesen Spleiß in Ihrer HeistConfig binden. Wenn Sie interpretiert Vorlagen verwenden, dann können Sie es wie folgt tun:

HeistConfig defaultInterpretedSplices [] [] [] templates 

Wenn Sie zusammengestellt Vorlagen verwenden, dann verwenden:

HeistConfig [] defaultLoadTimeSplices [] [] templates 
Verwandte Themen