diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Haddock/Backends/Xhtml.hs | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/Haddock/Backends/Xhtml.hs b/src/Haddock/Backends/Xhtml.hs index a83bc6ae..01b4c861 100644 --- a/src/Haddock/Backends/Xhtml.hs +++ b/src/Haddock/Backends/Xhtml.hs @@ -40,7 +40,6 @@ import Control.Exception ( bracket ) import Control.Monad ( when, unless ) import Control.Monad.Instances ( ) -- for Functor Either a import Data.Char ( toUpper ) -import Data.Either import Data.List ( sortBy, groupBy ) import Data.Maybe import Foreign.Marshal.Alloc ( allocaBytes ) @@ -628,8 +627,7 @@ ifaceToHtml maybe_source_url maybe_wiki_url iface unicode | otherwise = h1 << "Synopsis" +++ unordList ( - rights $ - map (processExport True linksInfo unicode) exports + mapMaybe (processExport True linksInfo unicode) exports ) ! [theclass "synopsis"] -- if the documentation doesn't begin with a section header, then @@ -642,8 +640,8 @@ ifaceToHtml maybe_source_url maybe_wiki_url iface unicode bdy = foldr (+++) noHtml $ - map (either id (paragraph ! [theclass "decl"] <<)) $ - map (processExport False linksInfo unicode) exports + map (thediv ! [theclass "decldoc"]) $ + mapMaybe (processExport False linksInfo unicode) exports linksInfo = (maybe_source_url, maybe_wiki_url) @@ -731,20 +729,23 @@ numberSectionHeadings exports = go 1 exports go n (other:es) = other : go n es -processExport :: Bool -> LinksInfo -> Bool -> (ExportItem DocName) - -> Either Html Html -- Right is a decl, Left is a "extra" (doc or group) -processExport _ _ _ (ExportGroup lev id0 doc) - = Left $ groupTag lev << namedAnchor id0 << docToHtml doc +processExport :: Bool -> LinksInfo -> Bool -> (ExportItem DocName) -> Maybe Html +processExport summary _ _ (ExportGroup lev id0 doc) + = nothingIf summary $ groupTag lev << namedAnchor id0 << docToHtml doc processExport summary links unicode (ExportDecl decl doc subdocs insts) - = Right $ ppDecl summary links decl doc insts subdocs unicode + = Just $ ppDecl summary links decl doc insts subdocs unicode processExport _ _ _ (ExportNoDecl y []) - = Right $ ppDocName y + = Just $ ppDocName y processExport _ _ _ (ExportNoDecl y subs) - = Right $ ppDocName y +++ parenList (map ppDocName subs) -processExport _ _ _ (ExportDoc doc) - = Left $ docToHtml doc + = Just $ ppDocName y +++ parenList (map ppDocName subs) +processExport summary _ _ (ExportDoc doc) + = nothingIf summary $ docToHtml doc processExport _ _ _ (ExportModule mdl) - = Right $ toHtml "module" +++ ppModule mdl "" + = Just $ toHtml "module" +++ ppModule mdl "" + +nothingIf :: Bool -> a -> Maybe a +nothingIf True _ = Nothing +nothingIf False a = Just a groupTag :: Int -> Html -> Html groupTag lev |