diff options
author | simonmar <unknown> | 2005-02-28 16:22:08 +0000 |
---|---|---|
committer | simonmar <unknown> | 2005-02-28 16:22:08 +0000 |
commit | a95fd63f4dad4eaf5fc256209fe1d5daf23e8e16 (patch) | |
tree | 3c69a52f35496be57db401e9bd8c3890cbe628b0 | |
parent | 9c3afd02e92a25a9e700efa6b32d6d72ccc395ba (diff) |
[haddock @ 2005-02-28 16:22:08 by simonmar]
Attempt to fix the layout of the package names in the contents.
Having tried just about everything, the only thing I can get to work
reliably is to make the package names line up on a fixed offset from
the left margin. This obviously isn't ideal, so anyone else that
would like to have a go at improving it is welcome. One option is to
remove the +/- buttons from the contents list and go back to a plain
table.
The contents page now uses CSS for layout rather than tables. It
seems that most browsers have different interpretations of CSS layout,
so only the simplest things lead to consistent results.
-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 |