śĪ!’īpš~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} None("#$%&',-./1245678=>?@ACEHMPSVX_`ahč~€‚ƒ„…Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ah ń shakebookDRemote json lookup for an oracle, this should contain a URL as Text. shakebook>Adds an oracle cache for looking up json from a remote server.Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ah¢  shakebookLifted version of † with well-typed ‡.  shakebook-Build a single page straight from a template.  shakebookThe HTML templatate. shakebook A JSON value. shakebookThe out filepath.  Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone)"#$%&',-./1245678=>?@ACEHMPSVX_`ah+X shakebookNatural transformation from ˆ to a ‰ shakebook&Run a Pandoc reader as a Shake action. shakebook"Read a markdown file and return a Š as an Action. shakebook#Read a mediawiki file and return a Š as an Action. shakebookRead a LaTeX file and return a Š as an Action. shakebookRead a CSV file and return a Š as an Action. shakebookFind all the images in a Š data structure and call ‹ on them. shakebookMake a pdflatex in an Œ. shakebooköPrecarious function that demotes Header numbers within the Pandoc according to its depth in the Cofree. This is so that Headers that H1s that would correctly display for an HTML page will be lower in the table of contents in the PDF equivalent. shakebookWFor a list of file extensions, replace the images with an Inline based on its src path. shakebookPrefix all images in a Š with a directory. shakebookFlatten a pandoc  object to a Ž. shakebook)View the "content" field of a JSON value. shakebook$Add "content" field from input Text. shakebook*View the "src-path" field of a JSON Value. shakebook)Add "src-path" field based on input Text. shakebook%View the "url" field of a JSON Value.‘ shakebook Add "url" field from input Text.’ shakebookBAdd a leading slash to a `Path Rel File` to turn it into a url as “. shakebooknGet a JSON Value of Markdown Data with markdown body as "contents" field and the srcPath as "srcPath" field.  Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ahZ`*! shakebookSrcFile index for a ) for use with ”.# shakebook!YearMonth (yyyy, mm) index for a ) for use with ”.% shakebookPosted index for a ) for use with ”.' shakebookTag indices for a ) for use with ”.) shakebookIndexable Post Type, shakebook'View the "image" field of a JSON value.- shakebook*View the "modified" field of a JSON value.. shakebook3View the "date" field of a JSON Value as a UTCTime./ shakebook.View the "date" field of a JSON Value as Text.0 shakebook0View the "tags" field of a JSON Value as a list.1 shakebook'View the "title" field of a JSON Value.2 shakebook'View all post tags for a list of posts.3 shakebook)View all posts times for a list of posts.4 shakebook%Add "base-url" field from input Text.5 shakebook&Add "full-url" field from input Text.6 shakebook.Add "highlighting-css" field from input Style.7 shakebook(Add "modified" field from input UTCTime.8 shakebook"Add "next" field from input Value.9 shakebook%Add "pages" field from input [Value].: shakebook(Add "prettydate" field using input Text.; shakebook'Add "previous" field using input Value.< shakebook)Add "posts" field based on input [Value].= shakebook+Add "recent-posts" field using input Value.> shakebook'Add "site-title" field from input Text.? shakebook0Add "social-links" field based on input [Value].@ shakebook/Add "subsections" field based on input [Value].A shakebook-Add "tag-index" field based on input [Value].B shakebook-Add "tag-links" field based on input [Value].C shakebook'Add "teaser" field based on input Text.D shakebook&Add "title" field based on input Text.E shakebookIAssuming a "date" field, enrich using withPrettyDate and a format string.F shakebook3Assuming a "tags" field, enrich using withTagLinks.G shakebookJAssuming a "content" field with a spitter section, enrich using withTeaserH shakebook,Add both "next" and "previous" fields using  withPostNext and withPostPreviousI shakebook4Extend a Zipper of Values to add "previous" objects.J shakebook0Extend a Zipper of Values to add "next" objects.K shakebookXExtend a Zipper of Values to add list of "pages" within r hops either side of the focus.L shakebookoCreate link data object with fields "id" and "url" using an id and a function | transforming an id into a url.O shakebookUTake a Value loading function and a filepattern and return an indexable set of Posts.P shakebookACreate a `Zipper [] Post` from an `IxSet xs Post` by ordering by %.Q shakebookXCreate a blog navbar object for a posts section, with layers "toc1", "toc2", and "toc3".R shakebookUCreate a toc navbar object for a docs section, with layers "toc1", "toc2" and "toc3".Q shakebook"Top level title, e.g Blog shakebookRoot page, e.g "/posts" shakebook,Formatting function to a UTCTime to a title. shakebook6Formatting function to convert a UTCTime to a URL link4!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST4,-./0123456789:;<=?>@ABCDEFGJIHKQTLSR)*+'(%&#$!"OPNMCopyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ah_üp shakebookConvert a Post to an Atom Entryq shakebook(Build an Atom Feed from a list of posts.pqpqCopyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone)"#$%&',-./1245678=>?@ACEHMPSVX_`ahb  rstuvwxyz{ rstuvwxyz{Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ahet|}|} Copyright (C) 2020 Daniel Firth&Daniel Firth <dan.firth@homotopic.techNone'"#$%&',-./1245678=>?@ACEHMPSVX_`ahh’8•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’     Ž !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹‡ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīŒļšńņóōõö÷ųłśūüżž’      !"#$%&'()*+,-‹./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ‰RSTUVWXYZ[\]^_`abcdefghijkl !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTpqrstuvwxyz{|}m     !"#$%&'()*++,,--..//0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜“™š›œ–—žŸ ”¢£¤„¦§Ø©Ŗ«¬­®¬­Æ¬­°±²³±²“±²µ±¶·±¶ø±¶¹±¶ŗ±»¼½¾æ½¾Ą±Į±ĮĆÄÅĘÄÅĒÄÅČÄÅÉÄÅŹÄÅĖÄÅĢĶĪĻĶĪŠĶĪџŅӟŅԟŅ՟Ņ֟ŅןŅŲŸŅŁŸŅڟŅ۟ŅÜŸŅŻŸŅޟŅßŸŅąŸįāŸćäŸćåŸęēŸęčŸęéŸęźŸęėŸęģŸęķŸęīŸęļŸęšŸęńŸęņŸęóŸęōŸęõŸęöŸę÷ŸęųŸęłŸęśŸęūŸęüŸężŸęžŸę’ŸęŸęŸęŸęŸęŸęŸęŸęŸęŸę Ÿ  Ÿ  Ÿ  Ÿ ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ Ÿ!Ÿ"Ÿ#Ÿ$Ÿ%Ÿ&Ÿ'Ÿ(Ÿ)Ÿ*Ÿ+Ÿ,Ÿ-Ÿ.Ÿ/Ÿ0Ÿ1Ÿ2Ÿ3Ÿ4Ÿ56Ÿ57Ÿ 8Ÿ 9Ÿ :Ÿ ;Ÿ <Ÿ =Ÿ >Ÿ ?Ÿ @Ÿ AŸ BŸ CŸ DŸ EŸ BŸ CŸ FŸ GŸ HŸ HŸ IŸ JŸ KŸ LŸ MŸ NŸ OŸ PŸ QŸ RŸ SŸ TŸ UŸ VŸ WŸ XŸ YŸ ZŸ [Ÿ\]Ÿ\^_`a_`b_`c_`dÄefÄegÄehÄeiÄejÄejÄklÄkmÄnoÄnpÄnqÄnrÄnsÄntÄnuÄnvÄnwÄnxÄnyÄnzÄn{Än|Än}Än~ÄnÄn€ÄnÄn‚Än‚Änƒ„…†„…‡„…ˆ„…‰„…Š‹ŒŽŽ‘Ž’Ž“Ž”Ž•Ž–Ž—Ž˜Ž™ŽšŽ›ŽœŽŽžŸŽž ”¢”£”¤”„”¦”§Ø©ŖØ©«Ø©¬Ø­®Ø­ÆØ­°Ø±²Ø±³Ø±“رµØ±¶Ø±·Ø±øØ±¹Øŗ»¼½¼¾¼æ¼Ą¼Į¼Ā¼ƍ¼č¼ō¼ʍ¼Ē¼ȍ¼ɍ¼Ź¼Ė¼Ģ¼Ķ¼Ī¼Ļ¼Š¼э¼Ņ¼Ӎ¼Ō¼Ս¼֍¼׍¼Ų¼Ł¼Ś¼Ū¼܍¼Ż¼Ž¼ߍ¼ą¼į¼ā¼ć¼ä¼å¼ę¼ē¼č¼é¼ź¼ė¼ģ¼ķ¼ī¼ļ¼į¼ā¼šŽńņóōņóõņóöņó÷ņóųņółņóś›ūü›ūż›ž’›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž ›ž ›ž ›ž ›ž ›ž ›ž ›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž›ž› !› "›#$›%&›'(›')›'*›'+›',›'-›'.›'/›'0›'1›'2›'3›'4›'5›'6›'7›'8›'9›':›';›'<›'=›'>›'?›'@ABCABCABDABEABFABGABHABIABJABKABLABB“MN“MO“MP“MQ“RS“RT“RU“RV“RW“XY“XZ“X[“™\“™]“™^“™_“™`“™a“™b“™c“™d“™e“™f“™g“hi“hj“hk“hl“hm“hn“ho“hp“hq“hr“hs“ht“hu“hv“wx“wy“wz“w{“w|“w}“w~“w“w€“‚“ƒ“„…“„†“”‡“”ˆ“”‰“”Š“”‹“”Œ“”“”Ž“”“”“”‘“”‘“”’“”““””“”•“”–“”—“”˜™š›™šœ™š™šž™šŸ™š ™š”™š¢™š£™š¤™š„™š¦™š§™šØ™š©™šŖ™šŖ«(shakebook-0.9.1.0-IRMK1CoZDscGHDAcI3agjUShakebook.MustacheShakebook.ConduitShakebook.PandocShakebook.ConventionsShakebook.FeedShakebook.DefaultsShakebook.SitemapPaths_shakebook Shakebook%mustache-2.3.1-K0f4lCnY8rCKLPT9f5kKAdText.Mustache.Internal.TypesTemplateRemoteJSONLookupaddRemoteJSONOracleCache$fShowRemoteJSONLookup$fEqRemoteJSONLookup$fNFDataRemoteJSONLookup$fBinaryRemoteJSONLookup$fHashableRemoteJSONLookupcompileTemplate'buildPageActionbuildPageAction'PandocActionException runPandocAreadFilePandocreadMarkdownFilereadMediaWikiFile readLaTeXFile readCSVFileneedPandocImagesIn makePDFLaTeXprogressivelyDemoteHeadersreplaceUnusableImagesprefixAllImages flattenMeta viewContent viewSrcPathviewUrlloadMarkdownAsJSON $fExceptionPandocActionException$fShowPandocActionException$fEqPandocActionExceptionSrcFile YearMonthPostedTagPostunPost viewImage viewModified viewPostTimeviewPostTimeRawviewTags viewTitleviewAllPostTagsviewAllPostTimes withBaseUrl withFullUrlwithHighlighting withModifiedwithNext withPageswithPrettyDate withPrevious withPostswithRecentPosts withSiteTitlewithSocialLinkswithSubsections withTagIndex withTagLinks withTeaser withTitleenrichPrettyDateenrichTagLinks enrichTeaserextendNextPreviousextendPrevious extendNextextendPageNeighbours genLinkDatatoYearMonthPairfromYearMonthPair postIndex postZippergenBlogNavbarDatagenTocNavbarData genPageDatagenIndexPageData$fIndexable:Post $fShowPost$fEqPost $fOrdPost $fDataPost$fHashablePost $fToJSONPost $fShowTag$fEqTag$fOrdTag $fDataTag $fHashableTag $fShowPosted $fEqPosted $fOrdPosted $fDataPosted$fHashablePosted$fShowYearMonth $fEqYearMonth$fOrdYearMonth$fDataYearMonth$fHashableYearMonth $fShowSrcFile $fEqSrcFile $fOrdSrcFile $fDataSrcFile$fHashableSrcFile asAtomEntry buildFeeddefaultMonthUrlFormatdefaultPrettyMonthFormatdefaultPrettyTimeFormatdefaultMonthUrlFragmentdefaultEnrichPostdefaultMarkdownReaderOptionsdefaultHtml5WriterOptionsdefaultLatexWriterOptionsdefaultVideoReplacementdefaultPagePaths asSitemapUrl buildSitemapversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName#slick-1.0.1.1-dGqsSVD7Wu1tRkGjjB5JySlick.Mustache!path-0.8.0-383uXnPqafS5408rOv3Ayj Path.InternalPath"pandoc-2.10-CR5oxAbG0Q2I7DFM8WEGyeText.Pandoc.Class.PandocIOPandocIO)shake-plus-0.2.0.1-1m4a5wKDZ5H6Jm2rKnJib4Development.Shake.Plus.Core MonadAction'pandoc-types-1.21-62HCvd1ZUX5sWPx7SvSi6Text.Pandoc.DefinitionPandoc Development.Shake.Plus.FileRulesneed#shake-0.19.1-8SfZqGmbnTHEkJMulYOpqV%Development.Shake.Internal.Core.TypesActionMeta"aeson-1.5.2.0-CinxXVV2bFl2anfWj6tgData.Aeson.Types.InternalValue withContent withSrcPathwithUrl toGroundedUrl text-1.2.3.1Data.Text.InternalText&ixset-typed-0.5-6sWbGogCx6HKTgYkz04Ub9Data.IxSet.TypedIxSetghc-prim GHC.ClassesEq==/=baseGHC.BaseFunctorfmap<$GHC.ShowShow showsPrecshowshowListData.Typeable.InternalTypeabledeepseq-1.4.4.0Control.DeepSeqNFDatarnf Data.Functor<$>$>$comonad-5.0.6-JfcN6iPhxp7Eeulcp61Z8tControl.Comonad.Store.Class ComonadStorepeek experimentseeksseekpeekspos'hashable-1.3.0.0-1RsrIcitxVDKffGN1TuMlmData.Hashable.ClassHashablehash hashWithSalt Data.AesoneitherDecodeFileStrict'eitherDecodeStrict' eitherDecode'eitherDecodeFileStricteitherDecodeStrict eitherDecodedecodeFileStrict' decodeStrict'decode'decodeFileStrict decodeStrictdecode encodeFileencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericToJSONKeygenericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONGToJSON'ToArgsToJSONtoJSON toEncoding toJSONListtoEncodingListKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValue GToJSONKeyToJSON1 liftToJSONliftToJSONListliftToEncodingliftToEncodingListToJSON2 liftToJSON2liftToJSONList2liftToEncoding2liftToEncodingList2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeriesData.Aeson.Types.FromJSON.!=.:!.:?.:fromJSONwithEmbeddedJSONwithBoolwithScientific withArraywithText withObject parseJSON2 parseJSON1genericFromJSONKeygenericLiftParseJSONgenericParseJSONparseIndexedJSON GFromJSONFromArgsFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue GFromJSONKey FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsoncamelTo2defaultJSONKeyOptionsdefaultTaggedObjectdefaultOptionsobjectJSONPathResultErrorSuccessObjectArrayStringBoolNumberNull DotNetTimefromDotNetTimeOptionsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordstagSingleConstructorsrejectUnknownFields SumEncoding TaggedObject UntaggedValueObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameJSONKeyOptions keyModifierData.Aeson.Types.GenericZeroOnebinary-0.8.6.0Data.Binary.ClassBinarygetputputListControl.Comonad.Trans.Store runStoreTrunStorestoreStoreStoreTControl.Comonad.Trans.Class ComonadTranslowerControl.ComonadliftW3liftW2<@@>=>==<=<<==>>kfixcfixwfixliftWComonad duplicateextractextend ComonadApply<@>@><@ Cokleisli runCokleisli*comonad-extras-4.0.1-EAZRXLqiNP9tVFKN0DsysControl.Comonad.Store.Zippersizeunzipperzipper1zipperZipper"extra-1.7.3-5Rp9QH7wO4OF4a25iOgD0rControl.Monad.Extraunit!free-5.1.3-5J5m6Whlv3F1SbmBznqUkcControl.Comonad.Cofreeleavesshoots telescoped_ telescoped_unwrap_extractsection hoistCofreeunfoldMunfoldcoiterWcoiterCofree:<Control.Comonad.Cofree.Class ComonadCofreeunwrapText.Pandoc.HighlightingfromListingsLanguagetoListingsLanguage highlightlanguagesByExtension languageshighlightingStyles-skylighting-core-0.8.5-IgR6noCh7H74DFh19zROx8Skylighting.Format.HTML styleToCssformatHtmlBlockformatHtmlInlineSkylighting.Format.LaTeX styleToLaTeXformatLaTeXBlockformatLaTeXInlineSkylighting.Styleszenburn monochromehaddockespressotangopygments breezeDarkkateSkylighting.TypesStyle Path.Posix isParentOfstripDir parseSomeFile parseSomeDir fromSomeFile fromSomeDir mkRelFile mkAbsFilemkRelDirmkAbsDir fromRelFile fromAbsFile fromRelDir fromAbsDir parseRelFile parseAbsFile parseRelDir parseAbsDir-<.>setFileExtensionreplaceExtension<.>addFileExtension addExtension fileExtensionsplitExtensiondirnamefilenameparentisProperPrefixOfstripProperPrefixrelfileabsfilereldirabsdirAbsRelFileDir PathException InvalidAbsDir InvalidRelDirInvalidAbsFileInvalidRelFile InvalidFile InvalidDirNotAProperPrefixHasNoExtensionInvalidExtensionSomeBasePathParseException toFilePath(path-like-0.2.0.1-4mYoxaOgTvY15xAIgXZbnl Path.Like/>PathLiketoPathFileLiketoFileDirLiketoDirDevelopment.Shake.Internal.Args shakeArgsshakeDevelopment.Shake.Commandcmd_cmdFSATraceFSAWriteFSARead FSADeleteFSAMoveFSAQueryFSATouchStdout fromStdout StdoutTrimfromStdoutTrimStderr fromStderr Stdouterr fromStdouterrExitfromExitProcess fromProcessCmdTime fromCmdTimeCmdLine fromCmdLine CmdString CmdResult:-> CmdArgument CmdArguments cmdArguments IsCmdArgument toCmdArgument%Development.Shake.Internal.Core.RulesRules RuleResult"Development.Shake.Internal.Options shakeOptions&Development.Shake.Internal.FilePattern FilePattern$Development.Shake.Internal.CmdOption CmdOptionTimeoutEnvTracedCwdAddEnvRemEnvAddPathStdinStdinBS FileStdinShell BinaryPipes WithStdout WithStderr EchoStdout EchoStderr FileStdout FileStderrAutoDeps UserCommand FSAOptionsCloseFileHandlesNoProcessGroup InheritStdin%within-0.2.0.0-KfMeEudad8cLbOA6vlvphoWithinWithinTlocalDir localDirMasWithinwithin fromWithin blinkLocalDir blinkAndMap blinkAndMapMlocalDirAndMapMDevelopment.Shake.Plus.TempwithTempDirWithinwithTempFileWithin withTempDir withTempFileDevelopment.Shake.Plus.Oracle askOracles askOracle addOracleHashaddOracleCache addOracleDevelopment.Shake.Plus.LoadersbatchLoadWithin'batchLoadWithin batchLoadphony|%^>%^>|%>%> wantWithin needWithinwantInneedInwantPneedPwantDevelopment.Shake.Plus.FileremoveFilesAfter removeFileswriteFileChangedInwriteFileChanged writeFileIn'writeFileLines writeFile' readFileIn' readFileLines readFile'copyFileChanged'copyFileChanged copyFile'copyFile Development.Shake.Plus.DirectorygetDirectoryFilesWithinIO'getDirectoryFilesWithinIOgetDirectoryFilesIOgetDirectoryDirsgetDirectoryFilesWithin'getDirectoryFilesWithingetDirectoryFilesdoesDirectoryExist doesFileExistDevelopment.Shake.Plus.Cache newCacheIOnewCacheDevelopment.Shake.Plus.Commandcommand_commandparforPparallelrunSimpleShakePlus runShakePlus runRActiontoActionaskUnliftActionwithUnliftAction liftAction UnliftAction unliftActionMonadUnliftActionwithRunInAction MonadRules liftRulesRAction ShakePlus+zipper-extra-0.1.3.1-Jd1jhZ3IKvjKB750q1wcvWControl.Comonad.Zipper.Extra seekOnThrowseekOnelemIndexThrowzipper' zipperWithinzipperPreviousMaybezipperNextMaybe paginate'paginatePaginationExceptionEmptyContentsError ZeroPageSizeUnknownPaginationExceptionZipperException EmptyZipperElemNotFoundException