diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Haddock/Backends/Xhtml.hs | 58 | ||||
| -rw-r--r-- | src/Haddock/Backends/Xhtml/Util.hs | 4 | 
2 files changed, 25 insertions, 37 deletions
| diff --git a/src/Haddock/Backends/Xhtml.hs b/src/Haddock/Backends/Xhtml.hs index 743e95df..a21379e4 100644 --- a/src/Haddock/Backends/Xhtml.hs +++ b/src/Haddock/Backends/Xhtml.hs @@ -153,6 +153,26 @@ copyHtmlBits odir libdir _maybe_css = do    mapM_ copyLibFile cssFiles    mapM_ copyLibFile [ iconFile, plusFile, minusFile, jsFile, framesFile ] + +headHtml :: String -> Maybe String -> Html +headHtml docTitle miniPage = +  header << [ +    meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"], +    thetitle << docTitle, +    styleSheet, +    script ! [src jsFile, thetype "text/javascript"] << noHtml, +    script ! [thetype "text/javascript"] +        -- NB: Within XHTML, the content of script tags needs to be +        -- a <![CDATA[ section. Will break if the miniPage name could  +        -- have "]]>" in it! +      << primHtml ( +          "//<![CDATA[\nwindow.onload = function () {resetStyle();" +          ++ setSynopsis ++ "};\n//]]>\n") +    ] +  where +    setSynopsis = maybe "" (\p -> "setSynopsis(\"" ++ p ++ "\");") miniPage + +  footer :: Html  footer =    divFooter << paragraph << ( @@ -265,11 +285,7 @@ ppHtmlContents odir doctitle    let tree = mkModuleTree showPkgs           [(instMod iface, toInstalledDescription iface) | iface <- ifaces]        html =  -        header  -                (documentCharacterEncoding +++ -                 thetitle (toHtml doctitle) +++ -                 styleSheet +++ -                 (script ! [src jsFile, thetype "text/javascript"] $ noHtml)) +++ +        headHtml doctitle Nothing +++          body << (            simpleHeader doctitle Nothing maybe_index_url                             maybe_source_url maybe_wiki_url +++ @@ -354,11 +370,7 @@ ppHtmlContentsFrame :: FilePath -> String -> [InstalledInterface] -> IO ()  ppHtmlContentsFrame odir doctitle ifaces = do    let mods = flatModuleTree ifaces        html = -        header -            (documentCharacterEncoding +++ -             thetitle (toHtml doctitle) +++ -             styleSheet +++ -             (script ! [src jsFile, thetype "text/javascript"] $ noHtml)) +++ +        headHtml doctitle Nothing +++          miniBody << divModuleList <<             (sectionName << "Modules" +++             ulist << [ li ! [theclass "module"] << m | m <- mods ]) @@ -399,11 +411,7 @@ ppHtmlIndex odir doctitle maybe_package maybe_html_help_format    where      indexPage showLetters ch items = -      header (documentCharacterEncoding +++ -              thetitle (toHtml (doctitle ++ " (" ++ indexName ch ++ ")")) +++ -              styleSheet +++ -              (script ! [src jsFile, thetype "text/javascript"] $ noHtml) -              ) +++ +      headHtml (doctitle ++ " (" ++ indexName ch ++ ")") Nothing +++         body <<          (simpleHeader doctitle maybe_contents_url Nothing                        maybe_source_url maybe_wiki_url +++ @@ -507,19 +515,7 @@ ppHtmlModule odir doctitle        mdl = ifaceMod iface        mdl_str = moduleString mdl        html =  -        header (documentCharacterEncoding +++ -                thetitle (toHtml mdl_str) +++ -                styleSheet +++ -                (script ! [src jsFile, thetype "text/javascript"] $ noHtml) +++ -                (script ! [thetype "text/javascript"] -                     -- NB: Within XHTML, the content of script tags needs to be -                     -- a CDATA section. Will break if the generated name could  -                     -- have "]]>" in it! -                     << primHtml ( -                      "//<![CDATA[\nwindow.onload = function () {setSynopsis(\"mini_" -                         ++ moduleHtmlFile mdl ++ "\")};\n//]]>\n") -                ) -               ) +++ +        headHtml mdl_str (Just $ "mini_" ++ moduleHtmlFile mdl) +++          body << (            pageHeader mdl_str iface doctitle                  maybe_source_url maybe_wiki_url @@ -535,11 +531,7 @@ ppHtmlModuleMiniSynopsis :: FilePath -> String -> Interface -> Bool -> IO ()  ppHtmlModuleMiniSynopsis odir _doctitle iface unicode = do    let mdl = ifaceMod iface        html = -        header -          (documentCharacterEncoding +++ -           thetitle (toHtml $ moduleString mdl) +++ -           styleSheet +++ -           (script ! [src jsFile, thetype "text/javascript"] $ noHtml)) +++ +        headHtml (moduleString mdl) Nothing +++          miniBody <<             (divModuleHeader << sectionName << moduleString mdl +++             miniSynopsis mdl iface unicode) diff --git a/src/Haddock/Backends/Xhtml/Util.hs b/src/Haddock/Backends/Xhtml/Util.hs index bbd2814c..1fcf5e94 100644 --- a/src/Haddock/Backends/Xhtml/Util.hs +++ b/src/Haddock/Backends/Xhtml/Util.hs @@ -25,7 +25,6 @@ module Haddock.Backends.Xhtml.Util (    hsep,    collapsebutton, collapseId, -  documentCharacterEncoding,    cssFiles, styleSheet, stylePickers, styleMenu  ) where @@ -191,9 +190,6 @@ collapsebutton id_ =  collapseId :: Name -> String  collapseId nm = "i:" ++ escapeStr (getOccString nm) -documentCharacterEncoding :: Html -documentCharacterEncoding = -   meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"]  -- Standard set of style sheets, first is the preferred  cssThemes :: [(String, String)] | 
