V      !"#$%&'()*+,-./01234567 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R STU VWXYZ[\]^_V[\]^_V[\]^_ `EDatatype to represent the different file types Hakyll can deal with. abcdefghKGet the file type for a certain file. The type is determined by extension. iCheck if a certain FileType is renderable. j'Check if a certain file is renderable. `abcdefghij `gfedcbaabcdefghij&Datatype used for key-value mappings.  "Hakyll global configuration type. Absolute URL of the site. EAn additional context to use when rendering. This additional context  is used globally. $Directory where the site is placed. Directory for cache files. Enable index links. %Delay between polls in preview mode. Pandoc parsing options Pandoc writer options Our custom monad stack.  Simplified ask& function for the Hakyll monad stack. )Usage would typically be something like: # doSomething :: a -> b -> Hakyll c  doSomething arg1 arg2 = do / siteDirectory' <- askHakyll siteDirectory  ...       kBAuxiliary function to remove pathSeparators form the start. We don't deal B with absolute paths here. We also remove $root from the start. =Convert a relative filepath to a filepath in the destination  (default: _site). 7Convert a relative filepath to a filepath in the cache  (default: _cache). JGet the url for a given page. For most extensions, this would be the path  itself. It' s only for rendered extensions ( .markdown, .rst, .lhs this " function returns a path with a .html extension instead. BGet the relative url to the site root, for a given (absolute) url Swaps spaces for l. @Given a path to a file, try to make the path writable by making  all directories on the path. IGet all contents of a directory. Note that files starting with a dot (.)  will be ignored. *Sort a list of filenames on the basename. FA filter that takes all file names with a given extension. Prefix the  extension with a dot: 0 havingExtension ".markdown" [ "index.markdown" + , "style.css" 5 ] == ["index.markdown"] <Perform a Hakyll action on every file in a given directory. <Check if a timestamp is newer then a number of given files. The time to check. !Dependencies of the cached file. 7Check if a file is newer then a number of given files. The cached file. !Dependencies of the cached file.    DType used for rendering computations that carry along dependencies. Dependencies of the  HakyllAction. #URL pointing to the result of this  HakyllAction. The actual render function.  Create a  HakyllAction from a function. Function to execute.  Create a  HakyllAction from a simple Hakyll value. Hakyll value to pass on. ! Create a  HakyllAction that operates on one file. File to operate on. Value to pass on. The resulting action. "Run a  HakyllAction now. Render action to run. Result of the action. #Run a  HakyllAction6, but only when it is out-of-date. At this point, the   actionUrl field must be set. Action to run. Empty result. $Chain a number of  HakyllAction computations. Actions to chain. Resulting action.  !"#$  !$"#  !"#$m)We can store all datatypes instantiating Binary to the cache. The cache ! directory is specified by the HakyllConfiguration , usually _cache. nLGet a value from the cache. The filepath given should not be located in the K cache. This function performs a timestamp check on the filepath and the M filepath in the cache, and only returns the cached value when it is still  up-to-date. oJCheck if a file in the cache is more recent than a number of other files. mnomno p*Datatype used for template substitutions. qrstu Construct a Template from a string. vRead a Template, from a file. This function might fetch the Template ! from the cache, if available. w Substitutes  $identifiers in the given Template by values from the given  Context@. When a key is not found, it is left as it is. You can specify 3 the characters used to replace escaped dollars ($$) here. x substitute? for use during a chain. This will leave escaped characters as  they are. y substitute< for the end of a chain (just before writing). This renders  escaped characters. pqrstuvwxy ptsrqqrstuvwxyzHMatch a regular expression against a string, returning more information  about the match. {JReplaces every occurance of the given regexp with the replacement string. Search pattern  Input string Replacement text Output string |GSplits a string based on a regular expression. The regular expression " should identify one delimiter. %#Split a list at a certain element. &JSubstitute a regex. Simplified interface. This function performs a global  substitution. Pattern to replace (regex). Replacement string. Input string. Result. 'Simple regex matching. Input string. Pattern to match. %&'%&'%&'(Do something with a value in a Context", but keep the old value as well. * If the key given is not present in the Context, nothing will happen. )Key of which the value should be copied. #Key the value should be copied to.  Function to apply on the value. )Change a value in a Context.   import Data.Char (toUpper) # changeValue "title" (map toUpper) !Will put the title in UPPERCASE. Key to change.  Function to apply on the value. **Copy a value from one key to another in a Context.  Source key. Destination key. +"When the context has a key called path in a  folder/yyyy-mm-dd-title.extension$ format (the convention for pages), & this function can render the date.  . renderDate "date" "%B %e, %Y" "Date unknown" Will render something like January 32, 2010. 1Key in which the rendered date should be placed. Format to use on the date. 0Default key, in case the date cannot be parsed. ,EChange the extension of a file. This is only needed when you want to # render, for example, mardown to .php files instead of .html files.   changeExtension "php"  Will render  test.markdown to test.php instead of  test.html. Extension to change to. -8Change the body of a file using a certain manipulation.   import Data.Char (toUpper)  renderBody (map toUpper) 3Will put the entire body of the page in UPPERCASE. ()*+,-()*+,-()*+,-}$Compress CSS to speed up your site. ~(Compresses certain forms of separators. Compresses all whitespace. (Function that strips CSS comments away. }}*A pure render function - used internally. Template to use for rendering. 1Renderable object to render with given template. 0The body of the result will contain the render. .4This is the most simple render action. You render a Context with a & template, and get back the result. Template to use for rendering. The render computation. / Render each Context0 with the given templates, then concatenate the ( result. So, basically this function:  Takes every Context.  Renders every Context. with all given templates. This is comparable  with a renderChain action. / Concatenates the result and returns that as a String. 0GChain a render action for a page with a number of templates. This will L also write the result to the site destination. This is the preferred way  to do general rendering.  ' renderChain [ "templates/notice.html" ( , "templates/default.html" / ] $ createPagePath "warning.html" This code will first render  warning.html using  templates/ notice.html, ( and will then render the result with  templates/ default.html. 1JMark a certain file as static, so it will just be copied when the site is  generated. 2#Render a css file, compressing it. 3@Write a page to the site destination. Final action after render  chains and such. ./0123./0123./01234>Trim a string (drop spaces, tabs and newlines at both sides). 5'Strip html tags from the given string. 6Make a HTML link. 7 link "foo" "bar.html" == "<a href='bar.html'>foo</a>"  Link text. Link destination. 456456456-Get a render function for a given extension. Split a page into sections. 3Check if the given string is a metadata delimiter. Read one section of a page. Render function. 2If this section is the first section in the page. Lines in the section. Key-values extracted. DRead a page from a file. Metadata is supported, and if the filename  has a  .markdown. extension, it will be rendered using pandoc. LRead a page. Might fetch it from the cache if available. Otherwise, it will : read it from the file given and store it in the cache.  7 Create a Context7 from a page file stored on the disk. This is probably # the most common way to create a Context. 8 Create a  custom page Context. FThe association list given maps keys to values for substitution. Note ( that as value, you can either give a String or a  HakyllAction () String1. The latter is preferred for more complex data, * since it allows dependency checking. A String is obviously more simple  to use in some cases. 9A createCustomPage, function specialized in creating listings. 5This function creates a listing of a certain list of Context s. Every G item in the list is created by applying the given template to every M renderable. You can also specify additional context to be included in the   CustomPage. Destination of the page.  Templates to render items with. Renderables in the list. : Combine two Context/s. The url will always be taken from the first   Renderable . Also, if a `$key`% is present in both renderables, the  value from the first Context will be taken as well.  You can see this as a this as a union between two mappings. ; Combine two Context*s and set a custom URL. This behaves like combine,  except that for the url( field, the given URL is always chosen. 789:;789:;789:; <>This is a data structure to keep the configuration of a feed. =>6Url of the feed (relative to site root). For example, rss.xml. ?Title of the feed. @Description of the feed. AName of the feed author. LThis is an auxiliary function to create a listing that is, in fact, a feed. ' The items should be sorted on date. Feed configuration. Items to include. Feed template. Item template. &Abstract function to render any feed. Feed configuration. Items to include in the feed. Feed template. Item template. B+Render an RSS feed with a number of items. Feed configuration. Items to include in the feed. C,Render an Atom feed with a number of items. Feed configuration. Items to include in the feed. <=>?@ABC<=>?@ABC<=>?@A=>?@ABC D"A configuration for a pagination. EF)Label for the link to the previous page. G%Label for the link to the next page. H&Label for the link to the first page. I%Label for the link to the last page. J/A simple default configuration for pagination. KHThe most important function for pagination. This function operates on a  list of Context6s (the pages), and basically just adds fields to them ) by combining them with a custom page. -The following metadata fields will be added:   $previous: A link to the previous page.  $next: A link to the next page.  $first: A link to the first page.  $last: A link to the last page.  $index%: 1-based index of the current page.  $length: Total number of pages. When  $previous or $next. are not available, they will be just a label O without a link. The same goes for when we are on the first or last page for  $first and $last. DEFGHIJKDEFGHIJKDEFGHIEFGHIJK LType for a tag map. FThis is a map associating tags or categories to the appropriate pages N using that tag or category. In the case of categories, each path will only ? appear under one category - this is not the case with tags. HRead a tag map. This is a internally used function that can be used for # tags as well as for categories. %Function to get tags from a context. "Unique identifier for the tagmap. MRead a TagMap , using the tags metadata field. Unique identifier for the map. Paths to get tags from. NRead a TagMap4, using the subdirectories the pages are placed in. Unique identifier for the map. Paths to get tags from. OPRender a tag cloud. &Function to produce an url for a tag.  Smallest font size, in percent. Biggest font size, in percent. QRender all tags to links. DOn your site, it is nice if you can display the tags on a page, but < naturally, most people would expect these are clickable. JSo, this function takes a function to produce an url for a given tag, and  applies it on all tags. JNote that it is your own responsibility to ensure a page with such an url  exists. &Function to produce an url for a tag. LMNOPQLMNOPQLMNOPQ 9Simple representation of the HTTP response we send back. )Simple representation of a HTTP request. Custom monad stack. General server configuration. Function to log from a chan. Read a HTTP request from a (. For now, this will ignore the request  headers and body. A default response. ,Create a response for a given HTTP request.  Create a simple error response.  Error code. Error phrase. Result. Create a simple get response. KGet the mime header for a certain filename. This is based on the extension  of the given .  Respond to an incoming request. R(Start a simple http server on the given , serving the given  directory. RRR /The default reader options for pandoc parsing. 1The default writer options for pandoc rendering. S"The default hakyll configuration. T@Main function to run Hakyll with the default configuration. The H absolute URL is only used in certain cases, for example RSS feeds et  cetera. 2Absolute URL of your site. Used in certain cases.  You code. U9Main function to run hakyll with a custom configuration. Clean up directories. Autocompile mode. Show usage information. )Start a server at the given port number. STUSTUSTU !"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHI J K L M N O O P Q R S T U V V W X Y Z [ \ ] ^ _ ` a b cdefghijklmnopqrstuvwxyz{|}~        } }  hakyll-2.1Text.Hakyll.ContextText.Hakyll.HakyllMonadText.Hakyll.FileText.Hakyll.HakyllActionText.Hakyll.Regex Text.Hakyll.ContextManipulationsText.Hakyll.RenderText.Hakyll.UtilText.Hakyll.CreateContextText.Hakyll.FeedText.Hakyll.PaginateText.Hakyll.TagsNetwork.Hakyll.SimpleServer Text.Hakyll Paths_hakyllText.Hakyll.Internal.FileTypeText.Hakyll.Internal.CacheText.Hakyll.Internal.Template Text.Hakyll.Internal.CompressCssText.Hakyll.Internal.PageContextHakyllConfiguration absoluteUrladditionalContext siteDirectorycacheDirectoryenableIndexUrlpreviewPollDelaypandocParserStatepandocWriterOptionsHakyll askHakyllgetAdditionalContext toDestinationtoCachetoUrltoRoot removeSpacesmakeDirectoriesgetRecursiveContentssortByBaseNamehavingExtension directory isMoreRecentisFileMoreRecent HakyllActionactionDependencies actionUrlactionFunctioncreateHakyllActioncreateSimpleHakyllActioncreateFileHakyllActionrunHakyllActionrunHakyllActionIfNeededchain splitRegexsubstituteRegex matchesRegex renderValue changeValue copyValue renderDatechangeExtension renderBodyrenderrenderAndConcat renderChainstaticcss writePagetrim stripHtmllink createPagecreateCustomPage createListingcombinecombineWithUrlFeedConfigurationfeedUrl feedTitlefeedDescriptionfeedAuthorName renderRss renderAtomPaginateConfiguration previousLabel nextLabel firstLabel lastLabeldefaultPaginateConfigurationpaginateTagMap readTagMapreadCategoryMap withTagMaprenderTagCloudrenderTagLinks simpleServerdefaultHakyllConfigurationhakyllhakyllWithConfigurationversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameFileTypeUnknownFileTypeTextReStructuredTextMarkdownLiterateHaskellMarkdownLaTeXHtml getFileType isRenderableisRenderableFileremoveLeadingSeparatorbaseGHC.Num- storeInCache getFromCacheisCacheMoreRecentTemplateEndEscapeCharacter IdentifierChunk fromString readTemplate substituteregularSubstitutefinalSubstitute matchRegexAllsubRegex splitRegex' compressCsscompressSeparatorscompressWhitespace stripComments pureRendergetRenderFunctionsplitAtDelimitersisPossibleDelimiter readSectionreadPageFromFilereadPage createFeed renderFeedreadMapResponseresponseVersionresponseStatusCoderesponsePhraseresponseHeaders responseBodyRequest requestMethod requestURIrequestVersionServer ServerConfig documentRoot portNumber logChannellog readRequestGHC.IO.Handle.TypesHandledefaultResponsecreateResponsecreateErrorResponsecreateGetResponse getMIMEHeaderGHC.IOFilePathrespondnetwork-2.2.1.7Network PortNumberNetwork.Socket.InternaldefaultPandocParserStatedefaultPandocWriterOptionscleanpreviewhelpserver