2012-05-28 2 views
4

재사용을 위해 다른 내부에서 위젯을 다시 사용하고 싶습니다. 예를 들어, 위젯 파일 blogpost.hamlet에는 게시물이 표시되는 방법이 포함될 수 있으며 blog.hamlet에는 전체 블로그가 포함될 수 있습니다.위젯 파일을 사용하여 다른 파일에 햄릿 파일을 포함하려면 어떻게해야합니까?

blog.hamlet 다음과 같은 내용이 하지 않는 일 :

$forall post <- posts 
    ^{widgetFile "blogpost") 

그래서 다른 내부에 하나의 위젯을 삽입 할 올바른 구문은 무엇인가?

답변

15

Hamlet 구문은 내부에 Template Haskell 스플 라이스를 포함 할 수 없으므로 찾고자하는 코드를 불가능하게 만듭니다. 대신

blogpost post = $(widgetFile "blogpost") 

그런 다음 blog.hamlet, 당신은 할 수 있습니다 : 예컨대, 하스켈에서 도우미 함수를 만들어야합니다

$forall post <- posts 
    ^{blogpost post} 
+0

덕분에 큰했다. – mrueg

+0

이 기능은 defaultLayout 내부에서 작동하지 않습니까? 나는 비계 사이트를 가지고 있는데, 매우 비슷한 것을 시도하고 있는데, 다음과 같다. 'Foundation.hs : 73 : 27 : 범위 내에 있지 않다 : 'loginArea' splice : $ (hamletFile "templates/default-layout-wrapper.hamlet ")' –

+0

나머지 코드는 보지 못하고 확신 할 수 없지만 별개의 오류처럼 보입니다. 즉, 사용하려는 식별자가 범위에 있지 않습니다. –