aboutsummaryrefslogtreecommitdiff
path: root/src/Haddock/Backends/Xhtml/Layout.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Haddock/Backends/Xhtml/Layout.hs')
-rw-r--r--src/Haddock/Backends/Xhtml/Layout.hs18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/Haddock/Backends/Xhtml/Layout.hs b/src/Haddock/Backends/Xhtml/Layout.hs
index 86c722b7..3ab93b82 100644
--- a/src/Haddock/Backends/Xhtml/Layout.hs
+++ b/src/Haddock/Backends/Xhtml/Layout.hs
@@ -17,11 +17,12 @@ module Haddock.Backends.Xhtml.Layout (
sectionName,
shortDeclList,
- divTopDecl,
+ divTopDecl,
+ subDecls,
topDeclElem, declElem,
- instHdr, atHdr, methHdr, constrHdr,
+ instHdr, atHdr, methHdr,
argBox, ndocBox, rdocBox, maybeRDocBox,
vanillaTable, vanillaTable2, spacedTable1, spacedTable5
@@ -32,6 +33,7 @@ import Haddock.Backends.Xhtml.Types
import Haddock.Backends.Xhtml.Util
import Haddock.Types
+import Data.Char (isLetter, toLower)
import Text.XHtml hiding ( name, title, p, quote )
import FastString ( unpackFS )
@@ -63,6 +65,15 @@ shortDeclList items = ulist << map (li ! [theclass "src short"] <<) items
divTopDecl :: Html -> Html
divTopDecl = thediv ! [theclass "top"]
+subDecls :: String -> [(Html, Maybe Html)] -> Html
+subDecls _ [] = noHtml
+subDecls name decls = subSection << (subCaption +++ subList)
+ where
+ subSection = thediv ! [theclass $ unwords ["subs", subClass]]
+ subClass = map (\c -> if isLetter c then toLower c else '-') name
+ subCaption = paragraph ! [theclass "caption"] << name
+ subList = dlist << map subEntry decls
+ subEntry (dt,dd) = [dterm ! [theclass "src"] << dt, ddef << nonEmpty dd]
-- a box for displaying code
declElem :: Html -> Html
@@ -129,8 +140,7 @@ spacedTable1, spacedTable5 :: Html -> Html
spacedTable1 = table ! [theclass "vanilla", cellspacing 1, cellpadding 0]
spacedTable5 = table ! [theclass "vanilla", cellspacing 5, cellpadding 0]
-constrHdr, methHdr, atHdr :: Html
-constrHdr = h5 << "Constructors"
+methHdr, atHdr :: Html
methHdr = h5 << "Methods"
atHdr = h5 << "Associated Types"