diff options
-rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml.hs | 18 | ||||
-rw-r--r-- | html-test/ref/Bug280.html | 8 | ||||
-rw-r--r-- | html-test/ref/Test.html | 2 |
3 files changed, 19 insertions, 9 deletions
diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 8252839c..0958c2cd 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -35,8 +35,8 @@ import Text.XHtml hiding ( name, title, p, quote ) import Haddock.GhcUtils import Control.Monad ( when, unless ) -import Data.Char ( toUpper ) -import Data.List ( sortBy, intercalate, isPrefixOf ) +import Data.Char ( toUpper, isSpace ) +import Data.List ( sortBy, intercalate, isPrefixOf, intersperse ) import Data.Maybe import System.FilePath hiding ( (</>) ) import System.Directory @@ -201,8 +201,7 @@ moduleInfo iface = field info >>= \a -> return (th << fieldName <-> td << a) entries :: [HtmlTable] - entries = mapMaybe doOneEntry [ - ("Copyright",hmi_copyright), + entries = maybeToList copyrightsTable ++ mapMaybe doOneEntry [ ("License",hmi_license), ("Maintainer",hmi_maintainer), ("Stability",hmi_stability), @@ -216,6 +215,14 @@ moduleInfo iface = Just Haskell98 -> Just "Haskell98" Just Haskell2010 -> Just "Haskell2010" + multilineRow :: String -> [String] -> HtmlTable + multilineRow title xs = (th ! [valign "top"]) << title <-> td << (toLines xs) + where toLines = mconcat . intersperse br . map toHtml + + copyrightsTable :: Maybe HtmlTable + copyrightsTable = fmap (multilineRow "Copyright" . split) (hmi_copyright info) + where split = map (trim . filter (/= ',')) . lines + extsForm | OptShowExtensions `elem` ifaceOptions iface = let fs = map (dropOpt . show) (hmi_extensions info) @@ -648,6 +655,9 @@ processDecl :: Bool -> Html -> Maybe Html processDecl True = Just processDecl False = Just . divTopDecl +trim :: String -> String +trim = f . f + where f = reverse . dropWhile isSpace processDeclOneLiner :: Bool -> Html -> Maybe Html processDeclOneLiner True = Just diff --git a/html-test/ref/Bug280.html b/html-test/ref/Bug280.html index f154f300..92eb61b0 100644 --- a/html-test/ref/Bug280.html +++ b/html-test/ref/Bug280.html @@ -34,12 +34,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug280.html");}; ><div id="module-header" ><table class="info" ><tr - ><th + ><th valign="top" >Copyright</th ><td - >Foo, - Bar, - Baz</td + >Foo<br + />Bar<br + />Baz</td ></tr ><tr ><th diff --git a/html-test/ref/Test.html b/html-test/ref/Test.html index e493af28..a98b2228 100644 --- a/html-test/ref/Test.html +++ b/html-test/ref/Test.html @@ -33,7 +33,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html"); ><div id="module-header" ><table class="info" ><tr - ><th + ><th valign="top" >Copyright</th ><td >(c) Simon Marlow 2002</td |