<div dir="ltr"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px">Hello,</span><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px">I've been having some trouble with Setup.hs and could use some help. I'm using stack for building my project, and would like to auto-generate an HTML file as part of the build process. I'm able to specify hooks in Setup.hs to do this, but I'm running into problems.</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px">1. I'm not sure what the "correct" or suitable paths are for publishing HTML documentation. The closest I could find was the doc dir on the install path (see below). Should the HTML be created in a built folder and later copied over to an install/dist dir? The semantics associated with each of these is not clear to me.</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.800000190734863px">2. I played around with some hooks. I was able to generate the HTML file in the installation's doc dir, but it looks like that dir is only created as part of the install hook (naturally), whereas the install hook is never triggered by `stack build`. (The code below never executes if I use the instHook.) What is the right hook to use, and how?</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif"><div style="font-size:12.800000190734863px"><br></div><div style="font-size:12.800000190734863px"><div><font face="monospace" size="1">import Distribution.PackageDescription (PackageDescription)</font></div><div><font face="monospace" size="1">import Distribution.Simple (defaultMainWithHooks, simpleUserHooks)</font></div><div><font face="monospace" size="1">import Distribution.Simple.InstallDirs (InstallDirs(..), docdir)</font></div><div><font face="monospace" size="1">import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..), installDirTemplates, fromPathTemplate)</font></div><div><font face="monospace" size="1">import Distribution.Simple.Setup (InstallFlags)</font></div><div><font face="monospace" size="1">import Distribution.Simple.UserHooks (UserHooks, instHook)</font></div><div><font face="monospace" size="1">import System.Exit (ExitCode(..))</font></div><div><font face="monospace" size="1">import System.Process (system)<br></font></div><div><font face="monospace" size="1"><br></font></div><div><font face="monospace" size="1">main :: IO ()</font></div><div><font face="monospace" size="1">main = defaultMainWithHooks simpleUserHooks { instHook = readme } -- does not get invoked; postBuild does work, but where to put the generated file?</font></div><div><font face="monospace" size="1"><br></font></div><div><font face="monospace" size="1">readme :: PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()</font></div><div><font face="monospace" size="1">readme _ (LocalBuildInfo { installDirTemplates = InstallDirs { docdir = docdir' }}) _ _ = do</font></div><div><font face="monospace" size="1">  putStrLn "Generating README.html from README.md..."</font></div><div><font face="monospace" size="1">  exitCode <- system $ "./doc/generate " ++ (show destination)</font></div><div><font face="monospace" size="1">  case exitCode of ExitSuccess   -> return ()</font></div><div><font face="monospace" size="1">                   ExitFailure _ -> fail "README.html could not be generated from README.md"</font></div><div><font face="monospace" size="1">  return ()</font></div><div><font face="monospace" size="1">    where destination = fromPathTemplate docdir'</font></div></div><div style="font-size:12.800000190734863px"><font face="monospace" size="1"><br></font></div><div style="font-size:12.800000190734863px"><font face="monospace" size="1">***</font></div><div style="font-size:12.800000190734863px"><font face="monospace" size="1"><br></font></div><div>(Apologies if this is a duplicate email, wasn't sure if this already got sent previously.)</div></div></div>