From 5190ad45bd4821d2e2033784d7009828ab035aff Mon Sep 17 00:00:00 2001 From: Matthew Pickering Date: Wed, 17 Aug 2022 08:58:26 +0100 Subject: [PATCH] Add "Quick Jump" to candidate package page This allows the testing of quick jump for a candidate. --- .../templates/Html/candidate-page.html.st | 8 +++++++ src/Distribution/Server/Features/Html.hs | 22 ++++++++++++++----- .../Server/Pages/PackageFromTemplate.hs | 9 +++----- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/datafiles/templates/Html/candidate-page.html.st b/datafiles/templates/Html/candidate-page.html.st index 196b8dd03..6b524ed75 100644 --- a/datafiles/templates/Html/candidate-page.html.st +++ b/datafiles/templates/Html/candidate-page.html.st @@ -1,6 +1,9 @@ + $if(doc.hasQuickNavV1)$ + + $endif$ $hackageCssTheme()$ $package.name$$if(package.optional.hasSynopsis)$: $package.optional.synopsis$$endif$ @@ -146,5 +149,10 @@ $package.optional.readme$ $endif$ + $if(doc.hasQuickNavV1)$ + <script src="$doc.baseUrl$/quick-jump.min.js" type="text/javascript"></script> + <script type="text/javascript"> quickNav.init("$doc.baseUrl$", function(toggle) {var t = document.getElementById('quickjump-trigger');if (t) {t.onclick = function(e) { e.preventDefault(); toggle(); };}}); </script> + $endif$ + </body> </html> diff --git a/src/Distribution/Server/Features/Html.hs b/src/Distribution/Server/Features/Html.hs index 7155f62e4..2268a1704 100644 --- a/src/Distribution/Server/Features/Html.hs +++ b/src/Distribution/Server/Features/Html.hs @@ -284,7 +284,7 @@ htmlFeature env@ServerEnv{..} htmlDocUploads = mkHtmlDocUploads utilities core docsCore templates htmlDownloads = mkHtmlDownloads utilities download htmlReports = mkHtmlReports utilities core reportsCore templates - htmlCandidates = mkHtmlCandidates utilities core versions upload + htmlCandidates = mkHtmlCandidates env utilities core versions upload docsCandidates tarIndexCache candidates user templates htmlPreferred = mkHtmlPreferred utilities core versions @@ -1083,7 +1083,8 @@ data HtmlCandidates = HtmlCandidates { htmlCandidatesResources :: [Resource] } -mkHtmlCandidates :: HtmlUtilities +mkHtmlCandidates :: ServerEnv + -> HtmlUtilities -> CoreFeature -> VersionsFeature -> UploadFeature @@ -1093,7 +1094,7 @@ mkHtmlCandidates :: HtmlUtilities -> UserFeature -> Templates -> HtmlCandidates -mkHtmlCandidates utilities@HtmlUtilities{..} +mkHtmlCandidates ServerEnv{..} utilities@HtmlUtilities{..} CoreFeature{ coreResource = CoreResource{packageInPath} , queryGetPackageIndex } @@ -1252,9 +1253,20 @@ mkHtmlCandidates utilities@HtmlUtilities{..} mdocIndex <- maybe (return Nothing) (liftM Just . liftIO . cachedTarIndex) mdoctarblob - let docURL = packageDocsContentUri docs (packageId cand) mreadme <- makeReadme render + let loadDocMeta + | Just doctarblob <- mdoctarblob + , Just docIndex <- mdocIndex + = loadTarDocMeta + (BlobStorage.filepath serverBlobStore doctarblob) + docIndex + (packageId cand) + | otherwise + = return Nothing + mdocMeta <- loadDocMeta + + let docURL = packageDocsContentUri docs (packageId cand) -- also utilize hasIndexedPackage :: Bool let warningBox = case renderWarnings candRender of @@ -1267,7 +1279,7 @@ mkHtmlCandidates utilities@HtmlUtilities{..} , "warningBox" $= warningBox ] ++ PagesNew.packagePageTemplate render - mdocIndex Nothing mreadme + mdocIndex mdocMeta mreadme docURL [] Nothing utilities True diff --git a/src/Distribution/Server/Pages/PackageFromTemplate.hs b/src/Distribution/Server/Pages/PackageFromTemplate.hs index d54883fa2..360178cc2 100644 --- a/src/Distribution/Server/Pages/PackageFromTemplate.hs +++ b/src/Distribution/Server/Pages/PackageFromTemplate.hs @@ -97,7 +97,7 @@ packagePageTemplate render , "doc" $= docFieldsTemplate ] ++ -- Miscellaneous things that could still stand to be refactored a bit. - [ "moduleList" $= Old.moduleSection render mdocIndex docURL False + [ "moduleList" $= Old.moduleSection render mdocIndex docURL hasQuickNav , "downloadSection" $= Old.downloadSection render ] else @@ -174,11 +174,8 @@ packagePageTemplate render ] docFieldsTemplate = - if isCandidate - then templateDict [ templateVal "baseUrl" docURL ] - else templateDict [ templateVal "hasQuickNavV1" hasQuickNavV1 - , templateVal "baseUrl" docURL - ] + templateDict [ templateVal "hasQuickNavV1" hasQuickNavV1 + , templateVal "baseUrl" docURL ] -- Fields that may be empty, along with booleans to see if they're present. -- Access via "$package.optional.varname$"