aboutsummaryrefslogtreecommitdiff
path: root/haddock-api/src/Haddock/Backends/Org.hs
diff options
context:
space:
mode:
Diffstat (limited to 'haddock-api/src/Haddock/Backends/Org.hs')
-rw-r--r--haddock-api/src/Haddock/Backends/Org.hs26
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 84d48cf0..70231743 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