diff options
| author | Yuchen Pei <hi@ypei.me> | 2022-08-16 12:18:12 +1000 | 
|---|---|---|
| committer | Yuchen Pei <hi@ypei.me> | 2022-08-16 14:06:43 +1000 | 
| commit | d6d4c8ad32ef751ced0adb36ea67e1dd1278c0b6 (patch) | |
| tree | 16f2cd0173ca561a72267829a6eebca038354f52 /haddock-api/src | |
| parent | 30517b24ca6b4019c3301f06837325615faac8af (diff) | |
Moving file writing to inside org backend
Also handling odir now
Diffstat (limited to 'haddock-api/src')
| -rw-r--r-- | haddock-api/src/Haddock.hs | 5 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Org.hs | 26 | 
2 files changed, 23 insertions, 8 deletions
diff --git a/haddock-api/src/Haddock.hs b/haddock-api/src/Haddock.hs index 038d31d9..bdcdf83c 100644 --- a/haddock-api/src/Haddock.hs +++ b/haddock-api/src/Haddock.hs @@ -466,8 +466,9 @@ render logger dflags unit_state flags sinceQual qual ifaces installedIfaces extS        return ()    when (Flag_Org `elem` flags) $ do      withTiming logger dflags' "ppOrg" (const ()) $ do -      let org = {-# SCC ppOrg #-} ppOrg title (_doc <$> prologue) (fromJust pkgStr) visibleIfaces -      writeUtf8File (fromMaybe "haddock" (cleanPkgStr <$> pkgStr) <.> "org") org  +      _ <- {-# SCC ppOrg #-} +           ppOrg title pkgStr odir (_doc <$> prologue) visibleIfaces +      return ()    when (Flag_HyperlinkedSource `elem` flags && not (null ifaces)) $ do      withTiming logger dflags' "ppHyperlinkedSource" (const ()) $ do 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  | 
