úÎ2.¥     SafehNone6FKTVÝ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!Like > but allows caching/retrieving any JSON serializable objects.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: nprojectCache = simpleJsonCache (ProjectList ()) $ do -- load your project list here; returning it as a ValueLike 1 but allows caching any JSON serializable object.!"Noneg Like #A but tracks changes to template files and partials within Shake.  None-; .Reasonable options for reading a markdown file(Reasonable options for rendering to HTML$6Handle possible pandoc failure within the Action MonadConvert markdown text into a  ; The  c has a "content" key containing rendered HTML Metadata is assigned on the respective keys in the  Like 2 but allows returning any JSON serializable objectGiven a reader from V this creates a loader which given the source document will read its metadata into a   returning both the %# object and the metadata within an &Like E but will deserialize the metadata into any object which implements '4. Failure to deserialize will fail the Shake build.*Load in a source document using the given  , then render the % into text using the given   . Returns a  n wherein the rendered text is set to the "content" key and any metadata is set to its respective key in the  Like " but allows also deserializes the  # into any object which implements '5. Failure to deserialize will fail the Shake build.=Attempt to convert between two JSON serializable objects (or  2s). Failure to deserialize fails the Shake build.(Flatten a Pandoc )e into a well-structured JSON object, rendering Pandoc text objects into plain strings along the way.   None-Ë%*+,-./0123456789:;#<=   >      !"#$%&'(&)*+,-../012345&67+89:34;/<=/<>/<?/<?/<@/<A/<B/CD/CE/FG/FH/FI/FJ/FK/FL/FM/0N/0O/0P/QRS$slick-0.2.0.0-D05fRBaHCoDGEk5mrXoX6D Slick.CachingSlick.Mustache Slick.Pandoc Paths_slick Text.PandocReadersSlick jsonCache jsonCache'simpleJsonCachesimpleJsonCache'$fShowCacheQuery$fEqCacheQuery$fGenericCacheQuery$fBinaryCacheQuery$fNFDataCacheQuery$fHashableCacheQuerycompileTemplate' PandocWriter PandocReadermarkdownOptions html5OptionsmarkdownToHTMLmarkdownToHTML'makePandocReadermakePandocReader' loadUsing loadUsing'convertversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName"shake-0.16.4-EcacPZJIx6BPqr6tQEJam'Development.Shake.Internal.Rules.OracleaddOracleCache Development.Shake.Internal.Value ShakeValue$aeson-1.2.4.0-DY1phcgwfeRCWsrxagiOWUData.Aeson.Types.InternalValue CacheQuery%mustache-2.3.0-4an8EAtV4CP1sIcODTW74DText.Mustache.CompilecompileTemplate unPandocM,pandoc-types-1.17.3.1-ExCeh9qRj6yEwWWtPAOG0GText.Pandoc.DefinitionPandoc%Development.Shake.Internal.Core.TypesActionData.Aeson.Types.FromJSONFromJSON flattenMetaMetaText.Mustache.Internal.Types ToMustache toMustacheTemplatenameastpartialsText.Mustache.Types~=objectText.Mustache.RendersubstituteValuesubstituteNode substituteAST substitutecheckedSubstituteValuecheckedSubstitutecatchSubstitutelocalAutomaticCompilecompileTemplateWithCacheautomaticCompile Text.MustacheoverText