diff options
Diffstat (limited to 'src/HaddockHH.hs')
| -rw-r--r-- | src/HaddockHH.hs | 21 | 
1 files changed, 9 insertions, 12 deletions
| diff --git a/src/HaddockHH.hs b/src/HaddockHH.hs index f10c970e..77d97bca 100644 --- a/src/HaddockHH.hs +++ b/src/HaddockHH.hs @@ -18,9 +18,9 @@ contentsHHFile, indexHHFile :: String  contentsHHFile = "index.hhc"  indexHHFile = "index.hhk" -ppHHContents :: FilePath -> [Module] -> IO () -ppHHContents odir mods = do -  let tree = mkModuleTree (zip mods (repeat Nothing)) --TODO: packages +ppHHContents :: FilePath -> [(Module,Interface)] -> IO () +ppHHContents odir ifaces = do +  let tree = mkModuleTree (map (\(mod,_) -> (mod,Nothing)) ifaces) --TODO: packages        html =        	text "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">" $$  	text "<HTML>" $$ @@ -83,21 +83,18 @@ ppHHIndex odir ifaces = do  	text "</BODY><HTML>"    writeFile (odir ++ pathSeparator:indexHHFile) (render html)    where	 -	index :: [(HsName, Module)] -	index = fmToList full_index +	index :: [(HsName, [Module])] +	index = fmToList (foldr getIfaceIndex emptyFM ifaces) -	iface_indices = map getIfaceIndex ifaces -	full_index = foldr1 plusFM iface_indices - -	getIfaceIndex (mdl,iface) = listToFM -	    [ (name, mdl) | (name, Qual mdl' _) <- fmToList (iface_env iface), mdl == mdl'] +	getIfaceIndex (mdl,iface) fm = +		addListToFM_C (++) fm [(name, [mdl]) | (name, Qual mdl' _) <- fmToList (iface_env iface), mdl == mdl']  	ppList [] = empty -	ppList ((name,Module mdl):mdls)  = +	ppList ((name,(Module mdl:_)):mdls)  =  		text "<LI>" <> nest 4  				(text "<OBJECT type=\"text/sitemap\">" $$  				 text "<PARAM name=\"Name\" value=\"" <> text (show name) <> text "\">" $$ -				 text "<PARAM name=\"Local\" value=\"" <> text (moduleHtmlFile "" mdl) <> char '#' <> text (show name) <> text "\">" $$ +				 text "<PARAM name=\"Local\" value=\"" <> text (nameHtmlRef "" mdl name) <> text "\">" $$  				 text "</OBJECT>") $+$  		text "</LI>" $$  		ppList mdls | 
