module Text.Templating.Heist.Splices.Bind where
import Control.Monad.RWS.Strict
import Data.ByteString.Char8 (ByteString)
import qualified Text.XML.Expat.Tree as X
import Text.Templating.Heist.Internal
import Text.Templating.Heist.Types
bindTag :: ByteString
bindTag = "bind"
bindAttr :: ByteString
bindAttr = "tag"
bindImpl :: Monad m => Splice m
bindImpl = do
node <- getParamNode
maybe (return ())
(add node)
(X.getAttribute node bindAttr)
return []
where
add node nm = modifyTS $ bindSplice nm (return $ X.getChildren node)