h*m%      !"#$1.3.1.0 Safe-Inferred%&'()*+,?DEPRECATED -- Advanced caching tools for using slick with shake(c) Chris Penner, 2019BSD3 Safe-Inferred<slickNote that you probably don't need this if you're using the recommended Development.Shake.Forward? module. It can do a lot of caching for you, otherwise look at  .A wrapper around - which given a q which is a . allows caching and retrieving /&s within Shake. See documentation on -% or see Slick examples for more info. -- We need to define a unique datatype as our cache key newtype PostFilePath = PostFilePath String -- We can derive the classes we need (using GeneralizedNewtypeDeriving) -- so long as the underlying type implements them deriving (Show, Eq, Hashable, Binary, NFData) -- now in our shake rules we can create a cache by providing a loader action do postCache <- jsonCache $ \(PostFilePath path) -> readFile' path >>= markdownToHTML . Text.pack -- Now use postCache inside an Action to load your post with caching!slickLike > but allows caching/retrieving any JSON serializable objects.slickNote that you probably don't need this if you're using the recommended Development.Shake.Forward? module. It can do a lot of caching for you, otherwise look at  .A wrapper around  which simplifies caching of values which do NOT depend on an input parameter. Unfortunately Shake still requires that the key type implement several typeclasses, however this is easily accomplished using GeneralizedNewtypeDeriving and a wrapper around (). example usage: {-# LANGUAGE GeneralizedNewtypeDeriving #-} module Main where newtype ProjectList = ProjectList () deriving (Show, Eq, Hashable, Binary, NFData)Within your shake Rules: projectCache = simpleJsonCache (ProjectList ()) $ do -- load your project list here; returning it as a ValueslickLike 1 but allows caching any JSON serializable object.)Slick utilities for working with mustache(c) Chris Penner, 2019BSD3 Safe-Inferred  slickLike 0 from  +http://hackage.haskell.org/package/mustachemustache but tracks changes to template files and partials within Shake for cache-busting.  &Slick utilities for working with shake(c) Chris Penner, 2019BSD3 Safe-Inferred z slick9Build your slick site. This is a good candidate for your main function.Calls through to 1 with extra verbosity slickBuild your slick site with the provided shake options. This is a good candidate for your main function.| Calls through to 1 with the provided options  Slick helper utilities(c) Chris Penner, 2019BSD3 Safe-Inferred slickGiven a list of extensions and directories, find all files that match, and return full paths.slick=Attempt to convert between two JSON serializable objects (or /4s). Failure to deserialize fails the Shake build.slickfile pattern like *.mdslickdirectories to look at'Slick utilities for working with Pandoc(c) Chris Penner, 2019BSD3 Safe-Inferred"slickReasonable options for reading a markdown file. Behaves similar to Github Flavoured MarkdownslickReasonable options for rendering to HTML. Includes default code highlighting rulesslick/Reasonable options for reading an org-mode file2slick6Handle possible pandoc failure within the Action MonadslickConvert markdown text into a /;The // has a "content" key containing rendered HTML.3Metadata is assigned on the respective keys in the /slickLike 2 but allows returning any JSON serializable objectslickLike  but allows providing additional pandoc reader and writer optionsslickLike * but returns any JSON serializable object.slickConvert org-mode text into a /;The // has a "content" key containing rendered HTML.3Metadata is assigned on the respective keys in the /slickLike 1 but allows returning any JSON compatible object.slickLike  but allows providing additional pandoc reader and writer optionsslickLike 0 but allows returning any JSON compatible objectslickGiven a reader from    this creates a loader which given the source document will read its metadata into a / returning both the 3# object and the metadata within an 4. The metadata values will be read as Markdown but rendered as plain text, removing any links, pictures, and inline formatting.slickGiven a reader from   , and a writer from   , this creates a loader which given the source document will read its metadata as Markdown, then render it into a /& using the writer, returning both the 3& object and the metadata within an 4slickLike  but will deserialize the metadata into any object which implements 5. Failure to deserialize will fail the Shake build. Metadata values will be read as Markdown but rendered as plain text, removing any links, pictures, and inline formatting. slickLike  but will deserialize the metadata into any object which implements 56. Failure to deserialize will fail the Shake build.!slick*Load in a source document using the given , then render the 3 into text using the given . Takes a second % to render metadata. Returns a / wherein the rendered text is set to the "content" key and any metadata is set to its respective key in the /"slick*Load in a source document using the given , then render the 3 into text using the given . Returns a / wherein the rendered text is set to the "content" key and any metadata is set to its respective key in the /#slickLike "" but allows also deserializes the /% into any object which implements 57. Failure to deserialize will fail the Shake build.$slickFlatten a Pandoc 6 into a well-structured JSON object, rendering Pandoc text objects into plain strings along the way.slickPandoc reader options to specify extensions or other functionalityslick&Pandoc writer options to modify outputslickText for conversionslickPandoc reader options to specify extensions or other functionalityslick&Pandoc writer options to modify outputslickText for conversionslickPandoc reader options to specify extensions or other functionalityslick&Pandoc writer options to modify outputslickText for conversionslickPandoc reader options to specify extensions or other functionalityslick&Pandoc writer options to modify outputslickText for conversion!slick$The reader used to load the documentslick-The writer used to render the document itselfslick$The writer used to process metadata. "#!$ "#!$>A quick & simple static site builder built on Shake and Pandoc(c) Chris Penner, 2019BSD3 Safe-InferredU    7 !"#$%&'()*+,-./0123456789:;<=>