diff options
Diffstat (limited to 'haddock-api/src/Haddock')
-rw-r--r-- | haddock-api/src/Haddock/Backends/Org.hs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/haddock-api/src/Haddock/Backends/Org.hs b/haddock-api/src/Haddock/Backends/Org.hs index 62c3a98d..1068c0fe 100644 --- a/haddock-api/src/Haddock/Backends/Org.hs +++ b/haddock-api/src/Haddock/Backends/Org.hs @@ -24,7 +24,6 @@ License along with this file. If not, see module Haddock.Backends.Org ( ppOrg - , cleanPkgStr ) where import Control.Monad.State.Strict ( State , evalState @@ -151,7 +150,10 @@ import qualified Haddock.Types as HT ( Example(..) , Table(..) ) +import Haddock.Utils ( writeUtf8File ) import Prelude hiding ( (<>) ) +import System.Directory +import System.FilePath type PDoc = Pretty.Doc @@ -174,11 +176,23 @@ emptyDoc :: DocForDecl DocName emptyDoc = (Documentation Nothing Nothing, M.empty) -- The main function -ppOrg :: String -> Maybe (Doc RdrName) -> String -> [Interface] -> String -ppOrg title mbPrologue pkgId = orgToString . fromOrgDocument . toOrgDocument - title - mbPrologue - (cleanPkgStr pkgId) +ppOrg + :: String + -> Maybe String + -> FilePath + -> Maybe (Doc RdrName) + -> [Interface] + -> IO () +ppOrg title pkgStr odir mbPrologue ifaces = + let org = orgToString $ fromOrgDocument $ toOrgDocument + title + mbPrologue + (fromMaybe "" (cleanPkgStr <$> pkgStr)) + ifaces + in createDirectoryIfMissing True odir + >> writeUtf8File + (odir </> (fromMaybe "haddock" (cleanPkgStr <$> pkgStr) <.> "org")) + org toOrgDocument :: String -> Maybe (Doc RdrName) -> String -> [Interface] -> OrgDocument |