hakyll-4.4.3.0: A static website compiler library

Safe Haskell | None

Hakyll.Web.Template.Context

Synopsis

- data ContextField
  - = StringField String
  - | forall a . ListField (Context a) [Item a]
- newtype Context a = Context {
  - unContext :: String -> Item a -> Compiler ContextField
  }
- field :: String -> (Item a -> Compiler String) -> Context a
- constField :: String -> String -> Context a
- listField :: String -> Context a -> Compiler [Item a] -> Context b
- functionField :: String -> ([String] -> Item a -> Compiler String) -> Context a
- mapContext :: (String -> String) -> Context a -> Context a
- defaultContext :: Context String
- bodyField :: String -> Context String
- metadataField :: Context a
- urlField :: String -> Context a
- pathField :: String -> Context a
- titleField :: String -> Context a
- dateField :: String -> String -> Context a
- dateFieldWith :: TimeLocale -> String -> String -> Context a
- getItemUTC :: MonadMetadata m => TimeLocale -> Identifier -> m UTCTime
- modificationTimeField :: String -> String -> Context a
- modificationTimeFieldWith :: TimeLocale -> String -> String -> Context a
- teaserField :: String -> Snapshot -> Context String
- missingField :: Context a

# Documentation

data ContextField Source

Mostly for internal usage

Constructors

StringField String |
forall a . ListField (Context a) [Item a] |

newtype Context a Source

Constructors

Context |

Fields

unContext :: String -> Item a -> Compiler ContextField

Instances

Monoid (Context a) |

field :: String -> (Item a -> Compiler String) -> Context aSource

constField :: String -> String -> Context aSource

listField :: String -> Context a -> Compiler [Item a] -> Context bSource

functionField :: String -> ([String] -> Item a -> Compiler String) -> Context aSource

mapContext :: (String -> String) -> Context a -> Context aSource

defaultContext :: Context String Source

bodyField :: String -> Context String Source

metadataField :: Context aSource

Map any field to its metadata value, if present

urlField :: String -> Context aSource

Absolute url to the resulting item

pathField :: String -> Context aSource

Filepath of the underlying file of the item

titleField :: String -> Context aSource

This title field takes the basename of the underlying file by default

dateField Source

Arguments

:: String | Key in which the rendered date should be placed
-> String | Format to use on the date
-> Context a | Resulting context

When the metadata has a field called `published` in one of the following formats then this function can render the date.

-     Mon, 06 Sep 2010 00:01:00 +0000

-     Mon, 06 Sep 2010 00:01:00 UTC

-     Mon, 06 Sep 2010 00:01:00

-     2010-09-06T00:01:00+0000

-     2010-09-06T00:01:00Z

-     2010-09-06T00:01:00

-     2010-09-06 00:01:00+0000

-     2010-09-06 00:01:00

-     September 06, 2010 00:01 AM

Following date-only formats are supported too (`00:00:00` for time is assumed)

-     2010-09-06

-     September 06, 2010

Alternatively, when the metadata has a field called `path` in a `folder/yyyy-mm-dd-title.extension` format (the convention for pages) and no `published` metadata field set, this function can render the date.

dateFieldWith Source

Arguments

:: TimeLocale | Output time locale
-> String | Destination key
-> String | Format to use on the date
-> Context a | Resulting context

This is an extended version of `dateField` that allows you to specify a time locale that is used for outputting the date. For more details, see `dateField`.

getItemUTC Source

Arguments

:: MonadMetadata m |
=> TimeLocale | Output time locale
-> Identifier | Input page
-> m UTCTime | Parsed UTCTime

Parser to try to extract and parse the time from the `published` field or from the filename. See `dateField` for more information. Exported for user convenience.

modificationTimeField Source

Arguments

:: String | Key
-> String | Format
-> Context a | Resuting context

modificationTimeFieldWith Source

Arguments

:: TimeLocale | Time output locale
-> String | Key
-> String | Format
-> Context a | Resulting context

teaserField Source

Arguments

:: String | Key to use
-> Snapshot | Snapshot to load
-> Context String | Resulting context

A context with teaser key which contain a teaser of the item. The item is loaded from the given snapshot (which should be saved in the user code before any templates are applied).

missingField :: Context aSource