hakyll- A static website compiler library

Safe HaskellSafe-Inferred



Exports a datastructure for the top-level hakyll configuration



data Configuration Source




destinationDirectory :: FilePath

Directory in which the output written

storeDirectory :: FilePath

Directory where hakyll's internal store is kept

tmpDirectory :: FilePath

Directory in which some temporary files will be kept

providerDirectory :: FilePath

Directory where hakyll finds the files to compile. This is . by default.

ignoreFile :: FilePath -> Bool

Function to determine ignored files

In defaultConfiguration, the following files are ignored:

  • files starting with a .
  • files starting with a #
  • files ending with a ~
  • files ending with .swp

Note that the files in destinationDirectory and storeDirectory will also be ignored. Note that this is the configuration parameter, if you want to use the test, you should use shouldIgnoreFile.

deployCommand :: String

Here, you can plug in a system command to upload/deploy your site.


 rsync -ave 'ssh -p 2217' _site jaspervdj@jaspervdj.be:hakyll

You can execute this by using

 ./site deploy
deploySite :: Configuration -> IO ExitCode

Function to deploy the site from Haskell.

By default, this command executes the shell command stored in deployCommand. If you override it, deployCommand will not be used implicitely.

The Configuration object is passed as a parameter to this function.

inMemoryCache :: Bool

Use an in-memory cache for items. This is faster but uses more memory.

previewPort :: Int

Override default port for preview server. Default is 8000. One can also override the port as a command line argument: ./site preview -p 1234

shouldIgnoreFile :: Configuration -> FilePath -> IO BoolSource

Check if a file should be ignored

defaultConfiguration :: ConfigurationSource

Default configuration for a hakyll application