heist-extra-0.3.0.0: src/Heist/Extra/Splices/List.hs
module Heist.Extra.Splices.List where
import Data.Map.Syntax ((##))
import Heist qualified as H
import Heist.Interpreted qualified as HI
-- | A splice that applies a non-empty list
listSplice :: [a] -> Text -> (a -> H.Splices (HI.Splice Identity)) -> HI.Splice Identity
listSplice xs childTag childSplice = do
if null xs
then pure mempty
else HI.runChildrenWith $ do
childTag ##
(HI.runChildrenWith . childSplice)
`foldMapM` xs