2013-05-29 2 views
5

Недавно я обновил версию Heist, которую я использую. Это было в основном произвольным решением, и я все еще вижу последствия этого действия, в основном в плане более приятной структуры кода.Почему мой тег «apply» больше не работает в Heist 0.11.0.1?

Но я очень сильно полагался на тег «apply» внутри своих шаблонов, чтобы приводить компоненты шаблонов, такие как заголовок и меню сайта. Для меня, типичный шаблон выглядит следующим образом:

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

И я теперь загружаются шаблоны, как это:

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

Это не так уж сильно отличается от того, как я использовал для загрузки шаблонов (все еще используя функцию loadTemplates), но это другой способ настройки состояния Heist, к которому я не привык.

Но теперь ни один из тегов apply не имеет никакого эффекта. Мои «включены» шаблоны просто никогда не загружать и в результате HTML я вижу это:

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

ответ

6

Применить тег сращивание так же, как и любой другой. У него нет особого статуса, кроме того, что он включен в Heist. Поэтому вам нужно связать этот сплайсинг в вашем HeistConfig. Если вы используете истолкованы шаблоны, то вы можете сделать это следующим образом:

HeistConfig defaultInterpretedSplices [] [] [] templates 

Если вы используете скомпилированные шаблоны, а затем использовать это:

HeistConfig [] defaultLoadTimeSplices [] [] templates 
Смежные вопросы