diff options
author | Yuchen Pei <hi@ypei.me> | 2022-08-16 12:18:12 +1000 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2022-08-16 12:18:12 +1000 |
commit | 6c53280b8d723acdff83e6333620b0958f8b600e (patch) | |
tree | d1947ae57ee2cfc23271966a29896f32fc8174de /haddock-api/src/Haddock | |
parent | ac6a9c71b8bbfc4c4086b3c091470f40ddee3d70 (diff) |
Moving file writing to inside org backend
Also handling odir now
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 b6e26ab5..76924210 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 |