!d7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           !"""""""""""""""""""#$$$$$$%%%%%%%%%%%%%&&&&&&&&&&&''''''''''''''''''''''''''''''5(SafehakyllLike -, but can act on the entire tail of the list.v      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr)None!Rstuvwxyz{|}~Safe6} hakyll%Directory in which the output writtenhakyll/Directory where hakyll's internal store is kepthakyll4Directory in which some temporary files will be kepthakyll;Directory where hakyll finds the files to compile. This is . by default.hakyll#Function to determine ignored filesIn  ", the following files are ignored:files starting with a .files starting with a #files ending with a ~files ending with .swpNote that the files in  and t will also be ignored. Note that this is the configuration parameter, if you want to use the test, you should use  .hakyllBHere, you can plug in a system command to upload/deploy your site.Example: <rsync -ave 'ssh -p 2217' _site jaspervdj@jaspervdj.be:hakyllYou can execute this by using  ./site deployhakyll)Function to deploy the site from Haskell.?By default, this command executes the shell command stored in . If you override it,  will not be used implicitely.The 3 object is passed as a parameter to this function. hakyllGUse an in-memory cache for items. This is faster but uses more memory. hakyllOverride default host for preview server. Default is "127.0.0.1", which binds only on the loopback address. One can also override the host as a command line argument: ./site preview -h "0.0.0.0" hakyllOverride default port for preview server. Default is 8000. One can also override the port as a command line argument: ./site preview -p 1234 hakyll.Default configuration for a hakyll application hakyll!Check if a file should be ignored  None2M8hakyll!Parse an identifier from a stringhakyll$Convert an identifier to a relative *None:Chakyll(Type that allows matching on identifiershakyllElements of a glob pattern NoneX"hakyllParse a pattern from a stringhakyll Create a  from a list of s it should match.Warning: use this carefully with   and . The s in the list alreadya have versions assigned, and the pattern will then only match the intersection of both versions.A more concrete example, /fromList ["foo.markdown"] .&&. hasVersion "pdf"will not match anything! The "foo.markdown" ) has no version assigned, so the LHS of ! will only match this ( with no version. The RHS only matches s with version set to "pdf") -- hence, this pattern matches nothing.The correct way to use this is: 9fromList $ map (setVersion $ Just "pdf") ["foo.markdown"]hakyll Create a  from a regexExample: regex "^foo/[^x]*$hakyll@Create a pattern which matches all items with the given version.hakyllSpecify a version, e.g. &"foo/*.markdown" .&&. hasVersion "pdf" hakyll5Match only if the identifier has no version set, e.g. ""foo/*.markdown" .&&. hasNoVersion!hakyll< for patterns: the given identifier must match both subterms"hakyll: for patterns: the given identifier must match any subterm#hakyllInverts a pattern, e.g. complement "foo/bar.html" will match anything except "foo/bar.html"$hakyll(Check if an identifier matches a pattern%hakyllJGiven a list of identifiers, retain only those who match the given patternhakyllSplit a list at every possible point, generate a list of (init, tail) cases. The result is sorted with inits decreasing in length.&hakyllRMatch a glob or regex pattern against an identifier, generating a list of captureshakyllInternal verion of &'hakyllSCreate an identifier from a pattern by filling in the captures with a given stringExample: %fromCapture (fromGlob "tags/*") "foo"Result:  "tags/foo"(hakyll^Create an identifier from a pattern by filling in the captures with the given list of stringshakyllInternally used version of ( !"#$%&'( !"#$%&'(!3"2None2Z.hakyllAll known identifiershakyllInitially out-of-date resourceshakyllOld dependency facts*+,-.+,-*.Safe_2hakyll#Logger structure. Very complicated.hakyllNothing marks the endhakyllUsed for sync on quithakyllOut sinkhakyll Verbosity7hakyllCreate a new logger8hakyll'Flush the logger (blocks until flushed)hakyllLoggerhakyllVerbosity of the stringhakyll Section namehakyll No result 23645789:;< 36452789:;<Noneb@hakyll"Newtype wrapper for serialization.Khakyll Version of J4 which throws an error if the field does not exist. @ABCDEFGHIJKL GHICDEFJKL@ABNoneEXn6OhakyllResult of a store queryPhakyll Found, resultQhakyll Not foundRhakyllExpected, true typehakyll&All items are stored on the filesystemhakyll)Optionally, items are also kept in-memoryhakyllSimple wrapper typeThakyllConvert result to UhakyllInitialize the storehakyll-Auxiliary: add an item to the in-memory cachehakyll/Auxiliary: get an item from the in-memory cachehakyll2Auxiliary: delete an item from the in-memory cacheVhakyll Store an itemWhakyll Load an itemXhakyllStrict functionYhakyllDelete an itemhakyll(Delete a file unless it doesn't exist...ZhakyllMostly meant for internal usagehakyll Hash by MD5UhakyllUse in-memory cachinghakyll&Directory to use for hard disk storagehakyllStore OPQRSTUVWXYZ SOPQRTUVWXYZSafer^hakyll_Given a path to a file, try to make the path writable by making all directories on the path._hakyll Get all contents of a directory._hakyllIgnore this file/directoryhakyllDirectory to searchhakyllList of files found^_`^_`+None2M|Z ahakyll0Responsible for retrieving and listing resourceshakyllA list of all files foundhakyll)A list of the files from the previous runhakyll'Underlying persistent store for cachinghakyll1Because UTCTime doesn't have a Binary instance...hakyllCreate a resource providerchakyll Check if a given resource existsehakyll(Get the raw body of a resource as stringfhakyll3Get the raw body of a resource of a lazy bytestringghakyll8A resource is modified if it or its metadata has changedhakyll Store to usehakyllShould we ignore this file?hakyllSearch directoryhakyllResulting providerabcdefgh None"#GihakyllNThrown in the IO monad if things go wrong. Provides a nice-ish error message.hakyllCheck if a file "probably" has a metadata header. The main goal of this is to exclude binary files (which are unlikely to start with "---").hakyll!Parse the page metadata and body.ijklklij,Noneop None+qhakyllCreate a resource providerqhakyll Store to usehakyllShould we ignore this file?hakyllSearch directoryhakyllResulting provider abcdefghopq aqbcdghefop-Safe None>rhakyll=Trim a string (drop spaces, tabs and newlines at both sides).shakyll0A simple (but inefficient) regex replace funcionthakyllQA simple regex split function. The resulting list will contain no empty strings.uhakyll~Find the first instance of needle (must be non-empty) in haystack. We return the prefix of haystack before needle is matched. Examples:  needlePrefix "cd" "abcde" = "ab" needlePrefix "ab" "abc" = "" needlePrefix "ab" "xxab" = "xx" needlePrefix "a" "xx" = "xx"shakyllPatternhakyllReplacement (called on match)hakyll Source stringhakyllResultthakyllPatternhakyllString to splithakyllResultrsturstu NoneSX0 vhakyllType used for a routewhakyllWhen you ran a route, it's useful to know whether or not this used metadata. This allows us to do more granular dependency analysis.xhakyllApply a route to an identifieryhakyllOA route that uses the identifier as filepath. For example, the target with ID foo/bar will be written to the file foo/bar.zhakyll*Set (or replace) the extension of a route.Example: )runRoutes (setExtension "html") "foo/bar"Result: Just "foo/bar.html"Example: DrunRoutes (setExtension "html") "posts/the-art-of-trolling.markdown"Result: %Just "posts/the-art-of-trolling.html"{hakyllLApply the route if the identifier matches the given pattern, fail otherwise|hakyll?Create a custom route. This should almost always be used with {}hakyllnA route that always gives the same result. Obviously, you should only use this for a single compilation rule.~hakyllCreate a gsub routeExample: :runRoutes (gsubRoute "rss/" (const "")) "tags/rss/bar.xml"Result: Just "tags/bar.xml"hakyll:Get access to the metadata in order to determine the routehakyllCompose routes so that f `composeRoutes` g" is more or less equivalent with g . f.Example: nlet routes = gsubRoute "rss/" (const "") `composeRoutes` setExtension "xml" in runRoutes routes "tags/rss/bar"Result: Just "tags/bar.xml"GIf the first route given fails, Hakyll will not apply the second route.~hakyllPatternhakyll ReplacementhakyllResulting routehakyllFirst route to applyhakyllSecond route to applyhakyllResulting route vwxyz{|}~ wvxyz{|}~ None &'4=?@AMhakyllTA monad which lets you compile items and takes care of dependency tracking for you.hakyll,An intermediate result of a compilation stephakyllDistinguishes reasons in a hakyll1One or more exceptions occured during compilationhakyllZAbsence of any result, most notably in template contexts. May still have error messages.hakyll$Environment in which a compiler runshakyllMain configurationhakyllUnderlying identifierhakyllResource providerhakyllList of all known identifiershakyll Site routeshakyllCompiler storehakyllLoggerhakyllgWhilst compiling an item, it possible to save multiple snapshots of it, and not just the final result.hakyll Unwrap a hakyllLike  but treating IO exceptions as shakyll!Put the result back in a compilerhakyllGet the current environmenthakyllPut a hakyll8Run an IO computation without dependencies in a CompilerhakyllThrow errors in the ./If no messages are given, this is considered a B error. Otherwise, it is treated as a proper compilation failure.hakyllPut a  with multiple messages as hakyllAllows to distinguish s and branch on them with :compilerTry = (`compilerCatch` return . Left) . fmap RighthakyllAllows you to recover from %s. Uses the same parameter order as  so that it can be used infix.7c `compilerCatch` f = compilerTry c >>= either f returnhakyll:Pass a list of messages with a heading to the debug loggerhakyllMTrying alternative compilers if the first fails, regardless whether through ,  or .). Aggregates error messages if all fail.hakyll4Compilation may fail with multiple error messages.  handles errors from ,  and .hakyll&Access provided metadata from anywhere&&None2qhakyll@Perform a compiler action on the item body. This is the same as , but looks less intimidating. withItemBody = traverse/NoneϷhakyllESave a specific snapshot of an item, so you can load it later using .hakyllLoad an item compiled elsewhere. If the required item is not yet compiled, the build system will take care of that automatically.hakyll'Require a specific snapshot of an item.hakyll2A shortcut for only requiring the body of an item. loadBody = fmap itemBody . loadhakyllIA shortcut for only requiring the body for a specific snapshot of an itemhakyllThis function allows you to  a dynamic list of itemshakyll:Load a specific snapshot for each of dynamic list of items NoneMXhakyllGet the underlying identifier.hakyllHGet the extension of the underlying identifier. Returns something like ".html"hakyll@Create an item from the underlying identifier and a given value.hakyll"Get the route for a specified itemhakylloGet the full contents of the matched source file as a string, but without metadata preamble, if there was one.hakyll=Get the full contents of the matched source file as a string.hakyllFGet the full contents of the matched source file as a lazy bytestring.hakyll2Get the file path of the resource we are compilinghakyllOverloadable function for  and hakyllaSave a snapshot of the item. This function returns the same item, which convenient for building  chains.hakyllTurn on caching for a compilation value to avoid recomputing it on subsequent Hakyll runs. The storage key consists of the underlying identifier of the compiled ressource and the given name.hakyll8Run an IO computation without dependencies in a Compiler hakyll0Fail so that it is treated as non-defined in an $if()$ branching Hakyll.Web.Template macro, and alternative 0 s are tried hakyllpPrepend an error line to the error, if there is one. This allows you to add helpful context to error messages.hakyllgCompiler for debugging purposes. Passes a message to the debug logger that is printed in verbose mode.Nonehakyll=Use a unix filter as compiler. For example, we could use the rev program as a compiler. \rev :: Compiler (Item String) rev = getResourceString >>= withItemBody (unixFilter "rev" [])A more realistic example: one can use this to call, for example, the sass compiler on CSS files. More information about sass can be found here: http://sass-lang.com/6The code is fairly straightforward, given that we use .scss for sass: match "style.scss" $ do route $ setExtension "css" compile $ getResourceString >>= withItemBody (unixFilter "sass" ["-s", "--scss"]) >>= return . fmap compressCsshakyll Variant of % that should be used for binary files match "music.wav" $ do route $ setExtension "ogg" compile $ getResourceLBS >>= withItemBody (unixFilterLBS "oggenc" ["-"])hakyllOverloaded compilerhakyllInternally used functionhakyll Program namehakyll Program argshakyll Program inputhakyllProgram outputhakyll Program namehakyll Program argshakyll Program inputhakyllProgram outputhakyllWriterhakyllReaderhakyll Program namehakyll Program argshakyll Program inputhakyllProgram outputNone=?hakyll/Describes an item that can be saved to the diskhakyll"Save an item to the given filepath1None2EXhakyll/An existential type, mostly for internal usage.NoneMSXhakyllThe monad used to compose ruleshakyllAccumulated routeshakyllAccumulated compilershakyll A set of the actually used fileshakyll`A pattern we can use to check if a file *would* be used. This is needed for the preview server.hakyll"Run a Rules monad, resulting in a NoneNoneM Ohakyll Add a routehakyllAdd a number of compilershakyll Add resourceshakyll Add a patternhakyll$Add a compilation rule to the rules.EThis instructs all resources to be compiled using the given compiler.hakyll Add a route.=This adds a route for all items matching the current pattern.hakyll Execute an  action immediately while the rules are being evaluated. This should be avoided if possible, but occasionally comes in useful.hakyllAdvanced usage: add extra dependencies to compilers. Basically this is needed when you're doing unsafe tricky stuff in the rules monad, but you still want correct builds.%A useful utility for this purpose is L. +,- +,-None2MJhakyll7This will copy any file directly by using a system callhakyllCreate a tmp filehakyllSuffix and extensionhakyllResulting tmp path2NoneOhakyll'A thread that watches for updates in a 4 and recompiles a site as soon as any changes occur3NonemhakyllLoggerhakyllDirectory to servehakyllHost to bind onhakyllPort to listen onhakyllBlocks foreverNone&hakyllCompiler form of hakyll#Compress CSS to speed up your site.hakyll'Compresses certain forms of separators.hakyllUses  4 on all parenthesised calc expressions and applies  transform to all parts outside of them hakyllSdoes not remove whitespace around + and -, which is important in calc() expressions hakyllCompresses all whitespace. hakyll<Function that strips CSS comments away (outside of strings). hakyll3Helper functions to handle string tokens correctly.None*Q hakyll!Map over all tags in the documenthakyll+Map over all tags (as list) in the documenthakyll Map every h1 to an h2, h2 to h3, etc.hakyll)Apply a function to each URL on a webpage hakyllwCustomized TagSoup renderer. The default TagSoup renderer escape CSS within style tags, and doesn't properly minimize.hakyll6Customized TagSoup parser: do not decode any entities.hakyll8Convert a filepath to an URL starting from the site rootExample: toUrl "foo/bar.html"Result: "/foo/bar.html"9This also sanitizes the URL, e.g. converting spaces into '%20'hakyllAGet the relative url to the site root, for a given (absolute) urlhakyll3Check if an URL links to an external HTTP(S) sourcehakyll!Strip all HTML tags from a stringExample: stripTags "<p>foo</p>"Result: "foo"#This also works for incomplete tagsExample: stripTags "<p>foo</p"Result: "foo"hakyllHTML-escape a stringExample: escapeHtml "Me & Dean"Result: "Me &amp; Dean"  None-hakyllCompiler form of / which automatically picks the right root pathhakyllRelativize URL's in HTMLhakyllPath to the site roothakyllHTML to relativizehakyllResulting HTML4None7.None1hakyllODatatype to represent the different file types Hakyll can deal with by default)hakyllJGet the file type for a certain file. The type is determined by extension.*hakyll&Get the file type for the current file #!"$%&'()* #!"$%&'()*NoneDH /hakyll4Read a string using pandoc, with the default options0hakyll5Read a string using pandoc, with the supplied options1hakyllAWrite a document (as HTML) using pandoc, with the default options2hakyllBWrite a document (as HTML) using pandoc, with the supplied options3hakyll Render the resource using pandoc4hakyll Render the resource using pandoc5hakyllRead a page render using pandoc6hakyll A version of 55 which allows you to specify your own pandoc options7hakyllAn extension of 6L which allows you to specify a custom pandoc transformation for the content8hakyll Similar to 7r, but the transformation function is monadic. This is useful when you want the pandoc transformation to use the + information such as routes, metadata, etc9hakyll7The default reader options for pandoc parsing in hakyll:hakyll9The default writer options for pandoc rendering in hakyll/hakyllString to readhakyllResulting document0hakyllParser optionshakyllString to readhakyllResulting document1hakyllDocument to writehakyllResulting HTML2hakyllWriter options for pandochakyllDocument to writehakyllResulting HTML /0123456789: /0123456789:None2MD;<=>?@A=>;<?@ANonefHhakyllThis datatype can be used directly if you want a lower-level interface to generate redirects. For example, if you want to redirect foo.html to bar.jpg, you can use: Vcreate ["foo.html"] $ do route idRoute compile $ makeItem $ Redirect "bar.jpg"KhakyllFThis function exposes a higher-level interface compared to using the H type manually.This creates, using a database mapping broken URLs to working ones, HTML files which will do HTML META tag redirect pages (since, as a static site, we can't use web-server-level 301 redirects, and using JS is gross).lThis is useful for sending people using old URLs to renamed versions, dealing with common typos etc, and will increase site traffic. Such broken URLs can be found by looking at server logs or by using Google Webmaster Tools. Broken URLs must be valid Haskell strings, non-URL-escaped valid POSIX filenames, and relative links, since they will be defined in a  hakyll.hs and during generation, written to disk with the filename corresponding to the broken URLs. (Target URLs can be absolute or relative, but should be URL-escaped.) So broken incoming links like  http://www.gwern.net/foo/ which should be  http://www.gwern.net/foobar= cannot be fixed (since you cannot create a HTML file named "foo/"( on disk, as that would be a directory).0An example of a valid association list would be: brokenLinks = [ ("projects.html", "http://github.com/gwern") , ("/Black-market archive", "Black-market%20archives") ]4In which case the functionality can then be used in main with a line like: 1version "redirects" $ createRedirects brokenLinksThe > is recommended to separate these items from your other pages.The on-disk files can then be uploaded with HTML mimetypes (either explicitly by generating and uploading them separately, by auto-detection of the filetype, or an upload tool defaulting to HTML mimetype, such as calling s3cmd with --default-mime-type=text/htmlN) and will redirect browsers and search engines going to the old/broken URLs. See also  ?https://groups.google.com/d/msg/hakyll/sWc6zxfh-uM/fUpZPsFNDgAJ.HIJKHIJKNoneEXPQhakyllThe Q` monoid. Please note that the order in which you compose the items is important. For example in field "A" f1 <> field "A" f2rthe first context will overwrite the second. This is especially important when something is being composed with b (or `a). If you want your context to be overwritten by the metadata fields, compose it from the right: b <> field "date" fDate ThakyllMostly for internal usageXhakyllConstructs a new field for a QZ. If the key matches, the compiler is run and its result is substituted in the template.HIf the compiler fails, the field will be considered non-existent in an $if()$l macro or ultimately break the template application (unless the key is found in another context when using ). Use  or - for intentional failures of fields used in $if()$2, to distinguish them from exceptions thrown with .Yhakyll Creates a X to use with the $if()$[ template macro. Attempting to substitute the field into the template will cause an error.Zhakyll Creates a X that does not depend on the # but always yields the same string[hakyll)Creates a list field to be consumed by a $for( &)$q expression. The compiler returns multiple items which are rendered in the loop body with the supplied context.\hakyllCreates a list field like [1, but supplies the current page to the compiler.]hakyll"Creates a variadic function field.The function will be called with the dynamically evaluated string arguments from the template as well as the page that is currently rendered.^hakyllQTransform the respective string results of all fields in a context. For example, =mapContext (++"c") (constField "x" "a" <> constField "y" "b")is equivalent to *constField "x" "ac" <> constField "y" "bc"_hakyllCA context that allows snippet inclusion. In processed file, use as: %... $snippet("path/to/snippet/")$ ...@The contents of the included file will not be interpolated like partial does it.`hakyll'A context that contains (in that order) A $body$ fieldMetadata fieldsA $url$ cA $path$ dA $title$ eahakyll Constructs a X$ that contains the body of the item.bhakyll/Map any field to its metadata value, if presentchakyll"Absolute url to the resulting itemdhakyll+Filepath of the underlying file of the itemehakyll This title X5 takes the basename of the underlying file by defaultfhakyll%When the metadata has a field called  publishedI 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, 20104Alternatively, 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. This pattern matches the file name or directory names that begins with  yyyy-mm-dd . For example: folder/yyyy-mm-dd-titledist/main.extension; . In case of multiple matches, the rightmost one is used.As another alternative, if none of the above matches, and the file has a path which contains nested directories specifying a date, then that date will be used. In other words, if the path is of the form **/yyyymmdd/main.extensionE . As above, in case of multiple matches, the rightmost one is used.ghakyllThis is an extended version of fh that allows you to specify a time locale that is used for outputting the date. For more details, see f and .hhakyll5Parser to try to extract and parse the time from the  published" field or from the filename. See f6 for more information. Exported for user convenience.ihakyll|Get the time on which the actual file was last modified. This only works if there actually is an underlying file, of couse.jhakyllGCreates a field with the last modification date of the underlying item.khakyllmCreates a field with the last modification date of the underlying item in a custom localisation format (see ).lhakyllA 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).mhakyllA context with "teaser" key which contain a teaser of the item, defined as the snapshot content before the teaser separator. The item is loaded from the given snapshot (which should be saved in the user code before any templates are applied).nhakyllConstantly reports any field as missing. Mostly for internal usage, it is the last choice in every context used in a template application.phakyllRTries to find a key in the left context, or when that fails in the right context. XhakyllKeyhakyllMFunction that constructs a value based on the item (e.g. accessing metadata)ZhakyllKeyhakyllValue]hakyllKeyhakyllFunctionfhakyll/Key in which the rendered date should be placedhakyllFormat to use on the datehakyllResulting contextghakyllOutput time localehakyllDestination keyhakyllFormat to use on the datehakyllResulting contexthhakyllOutput time localehakyll Input pagehakyllParsed UTCTimejhakyllKeyhakyllFormathakyllResulting contextkhakyllTime output localehakyllKeyhakyllFormathakyllResulting contextlhakyll Key to usehakyllSnapshot to loadhakyllResulting contextmhakyllSeparator to usehakyll Key to usehakyllSnapshot to loadhakyllResulting contextQRSTUVWXYZ[\]^_`abcdefghijklmnTUVWQRSXYZ[\]^`abcde_fghijklmnNone2MqhakyllData about tagsvhakyll@Obtain tags from a page in the default way: parse them from the tagsH metadata field. This can either be a list or a comma-separated string.whakyllObtain category from a page.xhakyll"Higher-order function to read tags|hakyll8Render tags in HTML (the flexible higher-order function)}hakyllRender a tag cloud in HTML~hakyllRender a tag cloud in HTMLhakyll'Render a tag cloud in HTML as a contexthakyll'Render a tag cloud in HTML as a contexthakylliRender a simple tag list in HTML, with the tag count next to the item TODO: Maybe produce a Context herehakyllMRender tags with links with custom functions to get tags and to render linkshakyllRender tags with linkshakyllRender the category in a linkhakyllRender one tag linkhakyllwSort tags using supplied function. First element of the tuple passed to the comparing function is the actual tag name.hakyll>Sample sorting function that compares tags case insensitively.|hakyll9Produce a tag item: tag, url, count, min count, max counthakyll Join itemshakyllTag cloud renderer}hakyllSmallest font size, in percenthakyllBiggest font size, in percenthakyll Input tagshakyllRendered cloud~hakyllRender a single tag linkhakyllConcatenate linkshakyllSmallest font size, in percenthakyllBiggest font size, in percenthakyll Input tagshakyllRendered cloudhakyllDestination keyhakyllSmallest font size, in percenthakyllBiggest font size, in percenthakyll Input tagshakyllContexthakyllDestination keyhakyllRender a single tag linkhakyllConcatenate linkshakyllSmallest font size, in percenthakyllBiggest font size, in percenthakyll Input tagshakyllContexthakyll Get the tagshakyllRender link for one taghakyllConcatenate tag linkshakyllDestination fieldhakyllTags structurehakyllResulting contexthakyllDestination keyhakyllTagshakyllContexthakyllDestination keyhakyllTagshakyllContextqrstuvwxyz{|}~qrstuvwxyz{|}~NonehakyllData about paginatorshakyllDGet the identifier for a certain page by passing in the page number.hakyll=A default paginate context which provides the following keys:  firstPageNum  firstPageUrl previousPageNum previousPageUrl  nextPageNum  nextPageUrl  lastPageNum  lastPageUrl currentPageNum currentPageUrl numPages allPageshakyllGroup items into pageshakyllSelect items to paginatehakyllIdentifiers for the pages   NoneMhakyllExpression in a templatehakyllElements of a template.!NoneZhakyll#Apply the Trim nodes to the Chunks.hakyllEnforce the invariant that:Every  has a  to its left.Every  has a  to its right.hakyll Remove the  and s that are no-ops.hakyllRemove  and  duplication.hakyll f t- applies f to every '[TemplateElement]' in t."None79MXE hakyll)Datatype used for template substitutions.hakyll.Wrap the constructor to ensure trim is called.hakyll3Parse a string into a template. You should prefer  over this.hakyllKParse an item body into a template. Provides useful error messages in the  monad.hakyll(Read a template, without metadata headerhakyll)Read complete file contents as a templatehakyll>Interpolate template expressions from context values in a pagehakyll#The following pattern is so common: Stpl <- loadBody "templates/foo.html" someCompiler >>= applyTemplate tpl context/That we have a single function which does this: FsomeCompiler >>= loadAndApplyTemplate "templates/foo.html" contexthakyll0It is also possible that you want to substitute $key$s within the body of an item. This function does that by interpreting the item body as a template, and then applying it to itself.hakyllTemplatehakyllContexthakyllPagehakyllResulting itemhakyllUnwrapped TemplatehakyllContexthakyllPagehakyllResulting itemhakyllTemplate identifierhakyllContexthakyllPagehakyllResulting itemhakyllContexthakyllItem and templatehakyllResulting item #NonehakyllOEmbed template allows you embed a template within the Haskell binary. Example: @myTemplate :: Template myTemplate = $(embedTemplate "test.html")  $NoneP hakyllQGenerate a string of a listing of pages, after applying a template to each page.hakyllZJoin a listing of pages with a string in between, after applying a template to each page.hakyll4Sort pages chronologically. Uses the same method as f for extracting the date.hakyllThe reverse of hakyll Version of % which doesn't need the actual items.hakyll Version of % which doesn't need the actual items.%None hakyll=This is a data structure to keep the configuration of a feed.hakyllTitle of the feed.hakyllDescription of the feed.hakyllName of the feed author.hakyllEmail of the feed author.hakyll)Absolute root URL of the feed site (e.g.  http://jaspervdj.be)hakyll%Abstract function to render any feed.hakyll@Render an RSS feed using given templates with a number of items.hakyllARender an Atom feed using given templates with a number of items.hakyll*Render an RSS feed with a number of items.hakyll+Render an Atom feed with a number of items.hakyllCopies  $updated$ from  $published$ if it is not already set.hakyllDefault feed templatehakyllDefault item templatehakyllFeed configurationhakyllContext for the itemshakyll Input itemshakyllResulting itemhakyll Feed templatehakyll Item templatehakyllFeed configurationhakyll Item contexthakyll Feed itemshakyllResulting feedhakyll Feed templatehakyll Item templatehakyllFeed configurationhakyll Item contexthakyll Feed itemshakyllResulting feedhakyllFeed configurationhakyll Item contexthakyll Feed itemshakyllResulting feedhakyllFeed configurationhakyll Item contexthakyll Feed itemshakyllResulting feed  5Safe s !"#6None!$hakyll/Wraps doesFileExist, also checks for index.html%&None%hakyllBuild the sitehakyllRun the checker and exithakyllRemove the output directorieshakyllPreview the sitehakyllWatch and recompile for changeshakyllRebuild the sitehakyllStart a serverhakyllUpload the site  'None2GhakyllThe command to run.hakyllGenerate the site.hakyllValidate the site output.hakyllClean up and remove cache.hakyllUpload/deploy your site.hakyll  DEPRECATEDPlease use the watch command.hakyllClean and build again.hakyllStart a preview server.hakyll2Autocompile on changes and start a preview server.hakyll The parsed command-line options.hakyllIThis usually is the function with which the user runs the hakyll compilerhakyll A variant of 9 which allows the user to specify a custom configurationhakyll A variant of  which returns an &hakyll A variant of  which expects a  Configuration and command-line 3. This gives freedom to implement your own parsing.'hakyllFThis is necessary because not everyone calls their program the same...7None3e  !"#$%&'(+,-@ABCDEFGHIJKL^_`rstuvwxyz{|}~ #!"$%&'()*/0123456789:;<=>?@AHIJKQRSTUVWXYZ[\]^_`abcdefghijklmnqrstuvwxyz{|}~(889:;<=>?@ABCDEFGHIJKLMNOP*QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwwxyz{|}~n++++++++   ,,                  //////.       !"#$%&'()*+,,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddefghijklmnoppqrstuvw00xyz{|}~                           !"""""""""""""""""""#$$$$$$%%%%%%%%%%%%%666&&&&&&&&''''''''''''' ' ' ' ' ' ''''''''''''( !"#$#%#&#'#(#)#*#+#,#-#.#/0123435#6#7#8#9#:#;#<#=#>#?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0wxyz{|}~))***********:     +++++++<++++  ,- 3!//"#$%&1'1'()*+,-2.3/0123456789:;<=>!?!@!A!B!C"D%E%F5'5G5H5I5J5K5L5M6N6OP'QR%hakyll-4.13.2.0-4Yf5yozQVCH9SZpvj7ArLHakyll.Core.ConfigurationHakyll.Core.IdentifierHakyll.Core.Identifier.PatternHakyll.Core.DependenciesHakyll.Core.LoggerHakyll.Core.MetadataHakyll.Core.StoreHakyll.Core.Util.FileHakyll.Core.ProviderHakyll.Core.Provider.MetadataHakyll.Core.Util.StringHakyll.Core.RoutesHakyll.Core.Compiler.InternalHakyll.Core.ItemHakyll.Core.CompilerHakyll.Core.UnixFilterHakyll.Core.WritableHakyll.Core.Rules.InternalHakyll.Core.RuntimeHakyll.Core.RulesHakyll.Core.FileHakyll.Web.CompressCssHakyll.Web.HtmlHakyll.Web.Html.RelativizeUrlsHakyll.Web.Pandoc.FileTypeHakyll.Web.PandocHakyll.Web.Pandoc.BiblioHakyll.Web.RedirectHakyll.Web.Template.ContextHakyll.Web.TagsHakyll.Web.Paginate$Hakyll.Web.Template.Internal.Element!Hakyll.Web.Template.Internal.TrimHakyll.Web.Template.InternalHakyll.Web.TemplateHakyll.Web.Template.ListHakyll.Web.FeedHakyll.Commands Hakyll.MainData.List.ExtendedData.Yaml.Extended'Hakyll.Core.Identifier.Pattern.InternalHakyll.Core.Provider.Internal"Hakyll.Core.Provider.MetadataCacheHakyll.Core.Util.ParsernoResultHakyll.Core.Compiler.RequireContextHakyll.Core.Item.SomeItemHakyll.Preview.PollHakyll.Preview.ServerHakyll.Web.Pandoc.Binary Paths_hakyll Hakyll.CheckHakyll ConfigurationdestinationDirectorystoreDirectory tmpDirectoryproviderDirectory ignoreFile deployCommand deploySite inMemoryCache previewHost previewPortdefaultConfigurationshouldIgnoreFile$fDefaultConfiguration IdentifieridentifierVersion fromFilePath toFilePath setVersion$fShowIdentifier$fNFDataIdentifier$fIsStringIdentifier$fBinaryIdentifier$fEqIdentifier$fOrdIdentifierPatternfromGlobfromList fromRegex fromVersion hasVersion hasNoVersion.&&..||. complementmatches filterMatchescapture fromCapture fromCaptures$fIsStringPatternDependencyFacts DependencyPatternDependencyIdentifierDependency outOfDate$fBinaryDependency$fShowDependency$fShowDependencyStateLogger VerbosityErrorMessageDebugnewflusherrorheadermessagedebug $fEqVerbosity$fOrdVerbosity$fShowVerbosityBinaryMetadataunBinaryMetadata MonadMetadata getMetadata getMatchesgetAllMetadataMetadata lookupStringlookupStringListgetMetadataFieldgetMetadataField'makePatternDependency$fBinaryBinaryYaml$fBinaryBinaryMetadataResultFoundNotFound WrongTypeStoretoMaybesetgetisMemberdeletehash $fShowStore $fShowResult $fEqResultmakeDirectoriesgetRecursiveContentsremoveDirectoryProvider resourceListresourceExistsresourceFilePathresourceString resourceLBSresourceModifiedresourceModificationTimeMetadataException loadMetadata parsePage$fShowMetadataException$fExceptionMetadataExceptionresourceMetadata resourceBody newProvidertrim replaceAllsplitAll needlePrefixRoutes UsedMetadata runRoutesidRoute setExtension matchRoute customRoute constRoute gsubRoute metadataRoute composeRoutes$fMonoidRoutes$fSemigroupRoutesCompiler unCompilerCompilerResult CompilerDoneCompilerSnapshotCompilerRequire CompilerErrorCompilerErrorsCompilationFailureCompilationNoResult CompilerWritecompilerDependenciescompilerCacheHits CompilerReadcompilerConfigcompilerUnderlyingcompilerProvidercompilerUniversecompilerRoutes compilerStorecompilerLoggerSnapshotcompilerErrorMessages runCompilercompilerResult compilerAsk compilerTellcompilerUnsafeIO compilerThrowcompilerNoResult compilerTry compilerCatchcompilerDebugEntriescompilerTellDependenciescompilerTellCacheHits$fMonoidCompilerWrite$fSemigroupCompilerWrite$fAlternativeCompiler$fMonadError[]Compiler$fMonadMetadataCompiler$fApplicativeCompiler$fMonadFailCompiler$fMonadCompiler$fFunctorCompiler$fShowCompilerWrite$fFunctorCompilerErrorsItemitemIdentifieritemBody itemSetBody withItemBody $fBinaryItem$fTraversableItem$fFoldableItem $fFunctorItem $fShowItemload loadSnapshotloadBodyloadSnapshotBodyloadAllloadAllSnapshots getUnderlyinggetUnderlyingExtensionmakeItemgetRoutegetResourceBodygetResourceStringgetResourceLBSgetResourceFilePath saveSnapshotcachedunsafeCompilerwithErrorMessage debugCompiler unixFilter unixFilterLBSWritablewrite$fWritableMarkupM $fWritable[]$fWritableByteString$fWritableByteString0 $fWritable[]0 $fWritable()RulesunRules RulesState rulesRoute rulesCompilerRuleSet rulesRoutesrulesCompilersrulesResources rulesPattern RulesRead rulesProvider rulesMatches rulesVersionemptyRulesStaterunRules$fMonoidRuleSet$fSemigroupRuleSet$fMonadMetadataRules $fMonadRules$fMonadFailRules$fFunctorRules$fApplicativeRulesrunmatch matchMetadatacreateversioncompileroute preprocessrulesExtraDependenciesTmpFileCopyFilecopyFileCompiler newTmpFile$fWritableCopyFile$fWritableTmpFile$fBinaryTmpFile$fBinaryCopyFile $fEqCopyFile $fOrdCopyFile$fShowCopyFilecompressCssCompiler compressCsswithTags withTagList demoteHeadersgetUrlswithUrlstoUrl toSiteRoot isExternal stripTags escapeHtmlrelativizeUrlsrelativizeUrlsWithFileTypeBinaryCssDocBookHtmlLaTeXLiterateHaskellMarkdown MediaWikiOrgMode PlainTextRstTextilefileType itemFileType $fEqFileType $fOrdFileType$fShowFileType$fReadFileType readPandocreadPandocWith writePandocwritePandocWith renderPandocrenderPandocWithpandocCompilerpandocCompilerWithpandocCompilerWithTransformpandocCompilerWithTransformMdefaultHakyllReaderOptionsdefaultHakyllWriterOptionsBiblioCSL cslCompilerbiblioCompilerreadPandocBibliopandocBiblioCompiler $fWritableCSL $fBinaryCSL$fWritableBiblio$fBinaryBiblio $fShowCSL $fShowBiblioRedirect redirectTocreateRedirects$fWritableRedirect$fBinaryRedirect $fEqRedirect $fOrdRedirect$fShowRedirect unContext ContextField EmptyField StringField ListFieldfield boolField constField listField listFieldWith functionField mapContext snippetFielddefaultContext bodyField metadataFieldurlField pathField titleField dateField dateFieldWith getItemUTCgetItemModificationTimemodificationTimeFieldmodificationTimeFieldWith teaserFieldteaserFieldWithSeparator missingField$fMonoidContext$fSemigroupContextTagstagsMap tagsMakeIdtagsDependencygetTags getCategory buildTagsWith buildTagsbuildCategories tagsRules renderTagsrenderTagCloudrenderTagCloudWith tagCloudFieldtagCloudFieldWith renderTagList tagsFieldWith tagsField categoryField sortTagsBycaseInsensitiveTagsPaginate paginateMappaginateMakeIdpaginateDependency PageNumber paginateEverybuildPaginateWith paginateRulespaginateContext TemplateExprIdentCall StringLiteralTemplateElementChunkExprEscapedIfForPartialTrimLTrimR TemplateKeyparseTemplateElemsFile templateElems$fIsStringTemplateKey$fBinaryTemplateExpr$fShowTemplateExpr$fBinaryTemplateElement$fBinaryTemplateKey$fShowTemplateKey$fEqTemplateKey$fEqTemplateExpr$fShowTemplateElement$fEqTemplateElementTemplate tplElements tplOrigintemplate readTemplatecompileTemplateItemtemplateBodyCompilertemplateCompiler applyTemplateloadAndApplyTemplateapplyAsTemplateunsafeReadTemplateFile$fIsStringTemplate$fWritableTemplate$fShowTemplate $fEqTemplate$fGenericTemplate$fBinaryTemplate embedTemplateapplyTemplateListapplyJoinTemplateList chronological recentFirstsortChronologicalsortRecentFirstFeedConfiguration feedTitlefeedDescriptionfeedAuthorNamefeedAuthorEmailfeedRootrenderRssWithTemplatesrenderAtomWithTemplates renderRss renderAtom$fShowFeedConfiguration$fEqFeedConfigurationCheckAll InternalLinksbuildcheckcleanpreviewwatchrebuildserverdeployCommandBuildCleanDeployPreviewRebuildServerWatchinternal_linksporthost no_serverOptions verbosity optCommandhakyll hakyllWithhakyllWithExitCodehakyllWithArgshakyllWithExitCodeAndArgs defaultParserdefaultParserPuredefaultParserPrefsdefaultParserInfo optionParser commandParser $fShowCommand $fShowOptions breakWhenbaseGHC.ListbreakGHC.Base++filterzipmap Data.Foldablefoldrfoldl'lengthnullfoldlfoldl1sumproductfoldr1maximumminimumelem Data.OldList Data.ListisSubsequenceOfData.Traversable mapAccumR mapAccumLfindnotElem minimumBy maximumByallanyorand concatMapconcatunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBynubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndunzip3unzipzipWith3zipWithzip3!!lookupreversespansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiterate'iteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailunconshead$aeson-1.4.6.0-E1ZzdvBD9VeKPALBZCtZxxData.Aeson.Types.InternalValueStringBoolObjectArrayNumberNullData.Aeson.Types.FromJSONFromJSON parseJSON parseJSONListData.Aeson.Types.ToJSONToJSONtoJSON toEncoding toJSONListtoEncodingList.=.!=.:?.:withBoolwithScientific withArraywithText withObjectobject parseEither parseMaybeParser$libyaml-0.1.2-9hd7A3cdHI1GDWxiIudqdT Text.LibyamlsetWidthdefaultFormatOptions FormatOptionsYamlMark yamlIndexyamlLine yamlColumn YamlExceptionYamlParseException yamlProblem yamlContextyamlProblemMark$yaml-0.11.2.0-HTMlmBopmvdD4tZ2Y1YtMc Data.Yaml parseMonadarraydecodeFileThrow decodeThrow decodeEither' decodeEitherdecodeFileWithWarningsdecodeFileEither decodeFiledecodeencodeFileWith encodeFile encodeWithencodedefaultEncodeOptions setFormatsetStringStyle EncodeOptionsData.Yaml.InternalisSpecialStringdefaultStringStyle decodeHelperprettyPrintParseExceptionParseException NonScalarKey UnknownAliasUnexpectedEvent InvalidYamlAesonExceptionOtherParseException NonStringKeyNonStringKeyAliasCyclicIncludesLoadSettingsException _anchorName _received _expectedtoStringtoListGHC.IOFilePath GlobComponentGlobVersionAndRegexList Everything ComplementLiteralCapture CaptureManyghc-prim GHC.Classes&&||splitscapture' fromCaptures' loggerChan loggerSync loggerSinkloggerVerbositystringstoreMapBox GHC.MaybeMaybe cacheInsert cacheLookup cacheDelete deleteFilehashMD5 providerFilesproviderOldFiles providerStore BinaryTime ResourceInforesourceInfoModifiedresourceInfoMetadataprobablyHasMetadataHeader splitMetadataresourceInvalidateMetadataCache metadataKey Data.EitherEither mtl-2.2.2Control.Monad.Error.Class catchErrorfail throwErrortraversesavegetResourceWith>>=unixFilterWith unixFilterIOSomeItem tellRoute tellCompilers tellResources tellPattern GHC.TypesIO watchUpdates staticServercompressSeparatorshandleCalcExpressionscompressCalcExpressioncompressWhitespace stripCommentswithoutStrings renderTags' parseTags'<>empty time-1.8.0.2Data.Time.Format formatTimesimpleRenderLink paginatePagecleanse canonicalize redundantdeduperecurseapplyTemplate' renderFeedmakeItemContext getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamecheckFileExistsGHC.IO.ExceptionExitCodeprogName