aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/HaddockHtml.hs8
-rw-r--r--src/Html.hs38
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