{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} module Heist.Charade ( charadeProductionSplice ) where import Heist import Heist.Interpreted import Text.XmlHtml ------------------------------------------------------------------------------ -- | Charade needs to provide a splice that can be bound to eliminate all -- charade-specific attributes from the markup. charadeProductionSplice :: Monad n => Splice n charadeProductionSplice = return . (:[]) . removeFake =<< getParamNode removeFake :: Node -> Node removeFake (Element tag attrs ch) = Element tag attrs' $ map removeFake ch where attrs' = filter ((/="fake") . fst) attrs removeFake n = n