hakyll-4.1.1.0: A static website compiler library

Safe HaskellNone

Hakyll.Web.Template.Context

Synopsis

Documentation

newtype Context a Source

Constructors

Context 

Fields

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

Instances

metadataField :: Context StringSource

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

dateFieldSource

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.

  • Sun, 01 Feb 2000 13:00:00 UT (RSS date format)
  • 2000-02-01T13:00:00Z (Atom date format)
  • February 1, 2000 1:00 PM (PM is usually uppercase)
  • February 1, 2000 (assumes 12:00 AM for the time)

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.

 renderDateField "date" "%B %e, %Y" "Date unknown"

Will render something like January 32, 2010.

dateFieldWithSource

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.

getItemUTCSource

Arguments

:: TimeLocale

Output time locale

-> Identifier

Input page

-> Compiler UTCTime

Parsed UTCTime

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

modificationTimeFieldSource

Arguments

:: String

Key

-> String

Format

-> Context a

Resuting context

modificationTimeFieldWithSource

Arguments

:: TimeLocale

Time output locale

-> String

Key

-> String

Format

-> Context a

Resulting context