Skip to content

Commit a4a76e5

Browse files
frasertweedaleblackheaven
authored andcommitted
lib/html: relativise URLs
URL for the pages are currently all absolute. Use relative URLs instead so that the pages can be located/browsed locally or "mounted" at arbitrary paths.
1 parent d395b12 commit a4a76e5

File tree

1 file changed

+11
-4
lines changed
  • code/hsec-tools/src/Security/Advisories/Generate

1 file changed

+11
-4
lines changed

code/hsec-tools/src/Security/Advisories/Generate/HTML.hs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,18 +142,25 @@ listByPackages advisories =
142142

143143
-- * Utils
144144

145-
data NavigationPage
145+
data NavigationPage
146146
= PageListByDates
147147
| PageListByPackages
148148
| PageAdvisory
149149
deriving stock (Eq, Show)
150150

151+
baseUrlForPage :: NavigationPage -> Text
152+
baseUrlForPage = \case
153+
PageListByDates -> "."
154+
PageListByPackages -> "."
155+
PageAdvisory -> ".."
156+
151157
inPage :: NavigationPage -> Html () -> Html ()
152158
inPage page content =
153159
doctypehtml_ $
154160
html_ $ do
155161
head_ $ do
156162
meta_ [charset_ "UTF-8"]
163+
base_ [href_ $ baseUrlForPage page]
157164
link_ [rel_ "stylesheet", href_ "https://cdn.jsdelivr.net/npm/[email protected]/build/pure-min.css", integrity_ "sha384-X38yfunGUhNzHpBaEBsWLO+A0HDYOQi8ufWDkZ0k9e0eXz/tH3II7uKZ9msv++Ls", crossorigin_ "anonymous"]
158165
meta_ [name_ "viewport", content_ "width=device-width, initial-scale=1"]
159166
title_ "Haskell Security Advisories"
@@ -184,16 +191,16 @@ inPage page content =
184191
span_ [class_ "pure-menu-heading pure-menu-link"] "Advisories list"
185192
ul_ [class_ "pure-menu-list"] $ do
186193
li_ [class_ $ selectedOn PageListByDates "pure-menu-item"] $
187-
a_ [href_ "/by-dates.html", class_ "pure-menu-link"] "by date"
194+
a_ [href_ "by-dates.html", class_ "pure-menu-link"] "by date"
188195
li_ [class_ $ selectedOn PageListByPackages "pure-menu-item"] $
189-
a_ [href_ "/by-packages.html", class_ "pure-menu-link"] "by package"
196+
a_ [href_ "by-packages.html", class_ "pure-menu-link"] "by package"
190197
div_ [class_ "content"] content
191198

192199
advisoryHtmlFilename :: Advisories.HsecId -> FilePath
193200
advisoryHtmlFilename advisoryId' = Advisories.printHsecId advisoryId' <> ".html"
194201

195202
advisoryLink :: Advisories.HsecId -> Text
196-
advisoryLink advisoryId' = "/advisory/" <> T.pack (advisoryHtmlFilename advisoryId')
203+
advisoryLink advisoryId' = "advisory/" <> T.pack (advisoryHtmlFilename advisoryId')
197204

198205
toAdvisoryR :: Advisories.Advisory -> AdvisoryR
199206
toAdvisoryR x =

0 commit comments

Comments
 (0)