diff options
| -rw-r--r-- | src/HaddockHtml.hs | 8 | ||||
| -rw-r--r-- | src/Html.hs | 38 | 
2 files changed, 29 insertions, 17 deletions
diff --git a/src/HaddockHtml.hs b/src/HaddockHtml.hs index 527fe758..53d9a6c5 100644 --- a/src/HaddockHtml.hs +++ b/src/HaddockHtml.hs @@ -207,7 +207,7 @@ ppHtmlContents odir doctitle maybe_index_url  	    s15 </>  	    footer  	  ) -  writeFile (odir ++ pathSeparator:contentsHtmlFile) (renderHtml html) +  writeFile (odir ++ pathSeparator:contentsHtmlFile) (prettyHtml html)  ppPrologue :: String -> Maybe Doc -> HtmlTable  ppPrologue title Nothing = Html.emptyTable @@ -265,7 +265,7 @@ ppHtmlIndex odir doctitle maybe_contents_url ifaces = do    when split_indices $      mapM_ (do_sub_index index) initialChars -  writeFile (odir ++ pathSeparator:indexHtmlFile) (renderHtml html) +  writeFile (odir ++ pathSeparator:indexHtmlFile) (renderHtml html False)   where    split_indices = length index > 50 @@ -289,7 +289,7 @@ ppHtmlIndex odir doctitle maybe_contents_url ifaces = do    do_sub_index this_ix c      = unless (null index_part) $          writeFile (odir ++ pathSeparator:subIndexHtmlFile c) -                  (renderHtml html) +                  (renderHtml html False)      where         html = header (thetitle (toHtml (doctitle ++ " (Index)")) +++  		thelink ! [href cssFile,  @@ -378,7 +378,7 @@ ppHtmlModule odir doctitle source_url  	    ifaceToHtml mdl iface </> s15 </>  	    footer           ) -  writeFile (moduleHtmlFile odir mdl) (renderHtml html) +  writeFile (moduleHtmlFile odir mdl) (renderHtml html False)  ifaceToHtml :: String -> Interface -> HtmlTable  ifaceToHtml _ iface  diff --git a/src/Html.hs b/src/Html.hs index 995719c8..59331cb2 100644 --- a/src/Html.hs +++ b/src/Html.hs @@ -9,7 +9,7 @@  -- Stability   :  experimental  -- Portability :  portable  -- --- $Id: Html.hs,v 1.4 2004/03/25 15:45:10 simonmar Exp $ +-- $Id: Html.hs,v 1.5 2004/03/25 16:00:37 simonmar Exp $  --  -- An Html combinator library  -- @@ -962,10 +962,10 @@ gui act = form ! [action act,method "POST"]  -- The output is quite messy, because space matters in  -- HTML, so we must not generate needless spaces. -renderHtml :: (HTML html) => html -> String -renderHtml theHtml = +renderHtml :: (HTML html) => html -> Bool -> String +renderHtml theHtml pretty =        renderMessage ++  -         foldr (.) id (map (renderHtml' 0) +         foldr (.) id (map (if pretty then renderHtml' 0 else unprettyHtml)                             (getHtmlElements (tag "HTML" << theHtml))) "\n"  renderMessage :: String @@ -977,15 +977,6 @@ renderMessage =  -- This is intentually very inefficent to "encorage" this,  -- but the neater version in easier when debugging. --- Local Utilities -prettyHtml :: (HTML html) => html -> String -prettyHtml theHtml =  -        unlines -      $ concat -      $ map prettyHtml' -      $ getHtmlElements -      $ toHtml theHtml -  renderHtml' :: Int -> HtmlElement -> ShowS  renderHtml' _ (HtmlString str) = (++) str  renderHtml' n (HtmlTag @@ -998,6 +989,27 @@ renderHtml' n (HtmlTag               . foldr (.) id (map (renderHtml' (n+2)) (getHtmlElements html))               . renderTag False name0 [] n) +unprettyHtml :: HtmlElement -> ShowS +unprettyHtml (HtmlString str) = (++) str +unprettyHtml (HtmlTag +              { markupTag = name0, +                markupContent = html, +                markupAttrs = markupAttrs0 }) +      = if isNoHtml html && elem name0 validHtmlITags +        then renderTag True name0 markupAttrs0 0 +        else (renderTag True name0 markupAttrs0 0 +             . foldr (.) id (map unprettyHtml (getHtmlElements html)) +             . renderTag False name0 [] 0) + +-- Local Utilities +prettyHtml :: (HTML html) => html -> String +prettyHtml theHtml =  +        unlines +      $ concat +      $ map prettyHtml' +      $ getHtmlElements +      $ toHtml theHtml +  prettyHtml' :: HtmlElement -> [String]  prettyHtml' (HtmlString str) = [str]  prettyHtml' (HtmlTag  | 
