Safe Haskell | None |
---|---|
Language | Haskell2010 |
Low-level module for Assets that are used to build websites.
- type Identifier = String
- data Pathed c = Pathed {}
- data Env a = Env {
- ePaths :: M.Map Identifier (Pathed ())
- eIDs :: M.Map FilePath Identifier
- eCur :: a
- class IDO a where
- root :: Pathed a -> Pathed ()
- isRoot :: Pathed c -> Bool
- lookupNamedId :: (MonadWriter [Identifier] m, MonadReader (Env a) m) => Identifier -> m (Pathed ())
- reference :: (IDO a, MonadWriter [Identifier] m, MonadTrans t) => a -> t m ()
- lookupId :: (MonadWriter [Identifier] m, MonadReader (Env a) m) => Identifier -> m (Pathed ())
- data Asset
- toConcatList :: Asset -> [Asset]
- type Assets = [Pathed Asset]
- strip :: Pathed a -> Pathed ()
- uniquify :: [Pathed ()] -> Env ()
- generateAssets :: Bool -> FilePath -> Assets -> IO ()
- onlyUsed :: [Identifier] -> Assets -> Assets
Documentation
type Identifier = String Source #
Environment for the currently rendered Ehtml's asset
Env | |
|
getId :: a -> Identifier Source #
lookupNamedId :: (MonadWriter [Identifier] m, MonadReader (Env a) m) => Identifier -> m (Pathed ()) Source #
reference :: (IDO a, MonadWriter [Identifier] m, MonadTrans t) => a -> t m () Source #
reference a Pathed value to ensure it is included in output
lookupId :: (MonadWriter [Identifier] m, MonadReader (Env a) m) => Identifier -> m (Pathed ()) Source #
is the result of the render
method from the Content
class
Copy FilePath | the asset can be generated by copying this file |
CopyDir FilePath | the asset can be generated by copying this directory |
Write T.Text | the asset can be generated by writing this text |
WriteIO (IO T.Text) | the asset can be generated by writing the result of an IO action |
Concat [Asset] | the asset can be generated by concatenating the contents described by a list of assets |
toConcatList :: Asset -> [Asset] Source #
uniquify :: [Pathed ()] -> Env () Source #
generate a map of Pathed objects with unique IDs and paths
Generates all assets and their depending assets in the target dir (careful: removes preexisting target dir)