Hakyll.Core.Compiler

hakyll-4.7.5.1: A static website compiler library

Safe Haskell | None
Language | Haskell98

Hakyll.Core.Compiler

Synopsis

- data Compiler a
- getUnderlying :: Compiler Identifier
- getUnderlyingExtension :: Compiler String
- makeItem :: a -> Compiler (Item a)
- getRoute :: Identifier -> Compiler (Maybe FilePath)
- getResourceBody :: Compiler (Item String)
- getResourceString :: Compiler (Item String)
- getResourceLBS :: Compiler (Item ByteString)
- getResourceFilePath :: Compiler FilePath
- type Snapshot = String
- saveSnapshot :: (Binary a, Typeable a) => Snapshot -> Item a -> Compiler (Item a)
- load :: (Binary a, Typeable a) => Identifier -> Compiler (Item a)
- loadSnapshot :: (Binary a, Typeable a) => Identifier -> Snapshot -> Compiler (Item a)
- loadBody :: (Binary a, Typeable a) => Identifier -> Compiler a
- loadSnapshotBody :: (Binary a, Typeable a) => Identifier -> Snapshot -> Compiler a
- loadAll :: (Binary a, Typeable a) => Pattern -> Compiler [Item a]
- loadAllSnapshots :: (Binary a, Typeable a) => Pattern -> Snapshot -> Compiler [Item a]
- cached :: (Binary a, Typeable a) => String -> Compiler a -> Compiler a
- unsafeCompiler :: IO a -> Compiler a
- debugCompiler :: String -> Compiler ()

# Documentation

data Compiler a

A monad which lets you compile items and takes care of dependency tracking for you.

Instances

Monad Compiler |
Functor Compiler |
Applicative Compiler |
Alternative Compiler |
MonadMetadata Compiler |
MonadError [String] Compiler |

getUnderlying :: Compiler Identifier

Get the underlying identifier.

getUnderlyingExtension :: Compiler String

Get the extension of the underlying identifier. Returns something like `".html"`

makeItem :: a -> Compiler (Item a)

getRoute :: Identifier -> Compiler (Maybe FilePath)

Get the route for a specified item

getResourceBody :: Compiler (Item String)

Get the full contents of the matched source file as a string, but without metadata preamble, if there was one.

getResourceString :: Compiler (Item String)

Get the full contents of the matched source file as a string.

getResourceLBS :: Compiler (Item ByteString)

Get the full contents of the matched source file as a lazy bytestring.

getResourceFilePath :: Compiler FilePath

Get the file path of the resource we are compiling

type Snapshot = String

Whilst compiling an item, it possible to save multiple snapshots of it, and not just the final result.

saveSnapshot :: (Binary a, Typeable a) => Snapshot -> Item a -> Compiler (Item a)

Save a snapshot of the item. This function returns the same item, which convenient for building `>>=` chains.

load :: (Binary a, Typeable a) => Identifier -> Compiler (Item a)

Load an item compiled elsewhere. If the required item is not yet compiled, the build system will take care of that automatically.

loadSnapshot :: (Binary a, Typeable a) => Identifier -> Snapshot -> Compiler (Item a)

Require a specific snapshot of an item.

loadBody :: (Binary a, Typeable a) => Identifier -> Compiler a

A shortcut for only requiring the body of an item.

    loadBody = fmap itemBody . load

loadSnapshotBody :: (Binary a, Typeable a) => Identifier -> Snapshot -> Compiler a

loadAll :: (Binary a, Typeable a) => Pattern -> Compiler [Item a]

This function allows you to `load` a dynamic list of items

loadAllSnapshots :: (Binary a, Typeable a) => Pattern -> Snapshot -> Compiler [Item a]

cached :: (Binary a, Typeable a) => String -> Compiler a -> Compiler a

unsafeCompiler :: IO a -> Compiler a

debugCompiler :: String -> Compiler ()

Compiler for debugging purposes