{-# OPTIONS_GHC -fno-warn-orphans #-} module Haddock.Doc ( module Documentation.Haddock.Doc , docCodeBlock , combineDocumentation ) where import Data.Maybe import Documentation.Haddock.Doc import Haddock.Types import Haddock.Utils (mkMeta) combineDocumentation :: Documentation name -> Maybe (MDoc name) combineDocumentation (Documentation Nothing Nothing) = Nothing combineDocumentation (Documentation mDoc mWarning) = Just (maybe emptyMetaDoc mkMeta mWarning `metaDocAppend` fromMaybe emptyMetaDoc mDoc) -- Drop trailing whitespace from @..@ code blocks. Otherwise this: -- -- -- @ -- -- foo -- -- @ -- -- turns into (DocCodeBlock "\nfoo\n ") which when rendered in HTML -- gives an extra vertical space after the code block. The single space -- on the final line seems to trigger the extra vertical space. -- docCodeBlock :: DocH mod id -> DocH mod id docCodeBlock (DocString s) = DocString (reverse $ dropWhile (`elem` " \t") $ reverse s) docCodeBlock (DocAppend l r) = DocAppend l (docCodeBlock r) docCodeBlock d = d