diff options
| -rw-r--r-- | html/haddock.css | 15 | ||||
| -rw-r--r-- | src/HaddockHtml.hs | 39 | 
2 files changed, 35 insertions, 19 deletions
| diff --git a/html/haddock.css b/html/haddock.css index aa6e13aa..db10f460 100644 --- a/html/haddock.css +++ b/html/haddock.css @@ -38,6 +38,21 @@ SPAN.keyword { text-decoration: underline; }  /* Resize the buttom image to match the text size */  IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em } +/* --------- Contents page ---------- */ + +DIV.node { +  padding-left: 3em; +} + +DIV.cnode { +  padding-left: 1.75em; +} + +SPAN.pkg { +  position: absolute; +  left: 50em; +} +  /* --------- Documentation elements ---------- */  TD.children { diff --git a/src/HaddockHtml.hs b/src/HaddockHtml.hs index b02caf5b..9b0f29fd 100644 --- a/src/HaddockHtml.hs +++ b/src/HaddockHtml.hs @@ -257,35 +257,36 @@ ppPrologue title (Just doc) =  ppModuleTree :: String -> [ModuleTree] -> HtmlTable  ppModuleTree _ ts =     tda [theclass "section1"] << toHtml "Modules" </> -  pad_td Nothing << vanillaTable << htmlTable +  pad_td Nothing << fst (genTable empty 0 ts)    where -    genTable htmlTable id []     = (htmlTable,id) -    genTable htmlTable id (x:xs) = genTable (htmlTable </> u) id' xs       +    genTable html id []     = (html,id) +    genTable html id (x:xs) = genTable (html +++ u) id' xs              where          (u,id') = mkNode [] x id -    (htmlTable,_) = genTable emptyTable 0 ts - -mkNode :: [String] -> ModuleTree -> Int -> (HtmlTable,Int) +mkNode :: [String] -> ModuleTree -> Int -> (Html,Int)  mkNode ss (Node s leaf pkg short ts) id = htmlNode    where      htmlNode = case ts of -      [] -> ( pad_td (Just 1.25) << htmlModule  <-> shortDescr <-> htmlPkg,id) -      _  -> ((pad_td Nothing<< (collapsebutton id_s +++ htmlModule) <-> shortDescr <-> htmlPkg) </>  -                (pad_td (Just 2) << sub_tree), id') +      [] -> (node  << (htmlModule +++ shortDescr +++ htmlPkg), id) +      _  -> (cnode << (collapsebutton id_s +++ htmlModule +++ shortDescr +			 +++ htmlPkg +++ sub_tree), id') + +    node  = thediv ! [theclass "node"] +    cnode = thediv ! [theclass "cnode"] -    shortDescr :: HtmlTable +    shortDescr :: Html      shortDescr = case short of -	Nothing -> td empty -	Just doc -> tda [theclass "rdoc"] (docToHtml doc) +	Nothing  -> empty +	Just doc -> thespan ! [theclass "rdoc"] << (docToHtml doc)      htmlModule         | leaf      = ppHsModule mdl        | otherwise = toHtml s      htmlPkg = case pkg of -      Nothing -> tda [width "1"] << empty -      Just p  -> td << toHtml p +      Nothing -> empty +      Just p  -> thespan ! [theclass "pkg"] << toHtml p      mdl = foldr (++) "" (s' : map ('.':) ss')      (s':ss') = reverse (s:ss) @@ -293,13 +294,13 @@ mkNode ss (Node s leaf pkg short ts) id = htmlNode      id_s = "n:" ++ show id -    (sub_tree,id') = genSubTree emptyTable (id+1) ts +    (sub_tree,id') = genSubTree empty (id+1) ts -    genSubTree :: HtmlTable -> Int -> [ModuleTree] -> (Html,Int) -    genSubTree htmlTable id [] = (sub_tree,id) +    genSubTree :: Html -> Int -> [ModuleTree] -> (Html,Int) +    genSubTree html id [] = (sub_tree,id)        where -        sub_tree = collapsed vanillaTable id_s htmlTable -    genSubTree htmlTable id (x:xs) = genSubTree (htmlTable </> u) id' xs       +        sub_tree = collapsed thediv id_s html +    genSubTree html id (x:xs) = genSubTree (html +++ u) id' xs              where          (u,id') = mkNode (s:ss) x id | 
