Skip to content

Commit ba340d7

Browse files
authored
Make changelog reachable from the landing page (#1870)
1 parent 807bf2f commit ba340d7

File tree

2 files changed

+68
-20
lines changed

2 files changed

+68
-20
lines changed

src/ocamlorg_frontend/pages/home.eml

Lines changed: 65 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ let package_card ~href ~img_path ~name description =
1313
</a>
1414

1515
let render
16-
~(latest_release: Data.Release.t)
17-
~(lts_release: Data.Release.t)
16+
~(latest_release: Data.Release.t)
17+
~(lts_release: Data.Release.t)
18+
~(releases : Data.Release.t list)
19+
~(changelogs : Data.Changelog.t list)
1820
=
1921
Layout.render
2022
~use_swiper:true
@@ -214,7 +216,6 @@ Layout.render
214216
</div>
215217
</div>
216218
</div>
217-
218219
<div class="flex gap-10 lg:gap-24 flex-col lg:flex-row-reverse justify-between">
219220
<div class="lg:flex-1">
220221
<div class="text-legacy-lighter text-base">
@@ -263,22 +264,67 @@ Layout.render
263264
</div>
264265
</div>
265266
</div>
266-
<div class="bg-legacy-default py-12 overflow-hidden">
267-
<div class="container-fluid flex flex-col items-center">
268-
<h3 class="font-bold">Releases</h3>
269-
<div class="bg-pattern p-6 mt-8 rounded-xl w-full lg:w-2/3 text-white">
270-
<a href="<%s Url.release latest_release.version %>">
271-
<div class="text-primary text-sm mb-4 uppercase">Recent Release</div>
272-
<h3 class="font-bold mb-6">
273-
<%s latest_release.version %> <span class="text-sm font-medium">(<%s latest_release.date %>)</span>
274-
</h3>
275-
</a>
276-
<div class="prose prose-sm text-white"><%s! latest_release.highlights_html %></div>
277-
</div>
278-
<a href="<%s Url.releases %>" class="btn btn-lg btn-ghost mt-8">
279-
<span>See all Releases</span>
280-
<%s! Icons.chevron_right "h-5 w-5" %>
281-
</a>
267+
<div class="bg-legacy-default pt-24 pb-14 overflow-hidden">
268+
<div class="container-fluid grid grid-cols-1 lg:grid-cols-2 gap-10 items-stretch mb-14">
269+
<div class="flex flex-col">
270+
<h3 class="font-bold">Releases</h3>
271+
<div class="flex-grow p-10 mt-7 w-full border-2 shadow-md rounded-2xl h-full">
272+
<div class="text-primary text-sm mb-4 uppercase">Recent Releases</div>
273+
274+
<% releases |> List.iter (fun (item : Data.Release.t) -> %>
275+
<div class="mb-4">
276+
<a href="<%s Url.release item.version %>">
277+
<h3 class="font-bold mb-6">
278+
<%s item.version %> <span class="text-sm">(<%s item.date %>)</span>
279+
</h3>
280+
</a>
281+
<div class="prose prose-sm"><%s! item.highlights_html %></div>
282+
</div>
283+
<% ); %>
284+
285+
<a href="<%s Url.releases %>" class="btn btn-ghost rounded mt-8">
286+
<span>See All Releases</span>
287+
<%s! Icons.chevron_right "h-5 w-5" %>
288+
</a>
289+
</div>
290+
</div>
291+
<div class="flex flex-col">
292+
<h3 class="font-bold">Changelog</h3>
293+
<div class="flex-grow p-10 mt-7 border-2 shadow-md rounded-2xl h-full">
294+
<a href="<%s Url.changelog %>">
295+
<div class="text-primary text-sm mb-4 uppercase">Releases & Updates</div>
296+
<h3 class="font-bold mb-6">
297+
Compiler and Platform Tools
298+
</h3>
299+
</a>
300+
<% let changelogs_length = List.length changelogs in changelogs |>
301+
List.iteri (fun index (item : Data.Changelog.t) -> %>
302+
<div class="<%s if index = changelogs_length - 1 then "pl-8" else "pl-8 border-l-2" %>">
303+
<div class="flex flex-col">
304+
<div class="mb-6">
305+
<div class="relative pb-2">
306+
<div class="absolute block -left-11 bg-legacy-default dark:bg-legacy-dark-default w-6 h-6 mt-0.5 text-primary">
307+
<%s! Icons.changelog "w-6 h-6" %>
308+
</div>
309+
<a href="<%s Url.changelog_entry item.slug %>" class="my-0 font-sans text-xl tracking-normal font-extrabold leading-7 changelog-title whitespace-normal break-all"><%s item.title %></a>
310+
<time datetime="<%s item.date %>" class="block mt-1 font-sans text-sm text-legacy-lighter"><%s Utils.human_date item.date %></time>
311+
</div>
312+
<div class="prose prose-orange">
313+
<%s! String.sub item.body_html 0 100 %>...
314+
</div>
315+
<a href="<%s Url.changelog %>" class="text-primary mt-2">
316+
See full changelog
317+
</a>
318+
</div>
319+
</div>
320+
</div>
321+
<% ); %>
322+
<a href="<%s Url.changelog %>" class="btn btn-ghost rounded mt-8">
323+
<span>See Full Changelog</span>
324+
<%s! Icons.chevron_right "h-5 w-5" %>
325+
</a>
326+
</div>
327+
</div>
282328
</div>
283329
</div>
284330
<div class="bg-pattern py-24 overflow-hidden">

src/ocamlorg_web/lib/handler.ml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ let ( let</>? ) opt = http_or_404 opt
1010
let index _req =
1111
Dream.html
1212
(Ocamlorg_frontend.home ~latest_release:Data.Release.latest
13-
~lts_release:Data.Release.lts)
13+
~lts_release:Data.Release.lts
14+
~releases:(List.take 2 Data.Release.all)
15+
~changelogs:(List.take 3 Data.Changelog.all))
1416

1517
let install _req = Dream.html (Ocamlorg_frontend.install ())
1618

0 commit comments

Comments
 (0)