From 3d52abbce02de506f6ca01a7b23bd5e2f7c9cc59 Mon Sep 17 00:00:00 2001 From: NunoAlexandre Date: Tue, 26 Dec 2017 17:53:44 +0100 Subject: Include custom font in the html head --- haddock-api/src/Haddock/Backends/Xhtml.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 6da6a2e8..41c11361 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -124,14 +124,15 @@ headHtml docTitle themes mathjax_url = meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"], thetitle << docTitle, styleSheet themes, + thelink ! [ rel "stylesheet", thetype "text/css", href fontUrl] << noHtml, thelink ! [ rel "stylesheet", thetype "text/css", href quickJumpCssFile] << noHtml, script ! [src haddockJsFile, emptyAttr "async", thetype "text/javascript"] << noHtml, script ! [src mjUrl, thetype "text/javascript"] << noHtml ] where + fontUrl = "https://fonts.googleapis.com/css?family=Merriweather+Sans:300,300i,400,700" mjUrl = maybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" id mathjax_url - srcButton :: SourceURLs -> Maybe Interface -> Maybe Html srcButton (Just src_base_url, _, _, _) Nothing = Just (anchor ! [href src_base_url] << "Source") -- cgit v1.2.3 From 1c1c4001cf7d2167e545d88bd58f97a71778621b Mon Sep 17 00:00:00 2001 From: NunoAlexandre Date: Tue, 26 Dec 2017 21:23:49 +0100 Subject: Update html test reference files --- haddock-api/resources/html/NewOcean.std-theme/new-ocean.css | 3 +-- haddock-api/src/Haddock/Backends/Xhtml.hs | 2 +- html-test/ref/A.html | 3 ++- html-test/ref/B.html | 3 ++- html-test/ref/Bold.html | 1 + html-test/ref/Bug1.html | 1 + html-test/ref/Bug195.html | 1 + html-test/ref/Bug2.html | 1 + html-test/ref/Bug201.html | 1 + html-test/ref/Bug253.html | 1 + html-test/ref/Bug26.html | 1 + html-test/ref/Bug280.html | 1 + html-test/ref/Bug294.html | 1 + html-test/ref/Bug298.html | 1 + html-test/ref/Bug3.html | 1 + html-test/ref/Bug308.html | 1 + html-test/ref/Bug308CrossModule.html | 1 + html-test/ref/Bug310.html | 1 + html-test/ref/Bug313.html | 1 + html-test/ref/Bug335.html | 1 + html-test/ref/Bug387.html | 1 + html-test/ref/Bug4.html | 1 + html-test/ref/Bug546.html | 1 + html-test/ref/Bug548.html | 1 + html-test/ref/Bug6.html | 1 + html-test/ref/Bug613.html | 1 + html-test/ref/Bug647.html | 1 + html-test/ref/Bug7.html | 1 + html-test/ref/Bug8.html | 1 + html-test/ref/Bug85.html | 1 + html-test/ref/BugDeprecated.html | 1 + html-test/ref/BugExportHeadings.html | 1 + html-test/ref/Bugs.html | 1 + html-test/ref/BundledPatterns.html | 1 + html-test/ref/BundledPatterns2.html | 1 + html-test/ref/ConstructorPatternExport.html | 1 + html-test/ref/DeprecatedClass.html | 1 + html-test/ref/DeprecatedData.html | 1 + html-test/ref/DeprecatedFunction.html | 1 + html-test/ref/DeprecatedFunction2.html | 1 + html-test/ref/DeprecatedFunction3.html | 1 + html-test/ref/DeprecatedModule.html | 1 + html-test/ref/DeprecatedModule2.html | 1 + html-test/ref/DeprecatedNewtype.html | 1 + html-test/ref/DeprecatedReExport.html | 1 + html-test/ref/DeprecatedRecord.html | 1 + html-test/ref/DeprecatedTypeFamily.html | 1 + html-test/ref/DeprecatedTypeSynonym.html | 1 + html-test/ref/DuplicateRecordFields.html | 1 + html-test/ref/Examples.html | 1 + html-test/ref/Extensions.html | 1 + html-test/ref/FunArgs.html | 1 + html-test/ref/GADTRecords.html | 1 + html-test/ref/Hash.html | 1 + html-test/ref/HiddenInstances.html | 1 + html-test/ref/HiddenInstancesB.html | 1 + html-test/ref/Hyperlinks.html | 1 + html-test/ref/IgnoreExports.html | 1 + html-test/ref/ImplicitParams.html | 1 + html-test/ref/Instances.html | 1 + html-test/ref/Math.html | 1 + html-test/ref/Minimal.html | 1 + html-test/ref/ModuleWithWarning.html | 1 + html-test/ref/NamedDoc.html | 1 + html-test/ref/Nesting.html | 1 + html-test/ref/NoLayout.html | 1 + html-test/ref/NonGreedy.html | 1 + html-test/ref/Operators.html | 1 + html-test/ref/OrphanInstances.html | 1 + html-test/ref/OrphanInstancesClass.html | 1 + html-test/ref/OrphanInstancesType.html | 1 + html-test/ref/PR643.html | 1 + html-test/ref/PR643_1.html | 1 + html-test/ref/PatternSyns.html | 1 + html-test/ref/PromotedTypes.html | 1 + html-test/ref/Properties.html | 1 + html-test/ref/PruneWithWarning.html | 1 + html-test/ref/QuasiExpr.html | 1 + html-test/ref/QuasiQuote.html | 1 + html-test/ref/SpuriousSuperclassConstraints.html | 1 + html-test/ref/TH.html | 1 + html-test/ref/TH2.html | 1 + html-test/ref/Table.html | 1 + html-test/ref/Test.html | 1 + html-test/ref/Threaded.html | 1 + html-test/ref/Threaded_TH.html | 1 + html-test/ref/Ticket112.html | 1 + html-test/ref/Ticket61.html | 1 + html-test/ref/Ticket75.html | 1 + html-test/ref/TitledPicture.html | 1 + html-test/ref/TypeFamilies.html | 1 + html-test/ref/TypeFamilies2.html | 1 + html-test/ref/TypeOperators.html | 1 + html-test/ref/Unicode.html | 1 + html-test/ref/Visible.html | 1 + 95 files changed, 97 insertions(+), 5 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css index 6c4357b0..f1523143 100644 --- a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css +++ b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css @@ -142,8 +142,7 @@ ul.links { text-align: left; float: right; display: inline-table; - margin: 0 0 0 1em; - margin-right: 22vw; + margin: 0 22vw 0 1em; } ul.links li { diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 41c11361..0264b7f7 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -124,8 +124,8 @@ headHtml docTitle themes mathjax_url = meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"], thetitle << docTitle, styleSheet themes, - thelink ! [ rel "stylesheet", thetype "text/css", href fontUrl] << noHtml, thelink ! [ rel "stylesheet", thetype "text/css", href quickJumpCssFile] << noHtml, + thelink ! [ rel "stylesheet", thetype "text/css", href fontUrl] << noHtml, script ! [src haddockJsFile, emptyAttr "async", thetype "text/javascript"] << noHtml, script ! [src mjUrl, thetype "text/javascript"] << noHtml ] diff --git a/html-test/ref/A.html b/html-test/ref/A.html index e4802966..537a7bac 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -4,6 +4,7 @@ />A \ No newline at end of file +> diff --git a/html-test/ref/B.html b/html-test/ref/B.html index 12d8e907..1d7d436c 100644 --- a/html-test/ref/B.html +++ b/html-test/ref/B.html @@ -4,6 +4,7 @@ />B \ No newline at end of file +> diff --git a/html-test/ref/Bold.html b/html-test/ref/Bold.html index 112d7aca..276e7b23 100644 --- a/html-test/ref/Bold.html +++ b/html-test/ref/Bold.html @@ -4,6 +4,7 @@ />BoldBug1Bug195Bug2Bug201Bug253Bug26Bug280Bug294Bug298Bug3Bug308Bug308CrossModuleBug310Bug313Bug335Bug387Bug4Bug546Bug548Bug6Bug613Bug647Bug7Bug8Bug85BugDeprecatedBugExportHeadingsBugsBundledPatternsBundledPatterns2ConstructorPatternExportDeprecatedClassDeprecatedDataDeprecatedFunctionDeprecatedFunction2DeprecatedFunction3DeprecatedModuleDeprecatedModule2DeprecatedNewtypeDeprecatedReExportDeprecatedRecordDeprecatedTypeFamilyDeprecatedTypeSynonymDuplicateRecordFieldsExamplesExtensionsFunArgsGADTRecordsHashHiddenInstancesHiddenInstancesBHyperlinksIgnoreExportsImplicitParamsInstancesMathMinimalModuleWithWarningNamedDocNestingNoLayoutNonGreedyOperatorsOrphanInstancesOrphanInstancesClassOrphanInstancesTypePR643PR643_1PatternSynsPromotedTypesPropertiesPruneWithWarningQuasiExprQuasiQuoteSpuriousSuperclassConstraintsTHTH2TableTestThreadedThreaded_THTicket112Ticket61Ticket75TitledPictureTypeFamiliesTypeFamilies2TypeOperatorsUnicodeVisible Date: Sat, 3 Feb 2018 21:39:30 +0100 Subject: Make the style consistent with hackage Several things are addressed here: - better responsive behaviour on the header - better space usage - consistent colors overall - other nit PR comments --- .../html/NewOcean.std-theme/new-ocean.css | 106 ++++++++++++--------- haddock-api/src/Haddock/Backends/Xhtml.hs | 4 +- haddock-api/src/Haddock/Backends/Xhtml/Layout.hs | 4 +- 3 files changed, 66 insertions(+), 48 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css index 4191c8b0..8a7fdf97 100644 --- a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css +++ b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css @@ -37,8 +37,8 @@ dd { } a { text-decoration: none; } -a[href]:link { color: rgb(196,69,29); } -a[href]:visited { color: rgb(171,105,84); } +a[href]:link {color: #9C5791;} +a[href]:visited {color: #5E3558;} a[href]:hover { text-decoration:underline; } a[href].def:link, a[href].def:visited { color: rgba(69, 59, 97, 0.8); } @@ -57,45 +57,68 @@ body.js-enabled .hide-when-js-enabled { /* @group responsive */ -@media only screen and (min-width: 950px) { - #page-header { - text-align: left; - text-align: left; - } +#package-header .caption { + margin: 0px 1em 0 2em; +} +@media only screen and (min-width: 1280px) { #content { width: 60vw; + max-width: 1450px; + min-width: 830px; } +} - #package-header .caption { - margin: 0 0 0 20vw; +@media only screen and (max-width: 1280px) { + #content { + width: 75vw; } +} - ul.links { - margin: 0px 20vw 0 0; +@media only screen and (max-width: 950px) { + #content { + width: 88vw; } - } -@media only screen and (max-width: 950px) { - #page-header { - text-align: center; + +/* menu for wider screens + + Display the package name at the left and the menu links at the right, + inline with each other: + The package name Source . Contents . Index +*/ +@media only screen and (min-width: 1000px) { + #package-header .caption { + display: inline-block; + margin: 3px 1em 2px 2em; } - #content { - width: 80vw; + #package-header ul.links { + float: right; + margin: 3px 2em 2px 1em; } +} +/* menu for smaller screens + +Display the package name on top of the menu links and center both elements: + The package name + Source . Contents . Index +*/ +@media only screen and (max-width: 1000px) { #package-header .caption { - margin: 0 0 0 10vw; + display: block; + margin: 4px 0; + text-align: center; } - ul.links { - margin: 0px 10vw 0 0; + #package-header ul.links { + float: none; + text-align: center; + margin: 0.6em 0 0 0; } -} -@media only screen and (max-width: 500px) { #module-header table.info { float: none; top: 0; @@ -107,6 +130,7 @@ body.js-enabled .hide-when-js-enabled { /* @end */ + /* @group Fonts & Sizes */ /* Basic technique & IE workarounds from YUI 3 @@ -115,7 +139,7 @@ body.js-enabled .hide-when-js-enabled { */ body { - font: 300 13px/1.85 "Merriweather Sans", sans-serif; + font: 400 16px/1.6 'Open Sans', sans-serif; *font-size:small; /* for IE */ *font:x-small; /* for IE in quirks mode */ } @@ -150,18 +174,17 @@ pre, code, kbd, samp, tt, .src { } #module-header .caption sup { - font-size: 70%; + font-size: 80%; font-weight: normal; } +#package-header #page-menu a:link, #package-header #page-menu a:visited { color: white; } + + .info { font-size: 85%; /* 11pt */ } -#table-of-contents, #synopsis { - /* font-size: 85%; /* 11pt */ -} - /* @end */ @@ -169,11 +192,11 @@ pre, code, kbd, samp, tt, .src { .caption, h1, h2, h3, h4, h5, h6, summary { font-weight: bold; - color: rgb(78,98,114); - color: rgb(142, 80, 132); + color: #5E5184; margin: 2em 0 1em 0; } + * + h1, * + h2, * + h3, * + h4, * + h5, * + h6 { margin-top: 2em; } @@ -190,15 +213,10 @@ ul + p { margin-top: 2em; } -ul.links, #package-header p.caption { - padding-top: 3px; -} - ul.links { list-style: none; text-align: left; - float: right; - font-size: 13px; + font-size: 1em; } ul.links li { @@ -258,7 +276,7 @@ details[open] > summary { pre { padding: 17px; margin: 1em 0 2em 0; - background-color: rgba(0, 0, 0, .025); + background-color: rgba(0, 0, 0, .033); overflow: auto; border-bottom: 0.25em solid white; /* white border adds some space below the box to compensate @@ -291,22 +309,21 @@ pre { background: rgb(94, 81, 132); border-bottom: 5px solid rgba(69, 59, 97, 0.5); color: #ddd; - padding: 8px 0; + padding: 0.6em 0 0.2em 0; position: relative; text-align: left; margin: 0 auto; + overflow: hidden; } #package-header .caption { - background: url(hslogo-16.png) no-repeat 0em; color: white; - font-weight: normal; font-style: normal; - padding-left: 35px; + font-size: 1.1rem; + font-weight: bold; } #module-header .caption { - color: rgb(94, 81, 132); font-weight: bold; border-bottom: 1px solid #ddd; } @@ -414,11 +431,12 @@ div#style-menu-holder { #synopsis { display: block; position: fixed; - right: 0; height: 80%; - top: 10%; + top: 9vh; + right: 10px; padding: 0; max-width: 75%; + z-index: 1; /* Ensure that synopsis covers everything (including MathJAX markup) */ z-index: 1; } diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 0264b7f7..6f1f1f60 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -130,8 +130,8 @@ headHtml docTitle themes mathjax_url = script ! [src mjUrl, thetype "text/javascript"] << noHtml ] where - fontUrl = "https://fonts.googleapis.com/css?family=Merriweather+Sans:300,300i,400,700" - mjUrl = maybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" id mathjax_url + fontUrl = "https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700" + mjUrl = fromMaybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" mathjax_url srcButton :: SourceURLs -> Maybe Interface -> Maybe Html srcButton (Just src_base_url, _, _, _) Nothing = diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index 1c44ffda..bdf989ed 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -74,8 +74,8 @@ sectionName = paragraph ! [theclass "caption"] -- If it would have otherwise been empty, then give it the class ".empty". nonEmptySectionName :: Html -> Html nonEmptySectionName c - | isNoHtml c = paragraph ! [theclass "caption empty"] $ spaceHtml - | otherwise = paragraph ! [theclass "caption"] $ c + | isNoHtml c = thediv ! [theclass "caption empty"] $ spaceHtml + | otherwise = thediv ! [theclass "caption"] $ c divPackageHeader, divContent, divModuleHeader, divFooter, -- cgit v1.2.3 From 1861ff90dbe652c22f0dcd220d2f15dd6cfdfefb Mon Sep 17 00:00:00 2001 From: Nuno Alexandre Date: Sun, 4 Feb 2018 12:51:30 +0100 Subject: Place the package name before the menu links This supports the expected responsive menu design, where the package name appears above the menu links. --- haddock-api/src/Haddock/Backends/Xhtml.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 6f1f1f60..e4a0137e 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -178,13 +178,13 @@ bodyHtml doctitle iface pageContent = body << [ divPackageHeader << [ + nonEmptySectionName << doctitle, unordList (catMaybes [ srcButton maybe_source_url iface, wikiButton maybe_wiki_url (ifaceMod <$> iface), contentsButton maybe_contents_url, indexButton maybe_index_url]) - ! [theclass "links", identifier "page-menu"], - nonEmptySectionName << doctitle + ! [theclass "links", identifier "page-menu"] ], divContent << pageContent, divFooter << paragraph << ( -- cgit v1.2.3 From 0cf790508a608ee9137a9b3e68e00a3157da760b Mon Sep 17 00:00:00 2001 From: Nuno Alexandre Date: Mon, 5 Feb 2018 21:35:22 +0100 Subject: Add an initial-scale property to all haddock pages This solves an issue reported about the content looking incredibly small on mobile devices. --- haddock-api/src/Haddock/Backends/Xhtml.hs | 5 +++-- html-test/ref/A.html | 1 + html-test/ref/B.html | 1 + html-test/ref/Bold.html | 1 + html-test/ref/Bug1.html | 1 + html-test/ref/Bug195.html | 1 + html-test/ref/Bug2.html | 1 + html-test/ref/Bug201.html | 1 + html-test/ref/Bug253.html | 1 + html-test/ref/Bug26.html | 1 + html-test/ref/Bug280.html | 1 + html-test/ref/Bug294.html | 1 + html-test/ref/Bug298.html | 1 + html-test/ref/Bug3.html | 1 + html-test/ref/Bug308.html | 1 + html-test/ref/Bug308CrossModule.html | 1 + html-test/ref/Bug310.html | 1 + html-test/ref/Bug313.html | 1 + html-test/ref/Bug335.html | 1 + html-test/ref/Bug387.html | 1 + html-test/ref/Bug4.html | 1 + html-test/ref/Bug546.html | 1 + html-test/ref/Bug548.html | 1 + html-test/ref/Bug6.html | 1 + html-test/ref/Bug613.html | 1 + html-test/ref/Bug647.html | 1 + html-test/ref/Bug679.html | 1 + html-test/ref/Bug7.html | 1 + html-test/ref/Bug8.html | 1 + html-test/ref/Bug85.html | 1 + html-test/ref/BugDeprecated.html | 1 + html-test/ref/BugExportHeadings.html | 1 + html-test/ref/Bugs.html | 1 + html-test/ref/BundledPatterns.html | 1 + html-test/ref/BundledPatterns2.html | 1 + html-test/ref/ConstructorPatternExport.html | 1 + html-test/ref/DeprecatedClass.html | 1 + html-test/ref/DeprecatedData.html | 1 + html-test/ref/DeprecatedFunction.html | 1 + html-test/ref/DeprecatedFunction2.html | 1 + html-test/ref/DeprecatedFunction3.html | 1 + html-test/ref/DeprecatedModule.html | 1 + html-test/ref/DeprecatedModule2.html | 1 + html-test/ref/DeprecatedNewtype.html | 1 + html-test/ref/DeprecatedReExport.html | 1 + html-test/ref/DeprecatedRecord.html | 1 + html-test/ref/DeprecatedTypeFamily.html | 1 + html-test/ref/DeprecatedTypeSynonym.html | 1 + html-test/ref/DuplicateRecordFields.html | 1 + html-test/ref/Examples.html | 1 + html-test/ref/Extensions.html | 1 + html-test/ref/FunArgs.html | 1 + html-test/ref/GADTRecords.html | 1 + html-test/ref/Hash.html | 1 + html-test/ref/HiddenInstances.html | 1 + html-test/ref/HiddenInstancesB.html | 1 + html-test/ref/Hyperlinks.html | 1 + html-test/ref/IgnoreExports.html | 1 + html-test/ref/ImplicitParams.html | 1 + html-test/ref/Instances.html | 1 + html-test/ref/Math.html | 1 + html-test/ref/Minimal.html | 1 + html-test/ref/ModuleWithWarning.html | 1 + html-test/ref/NamedDoc.html | 1 + html-test/ref/Nesting.html | 1 + html-test/ref/NoLayout.html | 1 + html-test/ref/NonGreedy.html | 1 + html-test/ref/Operators.html | 1 + html-test/ref/OrphanInstances.html | 1 + html-test/ref/OrphanInstancesClass.html | 1 + html-test/ref/OrphanInstancesType.html | 1 + html-test/ref/PR643.html | 1 + html-test/ref/PR643_1.html | 1 + html-test/ref/PatternSyns.html | 1 + html-test/ref/PromotedTypes.html | 1 + html-test/ref/Properties.html | 1 + html-test/ref/PruneWithWarning.html | 1 + html-test/ref/QuasiExpr.html | 1 + html-test/ref/QuasiQuote.html | 1 + html-test/ref/SpuriousSuperclassConstraints.html | 1 + html-test/ref/TH.html | 1 + html-test/ref/TH2.html | 1 + html-test/ref/Table.html | 1 + html-test/ref/Test.html | 1 + html-test/ref/Threaded.html | 1 + html-test/ref/Threaded_TH.html | 1 + html-test/ref/Ticket112.html | 1 + html-test/ref/Ticket61.html | 1 + html-test/ref/Ticket75.html | 1 + html-test/ref/TitledPicture.html | 1 + html-test/ref/TypeFamilies.html | 1 + html-test/ref/TypeFamilies2.html | 1 + html-test/ref/TypeOperators.html | 1 + html-test/ref/Unicode.html | 1 + html-test/ref/Visible.html | 1 + 95 files changed, 97 insertions(+), 2 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index e4a0137e..f589e4c9 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -32,7 +32,7 @@ import Haddock.Types import Haddock.Version import Haddock.Utils import Haddock.Utils.Json -import Text.XHtml hiding ( name, title, p, quote ) +import Text.XHtml hiding ( title, p, quote ) import Haddock.GhcUtils import Control.Monad ( when, unless ) @@ -121,7 +121,8 @@ copyHtmlBits odir libdir themes withQuickjump = do headHtml :: String -> Themes -> Maybe String -> Html headHtml docTitle themes mathjax_url = header << [ - meta ! [httpequiv "Content-Type", content "text/html; charset=UTF-8"], + meta ! [ httpequiv "Content-Type", content "text/html; charset=UTF-8"], + meta ! [ name "viewport", content "width=device-width, initial-scale=1"], thetitle << docTitle, styleSheet themes, thelink ! [ rel "stylesheet", thetype "text/css", href quickJumpCssFile] << noHtml, diff --git a/html-test/ref/A.html b/html-test/ref/A.html index 9e41e154..31885479 100644 --- a/html-test/ref/A.html +++ b/html-test/ref/A.html @@ -1,6 +1,7 @@ ABBoldBug1Bug195Bug2Bug201Bug253Bug26Bug280Bug294Bug298Bug3Bug308Bug308CrossModuleBug310Bug313Bug335Bug387Bug4Bug546Bug548Bug6Bug613Bug647Bug679Bug7Bug8Bug85BugDeprecatedBugExportHeadingsBugsBundledPatternsBundledPatterns2ConstructorPatternExportDeprecatedClassDeprecatedDataDeprecatedFunctionDeprecatedFunction2DeprecatedFunction3DeprecatedModuleDeprecatedModule2DeprecatedNewtypeDeprecatedReExportDeprecatedRecordDeprecatedTypeFamilyDeprecatedTypeSynonymDuplicateRecordFieldsExamplesExtensionsFunArgsGADTRecordsHashHiddenInstancesHiddenInstancesBHyperlinksIgnoreExportsImplicitParamsInstancesMathMinimalModuleWithWarningNamedDocNestingNoLayoutNonGreedyOperatorsOrphanInstancesOrphanInstancesClassOrphanInstancesTypePR643PR643_1PatternSynsPromotedTypesPropertiesPruneWithWarningQuasiExprQuasiQuoteSpuriousSuperclassConstraintsTHTH2TableTestThreadedThreaded_THTicket112Ticket61Ticket75TitledPictureTypeFamiliesTypeFamilies2TypeOperatorsUnicodeVisible Date: Wed, 21 Mar 2018 11:46:45 +0100 Subject: Avoid name shadowing --- haddock-api/src/Haddock/Backends/Xhtml.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index f589e4c9..f46c47f0 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -32,7 +32,8 @@ import Haddock.Types import Haddock.Version import Haddock.Utils import Haddock.Utils.Json -import Text.XHtml hiding ( title, p, quote ) +import Text.XHtml hiding ( name, title, p, quote ) +import qualified Text.XHtml as XHtml import Haddock.GhcUtils import Control.Monad ( when, unless ) @@ -122,7 +123,7 @@ headHtml :: String -> Themes -> Maybe String -> Html headHtml docTitle themes mathjax_url = header << [ meta ! [ httpequiv "Content-Type", content "text/html; charset=UTF-8"], - meta ! [ name "viewport", content "width=device-width, initial-scale=1"], + meta ! [ XHtml.name "viewport", content "width=device-width, initial-scale=1"], thetitle << docTitle, styleSheet themes, thelink ! [ rel "stylesheet", thetype "text/css", href quickJumpCssFile] << noHtml, -- cgit v1.2.3 From 304e241f557e68222a33e1ba0be66aef32b95143 Mon Sep 17 00:00:00 2001 From: Nuno Alexandre Date: Sat, 14 Apr 2018 14:16:51 +0200 Subject: Update font in Xhtml.hs to PT Sans --- haddock-api/src/Haddock/Backends/Xhtml.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index f46c47f0..2b8bdd69 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -132,7 +132,7 @@ headHtml docTitle themes mathjax_url = script ! [src mjUrl, thetype "text/javascript"] << noHtml ] where - fontUrl = "https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700" + fontUrl = "https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" mjUrl = fromMaybe "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" mathjax_url srcButton :: SourceURLs -> Maybe Interface -> Maybe Html -- cgit v1.2.3 From 365c77dfc39a28e4b5fd7eaeb802edcc9df196f4 Mon Sep 17 00:00:00 2001 From: Nuno Alexandre Date: Sat, 21 Apr 2018 16:25:56 +0200 Subject: Make package-header caption backward-compatible The current html generator of this branch wraps the package-header caption as a div, which does not work (without style adjustments) with the old themes. Changing it from div to span does the trick, without needing to adjust the old stylesheets. --- haddock-api/src/Haddock/Backends/Xhtml/Layout.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index bdf989ed..10a6d499 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -74,8 +74,8 @@ sectionName = paragraph ! [theclass "caption"] -- If it would have otherwise been empty, then give it the class ".empty". nonEmptySectionName :: Html -> Html nonEmptySectionName c - | isNoHtml c = thediv ! [theclass "caption empty"] $ spaceHtml - | otherwise = thediv ! [theclass "caption"] $ c + | isNoHtml c = thespan ! [theclass "caption empty"] $ spaceHtml + | otherwise = thespan ! [theclass "caption"] $ c divPackageHeader, divContent, divModuleHeader, divFooter, -- cgit v1.2.3 From 2a46036ea4e2e6bb6505ebbfd3e4609aeb7c3845 Mon Sep 17 00:00:00 2001 From: Alec Theriault Date: Wed, 7 Nov 2018 10:22:31 -0800 Subject: Fix issues around plus/minus * swap the minimize unicode to something more intuitive * use new unicode expander/collapser for instance lists * address some alignment issues in the "index" page --- ghc.mk | 3 --- haddock-api/haddock-api.cabal | 3 --- haddock-api/resources/html/NewOcean.std-theme/minus.gif | Bin 56 -> 0 bytes .../resources/html/NewOcean.std-theme/new-ocean.css | 14 ++++++-------- haddock-api/resources/html/NewOcean.std-theme/plus.gif | Bin 59 -> 0 bytes haddock-api/src/Haddock/Backends/Xhtml.hs | 1 + haddock-api/src/Haddock/Backends/Xhtml/Layout.hs | 7 ++++--- 7 files changed, 11 insertions(+), 17 deletions(-) delete mode 100644 haddock-api/resources/html/NewOcean.std-theme/minus.gif delete mode 100644 haddock-api/resources/html/NewOcean.std-theme/plus.gif (limited to 'haddock-api/src/Haddock/Backends') diff --git a/ghc.mk b/ghc.mk index a10fd61a..d3b02b6e 100644 --- a/ghc.mk +++ b/ghc.mk @@ -45,10 +45,7 @@ utils/haddock_dist_DATA_FILES += html/Ocean.theme/minus.gif utils/haddock_dist_DATA_FILES += html/Ocean.theme/ocean.css utils/haddock_dist_DATA_FILES += html/Ocean.theme/plus.gif utils/haddock_dist_DATA_FILES += html/Ocean.theme/synopsis.png -utils/haddock_dist_DATA_FILES += html/NewOcean.std-theme/hslogo-16.png -utils/haddock_dist_DATA_FILES += html/NewOcean.std-theme/minus.gif utils/haddock_dist_DATA_FILES += html/NewOcean.std-theme/new-ocean.css -utils/haddock_dist_DATA_FILES += html/NewOcean.std-theme/plus.gif utils/haddock_dist_DATA_FILES += html/NewOcean.std-theme/synopsis.png utils/haddock_dist_DATA_FILES += html/solarized.css utils/haddock_dist_DATA_FILES += html/highlight.js diff --git a/haddock-api/haddock-api.cabal b/haddock-api/haddock-api.cabal index d5c976b6..a410f436 100644 --- a/haddock-api/haddock-api.cabal +++ b/haddock-api/haddock-api.cabal @@ -34,10 +34,7 @@ data-files: html/Ocean.theme/ocean.css html/Ocean.theme/plus.gif html/Ocean.theme/synopsis.png - html/NewOcean.std-theme/hslogo-16.png - html/NewOcean.std-theme/minus.gif html/NewOcean.std-theme/new-ocean.css - html/NewOcean.std-theme/plus.gif html/NewOcean.std-theme/synopsis.png latex/haddock.sty diff --git a/haddock-api/resources/html/NewOcean.std-theme/minus.gif b/haddock-api/resources/html/NewOcean.std-theme/minus.gif deleted file mode 100644 index 1deac2fe..00000000 Binary files a/haddock-api/resources/html/NewOcean.std-theme/minus.gif and /dev/null differ diff --git a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css index 8416176c..7568032f 100644 --- a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css +++ b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css @@ -352,7 +352,7 @@ ul.links li a { .show { display: inherit; } .clear { clear: both; } -.collapser:before, .expander:before { +.collapser:before, .expander:before, .noexpander:before { font-size: 1.2em; color: #9C5791; display: inline-block; @@ -360,11 +360,15 @@ ul.links li a { } .collapser:before { - content: '⊗'; + content: '⊖'; } .expander:before { content: "⊕"; } +.noexpander:before { + content: "⊕"; + visibility: hidden; +} .collapser, .expander { cursor: pointer; @@ -380,12 +384,6 @@ ul.links li a { summary { cursor: pointer; outline: none; - list-style-image: url(plus.gif); - list-style-position: outside; -} - -details[open] > summary { - list-style-image: url(minus.gif); } pre { diff --git a/haddock-api/resources/html/NewOcean.std-theme/plus.gif b/haddock-api/resources/html/NewOcean.std-theme/plus.gif deleted file mode 100644 index 2d15c141..00000000 Binary files a/haddock-api/resources/html/NewOcean.std-theme/plus.gif and /dev/null differ diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 2b8bdd69..2206b7dc 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -324,6 +324,7 @@ mkNode pkg qual ss p (Node s leaf _pkg srcPkg short ts) = cBtn = case (ts, leaf) of (_:_, Just _) -> thespan ! collapseControl p "" << spaceHtml + ([] , Just _) -> thespan ! [theclass "noexpander"] << spaceHtml (_, _ ) -> noHtml -- We only need an explicit collapser button when the module name -- is also a leaf, and so is a link to a module page. Indeed, the diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index 10a6d499..c935bc5f 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -195,17 +195,18 @@ subEquations :: Maybe Package -> Qualification -> [SubDecl] -> Html subEquations pkg qual = divSubDecls "equations" "Equations" . subTable pkg qual --- | Generate sub table for instance declarations, with source +-- | Generate collapsible sub table for instance declarations, with source subInstances :: Maybe Package -> Qualification -> String -- ^ Class name, used for anchor generation -> LinksInfo -> Bool -> [(SubDecl, Maybe Module, Located DocName)] -> Html subInstances pkg qual nm lnks splice = maybe noHtml wrap . instTable where - wrap contents = subSection (collapseDetails id_ DetailsOpen (summary +++ contents)) + wrap contents = subSection (hdr +++ collapseDetails id_ DetailsOpen (summary +++ contents)) instTable = subTableSrc pkg qual lnks splice subSection = thediv ! [theclass "subs instances"] - summary = thesummary << "Instances" + hdr = h4 ! collapseControl id_ "instances" << "Instances" + summary = thesummary ! [ theclass "hide-when-js-enabled" ] << "Instances details" id_ = makeAnchorId $ "i:" ++ nm -- cgit v1.2.3 From ad157c408cd7ad4badec71a84551a836a343f27b Mon Sep 17 00:00:00 2001 From: Alec Theriault Date: Wed, 7 Nov 2018 13:31:19 -0800 Subject: Allow "Contents" summary to scroll in a fixed div In the unfortunate event that the "Contents" summary doesn't fit vertically (like in the "Prelude"), it will be scrollable. --- .../resources/html/NewOcean.std-theme/new-ocean.css | 18 ++++++++---------- haddock-api/src/Haddock/Backends/Xhtml.hs | 4 ++-- haddock-api/src/Haddock/Backends/Xhtml/Layout.hs | 5 +++-- 3 files changed, 13 insertions(+), 14 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css index 7568032f..906b3954 100644 --- a/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css +++ b/haddock-api/resources/html/NewOcean.std-theme/new-ocean.css @@ -81,6 +81,9 @@ body.js-enabled .hide-when-js-enabled { position: fixed; max-width: 10vw; top: 10.2em; + left: 2em; + bottom: 1em; + overflow-y: scroll; } #synopsis { @@ -96,10 +99,6 @@ body.js-enabled .hide-when-js-enabled { z-index: 1; } - #table-of-contents { - left: 2em; - } - #synopsis .show { border: 1px solid #5E5184; padding: 0.7em; @@ -518,7 +517,7 @@ div#style-menu-holder { /* @group Front Matter */ #synopsis .caption, -#table-of-contents .caption { +#contents-list .caption { font-size: 1rem; } @@ -526,26 +525,25 @@ div#style-menu-holder { font-size: 16px; } -#table-of-contents { +#contents-list { background: #f7f7f7; padding: 1em; margin: 0; - margin-top: 1em; } -#table-of-contents .caption { +#contents-list .caption { text-align: left; margin: 0; } -#table-of-contents ul { +#contents-list ul { list-style: none; margin: 0; margin-top: 10px; font-size: 14px; } -#table-of-contents ul ul { +#contents-list ul ul { margin-left: 1.5em; } diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index 2206b7dc..e2fdc509 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -633,9 +633,9 @@ ppModuleContents pkg qual exports orphan | null sections && not orphan = noHtml | otherwise = contentsDiv where - contentsDiv = divTableOfContents << ( + contentsDiv = divTableOfContents << (divContentsList << ( sectionName << "Contents" +++ - unordList (sections ++ orphanSection)) + unordList (sections ++ orphanSection))) (sections, _leftovers{-should be []-}) = process 0 exports orphanSection diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index c935bc5f..25d8b07a 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -15,7 +15,7 @@ module Haddock.Backends.Xhtml.Layout ( divPackageHeader, divContent, divModuleHeader, divFooter, divTableOfContents, divDescription, divSynopsis, divInterface, - divIndex, divAlphabet, divModuleList, + divIndex, divAlphabet, divModuleList, divContentsList, sectionName, nonEmptySectionName, @@ -80,7 +80,7 @@ nonEmptySectionName c divPackageHeader, divContent, divModuleHeader, divFooter, divTableOfContents, divDescription, divSynopsis, divInterface, - divIndex, divAlphabet, divModuleList + divIndex, divAlphabet, divModuleList, divContentsList :: Html -> Html divPackageHeader = sectionDiv "package-header" @@ -88,6 +88,7 @@ divContent = sectionDiv "content" divModuleHeader = sectionDiv "module-header" divFooter = sectionDiv "footer" divTableOfContents = sectionDiv "table-of-contents" +divContentsList = sectionDiv "contents-list" divDescription = sectionDiv "description" divSynopsis = sectionDiv "synopsis" divInterface = sectionDiv "interface" -- cgit v1.2.3 From 8344c3b6360b09e99b32c8c5f34f28d3310f9e1a Mon Sep 17 00:00:00 2001 From: Alec Theriault Date: Thu, 8 Nov 2018 18:49:57 -0800 Subject: Clicking on "Contents" navigates to top of page --- haddock-api/src/Haddock/Backends/Xhtml.hs | 2 +- html-test/ref/Bug387.html | 2 +- html-test/ref/BugExportHeadings.html | 2 +- html-test/ref/DeprecatedReExport.html | 2 +- html-test/ref/Hash.html | 2 +- html-test/ref/OrphanInstances.html | 2 +- html-test/ref/Test.html | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) (limited to 'haddock-api/src/Haddock/Backends') diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs index e2fdc509..202fcdf1 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml.hs @@ -634,7 +634,7 @@ ppModuleContents pkg qual exports orphan | otherwise = contentsDiv where contentsDiv = divTableOfContents << (divContentsList << ( - sectionName << "Contents" +++ + (sectionName << "Contents") ! [ strAttr "onclick" "window.scrollTo(0,0)" ] +++ unordList (sections ++ orphanSection))) (sections, _leftovers{-should be []-}) = process 0 exports diff --git a/html-test/ref/Bug387.html b/html-test/ref/Bug387.html index a6b19759..3193fc7f 100644 --- a/html-test/ref/Bug387.html +++ b/html-test/ref/Bug387.html @@ -42,7 +42,7 @@ >

Contents

Contents

Contents

Contents

Contents

Contents