2013-05-29 13 views
5

Niedawno zaktualizowałem wersję Heist, której używam. Była to w większości arbitralna decyzja i wciąż widzę konsekwencje tego działania, głównie pod względem przyjemniejszej struktury kodu.Dlaczego mój tag "apply" nie działa już w Heist 0.11.0.1?

Ale bardzo mocno polegałem na tagu "zastosuj" w moich szablonach, aby wprowadzić elementy tabelaryczne, takie jak nagłówek mojej strony i menu. Dla mnie to typowy szablon wygląda tak:

<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> 

A ja teraz wczytywania szablonów tak:

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

To nie jest zbyt różni się od jak kiedyś załadować szablony (nadal używają funkcji loadTemplates), ale jest to inny sposób ustawienia stanu Heist, do którego nie jestem przyzwyczajony.

Ale teraz żaden z tagów apply nie ma żadnego efektu. Moje szablony "uwzględnione" nigdy nie ładują się i w wynikowym HTMLu widzę to:

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

Odpowiedz

6

Znacznik zastosowania jest połączeniem tak jak każdy inny. Nie ma żadnego specjalnego statusu poza tym, że jest zawarty w Heist. Dlatego musisz związać to spięcie w swoim HeistConfig. Jeśli używasz interpretowane szablonów, można zrobić to tak:

HeistConfig defaultInterpretedSplices [] [] [] templates 

Jeśli używasz skompilowane szablony, a następnie użyć tego:

HeistConfig [] defaultLoadTimeSplices [] [] templates 
Powiązane problemy