Skip to content

Commit d2630bc

Browse files
committed
[chore] build in a tiny bit of semantic html
1 parent c39d5e8 commit d2630bc

File tree

4 files changed

+36
-30
lines changed

4 files changed

+36
-30
lines changed

datafiles/templates/Html/package-page.html.st

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<body>
3030
$hackagePageHeader()$
3131

32-
<div id="content">
32+
<main id="content">
3333
<h1><a href="$baseurl$/package/$package.name$">$package.name$</a>$if(package.optional.hasSynopsis)$: <small>$package.optional.synopsis$</small>$endif$</h1>
3434
<div style="font-size: small">
3535
[ $tags$ ]
@@ -122,7 +122,7 @@
122122
</div><!-- /left-pane -->
123123

124124

125-
<div id="properties">
125+
<aside id="properties">
126126
<table class="properties">
127127
<tbody>
128128

@@ -285,7 +285,7 @@
285285
</tr>
286286
</tbody>
287287
</table>
288-
</div> <!-- /properties -->
288+
</aside> <!-- /properties -->
289289
</div><!-- /flex-container -->
290290

291291
$if(package.optional.hasReadme)$
@@ -298,7 +298,7 @@
298298
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.29.0/components/prism-core.min.js"></script>
299299
<script src="https://cdn.jsdelivr.net/npm/prismjs@v1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
300300
$endif$
301-
</div> <!-- /content -->
301+
</main> <!-- /content -->
302302

303303
$packagePageAssets()$
304304
<div style="clear:both"></div>

datafiles/templates/footer.st

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<div id="footer">
1+
<footer id="footer">
22
<p>
33
Produced by <a href="/">hackage</a> and <a href="http://haskell.org/cabal/">Cabal</a> $cabalVersion$.
44
</p>
5-
</div>
5+
</footer>
Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
1-
<div id="page-header">
1+
<header id="page-header">
22

33
<a class="caption" href="/">Hackage :: [Package]</a>
44

5-
<ul class="links" id="page-menu">
5+
<nav>
6+
<ul class="links" id="page-menu">
67

7-
<li>
8-
<form action="/packages/search" method="get" class="search">
9-
<button type="submit">Search&nbsp;</button>
10-
<input type="text" name="terms" />
11-
</form>
12-
</li>
8+
<li>
9+
<form action="/packages/search" method="get" class="search">
10+
<button type="submit">Search&nbsp;</button>
11+
<input type="text" name="terms" />
12+
</form>
13+
</li>
1314

14-
<li><a href="/packages/browse">Browse</a></li>
15+
<li><a href="/packages/browse">Browse</a></li>
1516

16-
<li><a href="/packages/recent">What's new</a></li>
17+
<li><a href="/packages/recent">What's new</a></li>
1718

18-
<li><a href="/upload">Upload</a></li>
19+
<li><a href="/upload">Upload</a></li>
1920

20-
<li><a href="/accounts">User accounts</a></li>
21-
$if(deauthPack)$
22-
<li><a title="If authenticated" href="/packages/deauth">Logout</a></li>
23-
$elseif(deauthAdmin)$
24-
<li><a title="If authenticated" href="/admin/deauth">Logout</a></li>
25-
$elseif(deauthUser)$
26-
<li><a title="If authenticated" href="./deauth">Logout</a></li>
27-
$endif$
21+
<li><a href="/accounts">User accounts</a></li>
22+
$if(deauthPack)$
23+
<li><a title="If authenticated" href="/packages/deauth">Logout</a></li>
24+
$elseif(deauthAdmin)$
25+
<li><a title="If authenticated" href="/admin/deauth">Logout</a></li>
26+
$elseif(deauthUser)$
27+
<li><a title="If authenticated" href="./deauth">Logout</a></li>
28+
$endif$
2829

29-
</ul>
30+
</ul>
31+
</nav>
3032

31-
</div>
33+
</header>

src/Distribution/Server/Pages/Template.hs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module Distribution.Server.Pages.Template
66
) where
77

88
import Text.XHtml.Strict
9+
import qualified Text.XHtml as XHtml
910

1011
--TODO: replace all this with external templates
1112

@@ -36,21 +37,22 @@ hackagePageWith headExtra docTitle docSubtitle docContent bodyExtra =
3637
, thetype "image/png"] << noHtml
3738
, meta ! [ name "viewport"
3839
, content "width=device-width, initial-scale=1"]
39-
, (script noHtml) ! [ src "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js", thetype "text/javascript"]
40+
, script noHtml ! [ src "https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js", thetype "text/javascript"]
4041
-- if Search is enabled
4142
, thelink ! [ rel "search", href "/packages/opensearch.xml"
4243
, thetype "application/opensearchdescription+xml"
4344
, title "Hackage" ] << noHtml
4445
]
45-
docBody = [ thediv ! [identifier "page-header"] << docHeader
46+
docBody = [ theheader ! [identifier "page-header"] << docHeader
4647
, thediv ! [identifier "content"] << docContent ]
4748
docHeader = [ docSubtitle
4849
, navigationBar
4950
]
51+
theheader = XHtml.tag "header"
5052

5153
navigationBar :: Html
5254
navigationBar =
53-
ulist ! [theclass "links", identifier "page-menu"]
55+
thenav $ ulist ! [theclass "links", identifier "page-menu"]
5456
<< map (li <<)
5557
[ anchor ! [href introductionURL] << "Home"
5658
, form ! [action "/packages/search", theclass "search", method "get"]
@@ -61,6 +63,8 @@ navigationBar =
6163
, anchor ! [href uploadURL] << "Upload"
6264
, anchor ! [href accountsURL] << "User accounts"
6365
]
66+
where
67+
thenav = XHtml.tag "nav"
6468

6569

6670
googleFontURL :: URL

0 commit comments

Comments
 (0)