2011-11-28 4 views
3

Snap을 사용하여 웹 응용 프로그램에서 Heist 템플릿을 사전 처리하기 위해 일부 후크를 추가하고 싶습니다. 후크가 후 템플릿은 "자원/템플릿"에서로드 추가되기 때문에,Snap Web Framework를 사용하여 Heist 템플릿 용 OnLoad 후크 추가

app :: SnapletInit App App 
app = makeSnaplet "app" "The main web application" Nothing $ do 
    -- ... 
    h <- nestSnaplet "heist" heist $ heistInit "resources/templates" 
    -- ... 
    modifyHeistTS . addOnLoadHook $ myTemplateHook 

이 코드는 작동하지 물론 않습니다 내 순진한 접근 방식은 지금까지 내 응용 프로그램 초기화에 다음 코드를 사용하는 것이 었습니다

OnLoad 후크를 추가하기 위해 초기 템플릿을로드하기 전에 Heist 템플릿 상태를 수정하는 방법은 무엇입니까?

+0

'heistInit'기능은 원하는 것을 허용하고 github에 있습니다. – mightybyte

답변

2

우수 질문. 라이브러리를 디자인 할 때 내 부분에 대한 감독 인 것 같습니다. 이 문제를 어떻게 지원하고 최선을 다할 것인지 생각해 볼 것입니다.

즉각적인 해결 방법을 원하면 loadTemplates here에 전달되는 템플릿 상태에 후크를 추가하십시오. 또는 Heist에서 직접 emptyTemplateState를 수정할 수도 있습니다.

업데이트 : I added이 문제를 해결하는 heistInit 함수. 그것은 다음 hackage release에있을 것입니다. 그때까지 github에서 가져올 수 있습니다.

+0

이 경우 훅은 미션 크리티컬이 아니므로 공식적으로 지원되는 솔루션을 기다리게 될 것입니다. 여러분의 노력과 멋진 도서관에 감사드립니다! – dflemstr