aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Meric de Bellefon <arnaudpourseb@gmail.com>2016-06-16 00:46:46 -0400
committerSebastian Meric de Bellefon <arnaudpourseb@gmail.com>2016-06-16 00:46:46 -0400
commit5a9c393c8f0f6d24fa185f4acbb39e40a0f534a6 (patch)
tree372cc52551770ddb1a23ad0b8b8418aa09945382
parente40990d4dbb80db2b7bf5a939866f9eaf4d5b309 (diff)
Copyright holders shown on several lines. Fix #279
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml.hs18
-rw-r--r--html-test/ref/Bug280.html8
-rw-r--r--html-test/ref/Test.html2
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(&quot;mini_Test.html&quot;);
><div id="module-header"
><table class="info"
><tr
- ><th
+ ><th valign="top"
>Copyright</th
><td
>(c) Simon Marlow 2002</td