module Haddock.Backends.Xhtml.Meta where
import Haddock.Utils.Json
import Haddock.Version
import Data.ByteString.Builder (hPutBuilder)
import System.FilePath ((>))
import System.IO (withFile, IOMode (WriteMode))
-- | Everytime breaking changes to the Quckjump api
-- happen this needs to be modified.
quickjumpVersion :: Int
quickjumpVersion = 1
-- | Writes a json encoded file containing additional
-- information about the generated documentation. This
-- is useful for external tools (e.g. hackage).
writeHaddockMeta :: FilePath -> Bool -> IO ()
writeHaddockMeta odir withQuickjump = do
let
meta_json :: Value
meta_json = object (concat [
[ "haddock_version" .= String projectVersion ]
, [ "quickjump_version" .= quickjumpVersion | withQuickjump ]
])
withFile (odir > "meta.json") WriteMode $ \h ->
hPutBuilder h (encodeToBuilder meta_json)