Skip to content

Commit 979f5ee

Browse files
authored
Merge branch 'ep2025' into ep2025-ci
2 parents 906251e + 254504b commit 979f5ee

25 files changed

+4447
-2435
lines changed

pnpm-lock.yaml

Lines changed: 3572 additions & 1729 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/BaseHead.astro

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,8 @@ const { title, description, image = "/social-card.png" } = Astro.props;
5353
<meta http-equiv="X-Clacks-Overhead" content="GNU Oier Etxaniz" />
5454
<meta http-equiv="X-Clacks-Overhead" content="GNU Russel Winder" />
5555

56-
<script defer is:inline data-domain="ep2025.europython.eu" src="https://plausible.io/js/script.js"></script>
56+
<script
57+
defer
58+
is:inline
59+
data-domain="ep2025.europython.eu"
60+
src="https://plausible.io/js/script.js"></script>

src/components/accent/accent.astro

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import clockImage from "./astronomical_clock.svg";
44
---
55

66
<div class="bg-body-background overflow-hidden">
7-
<div class="w-[250px] -mx-20 h-auto self-end absolute top-0 right-0 translate-x-14 hidden lg:block">
8-
<Image
9-
src={clockImage}
10-
alt=""
11-
/>
7+
<div
8+
class="w-[250px] -mx-20 h-auto self-end absolute top-0 right-0 translate-x-14 hidden lg:block"
9+
>
10+
<Image src={clockImage} alt="" />
1211
</div>
12+
</div>

src/components/accordion/accordion.astro

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,23 @@ const { title, id } = Astro.props;
2727
document.addEventListener("DOMContentLoaded", () => {
2828
const hash = window.location.hash.substring(1); // Remove #
2929
if (hash) {
30-
const details = document.getElementById(hash) as HTMLDetailsElement | null;
30+
const details = document.getElementById(
31+
hash,
32+
) as HTMLDetailsElement | null;
3133
if (details) {
3234
details.open = true;
3335
}
3436
}
3537

3638
// Update the URL when a detail is toggled
37-
const detailsElements = document.querySelectorAll('details');
39+
const detailsElements = document.querySelectorAll("details");
3840
detailsElements.forEach((details) => {
39-
details.addEventListener('toggle', () => {
41+
details.addEventListener("toggle", () => {
4042
const id = details.id;
4143
if (details.open) {
42-
window.history.pushState(null, '', `#${id}`);
44+
window.history.pushState(null, "", `#${id}`);
4345
} else {
44-
window.history.pushState(null, '', window.location.pathname); // Remove the hash
46+
window.history.pushState(null, "", window.location.pathname); // Remove the hash
4547
}
4648
});
4749
});
Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
import type React from 'react';
2+
import type React from "react";
33
44
export interface Props {
55
url?: string;
@@ -10,8 +10,15 @@ export interface Props {
1010
isExternal?: boolean;
1111
}
1212
13-
const { url, className = "", secondary = false, disabled = false, isExternal} = Astro.props;
14-
const resolvedIsExternal = isExternal !== undefined ? isExternal : url?.startsWith("http");
13+
const {
14+
url,
15+
className = "",
16+
secondary = false,
17+
disabled = false,
18+
isExternal,
19+
} = Astro.props;
20+
const resolvedIsExternal =
21+
isExternal !== undefined ? isExternal : url?.startsWith("http");
1522
---
1623

1724
<a
@@ -24,9 +31,9 @@ const resolvedIsExternal = isExternal !== undefined ? isExternal : url?.startsWi
2431
>
2532
<slot />
2633

27-
{resolvedIsExternal && (
28-
<span class="inline-block ml-1 font-system text-lg leading-4">
29-
30-
</span>
31-
)}
34+
{
35+
resolvedIsExternal && (
36+
<span class="inline-block ml-1 font-system text-lg leading-4">↗</span>
37+
)
38+
}
3239
</a>

src/components/card/card.astro

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ export interface Props {
1313
const { title, subtitle, url, image } = Astro.props;
1414
---
1515

16-
<div class="block min-w-[250px] w-full md:w-[40%] lg:w-[30%] p-4 bg-[#D5D6E6] rounded-2xl text-center flex flex-col">
16+
<div
17+
class="block min-w-[250px] w-full md:w-[40%] lg:w-[30%] p-4 bg-[#D5D6E6] rounded-2xl text-center flex flex-col"
18+
>
1719
<a href={url} class="block">
1820
<div class="relative w-full mb-4">
1921
<Image
@@ -32,10 +34,11 @@ const { title, subtitle, url, image } = Astro.props;
3234
</a>
3335
<slot />
3436
</div>
35-
<a class="text-xs px-2 py-1 mt-4 bg-[#141F36] text-white rounded-[10px] inline-block w-fit mx-auto leading-4 hover:bg-button-hover not-prose mt-auto" href={url}>
37+
<a
38+
class="text-xs px-2 py-1 mt-4 bg-[#141F36] text-white rounded-[10px] inline-block w-fit mx-auto leading-4 hover:bg-button-hover not-prose mt-auto"
39+
href={url}
40+
>
3641
{subtitle}
37-
<span class="inline-block ml-1 font-system text-lg leading-4">
38-
39-
</span>
42+
<span class="inline-block ml-1 font-system text-lg leading-4"> ↗ </span>
4043
</a>
4144
</div>

src/components/footer.astro

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@ const gitVersion = import.meta.env.GIT_VERSION;
1616
<nav class="mb-12">
1717
<h6 class="font-bold text-xl mb-6">Quicklinks</h6>
1818
<ul>
19-
{
20-
links.footer.map((item) => (
21-
<li class="list-none">
22-
<a
23-
href={item.path}
24-
class="block font-bold text-4xl md:text-5xl mb-4 hover:text-primary-hover"
25-
>
26-
{item.name}
27-
{item.path.startsWith("http") ? <span> ↗</span> : null}
28-
</a>
29-
</li>
30-
))
31-
}
19+
{
20+
links.footer.map((item) => (
21+
<li class="list-none">
22+
<a
23+
href={item.path}
24+
class="block font-bold text-4xl md:text-5xl mb-4 hover:text-primary-hover"
25+
>
26+
{item.name}
27+
{item.path.startsWith("http") ? <span> ↗</span> : null}
28+
</a>
29+
</li>
30+
))
31+
}
3232
</ul>
3333
</nav>
3434
</div>
@@ -104,6 +104,5 @@ const gitVersion = import.meta.env.GIT_VERSION;
104104
</p>
105105
</div>
106106
</article>
107-
108107
</footer>
109108
</Fullbleed>

src/components/header/header-actions.astro

Lines changed: 103 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,16 @@ const IS_LIVE = false;
1313
---
1414

1515
<div class="ml-auto flex items-center space-x-4">
16-
<Search id="search" className="pagefind-ui" uiOptions={{
17-
16+
<Search
17+
id="search"
18+
className="pagefind-ui"
19+
uiOptions={{
1820
showImages: false,
1921
translations: {
20-
zero_results: "Couldn't find [SEARCH_TERM]"
21-
}
22-
}} />
22+
zero_results: "Couldn't find [SEARCH_TERM]",
23+
},
24+
}}
25+
/>
2326
{
2427
!mobile ? (
2528
<>
@@ -43,118 +46,118 @@ const IS_LIVE = false;
4346
</label>
4447
</div>
4548
<script>
46-
document.addEventListener("DOMContentLoaded", function () {
49+
document.addEventListener("DOMContentLoaded", function () {
4750
const searchContainer = document.querySelector(".pagefind-ui");
4851
const searchInput = searchContainer?.querySelector("input");
4952
let selectedIndex = -1;
5053

5154
function updateSelection() {
52-
const results = searchContainer?.querySelectorAll(".pagefind-ui__result");
53-
if (!results) return;
55+
const results = searchContainer?.querySelectorAll(".pagefind-ui__result");
56+
if (!results) return;
5457

55-
results.forEach((result, index) => {
56-
if (index === selectedIndex) {
57-
result.classList.add("selected");
58-
result.scrollIntoView({ block: "nearest", behavior: "smooth" });
59-
} else {
60-
result.classList.remove("selected");
61-
}
62-
});
58+
results.forEach((result, index) => {
59+
if (index === selectedIndex) {
60+
result.classList.add("selected");
61+
result.scrollIntoView({ block: "nearest", behavior: "smooth" });
62+
} else {
63+
result.classList.remove("selected");
64+
}
65+
});
6366
}
6467

6568
document.addEventListener("keydown", function (event) {
66-
if (!searchContainer || !searchInput) return;
69+
if (!searchContainer || !searchInput) return;
6770

68-
const results = searchContainer.querySelectorAll(".pagefind-ui__result");
69-
if (document.activeElement === searchInput) {
70-
if (event.key === "ArrowDown") {
71-
event.preventDefault();
72-
selectedIndex = (selectedIndex + 1) % results.length;
73-
updateSelection();
74-
} else if (event.key === "ArrowUp") {
75-
event.preventDefault();
76-
selectedIndex = (selectedIndex - 1 + results.length) % results.length;
77-
updateSelection();
78-
} else if (event.key === "Enter" && selectedIndex >= 0) {
79-
event.preventDefault();
80-
results[selectedIndex].querySelector("a")?.click();
81-
}
71+
const results = searchContainer.querySelectorAll(".pagefind-ui__result");
72+
if (document.activeElement === searchInput) {
73+
if (event.key === "ArrowDown") {
74+
event.preventDefault();
75+
selectedIndex = (selectedIndex + 1) % results.length;
76+
updateSelection();
77+
} else if (event.key === "ArrowUp") {
78+
event.preventDefault();
79+
selectedIndex = (selectedIndex - 1 + results.length) % results.length;
80+
updateSelection();
81+
} else if (event.key === "Enter" && selectedIndex >= 0) {
82+
event.preventDefault();
83+
results[selectedIndex].querySelector("a")?.click();
8284
}
85+
}
8386
});
8487

8588
// Reset selection when the search query changes
8689
searchInput?.addEventListener("input", function () {
87-
selectedIndex = -1;
90+
selectedIndex = -1;
8891
});
89-
90-
});
92+
});
9193
</script>
9294
<style is:global>
93-
.pagefind-ui__result.selected {
94-
background-color: #f5f5f5;
95-
background-image: linear-gradient(to right, #3684B6 7px, transparent 5px);
96-
-webkit-transform: translate3d(0, 0, 0);
97-
transform: translate3d(0, 0, 0);
98-
}
99-
.pagefind-ui__drawer {
100-
}
101-
.pagefind-ui__message {
102-
margin: 1em;
103-
}
104-
.pagefind-ui__result mark {
105-
background: #F9EB5D;
106-
background-image: linear-gradient(to right, #F9EB5D 10%, #FCF4A7 100%);
107-
margin: 4px;
108-
padding-right: 6px;
109-
padding-left: 6px;
110-
padding-top: 2px;
111-
padding-bottom: 2px;
112-
color: #000000;
113-
font-family: monospace;
114-
border-radius: 4px;
115-
}
116-
.pagefind-ui {
117-
--pagefind-ui-scale: 1;
118-
--pagefind-ui-primary: #141f36;
119-
--pagefind-ui-text: black;
120-
--pagefind-ui-border: #d8d8d8;
121-
--pagefind-ui-border-width: 2px;
122-
--pagefind-ui-border-radius: 0;
123-
width: 50%;
124-
}
125-
.pagefind-ui.yellow {
126-
--pagefind-ui-background: #efc302;
127-
}
128-
.pagefind-ui.red {
129-
--pagefind-ui-background: #ffb9bb;
130-
width: 50%;
131-
}
132-
.pagefind-ui .pagefind-ui__drawer:not(.pagefind-ui__hidden) {
133-
position: absolute;
134-
left: auto;
135-
right: 0;
136-
margin-top: 0px;
137-
width:50vw;
138-
z-index: 9999;
139-
overflow-y: auto;
140-
box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1);
141-
border-bottom-right-radius: var(--pagefind-ui-border-radius);
142-
border-bottom-left-radius: var(--pagefind-ui-border-radius);
143-
background-color: var(--pagefind-ui-background);
144-
}
145-
.pagefind-ui__result{
146-
padding: 0 2em 1em !important;
147-
}
148-
.pagefind-ui .pagefind-ui__result-link {
149-
color: var(--pagefind-ui-primary);
150-
}
151-
.pagefind-ui .pagefind-ui__result-excerpt {
152-
color: var(--pagefind-ui-text);
153-
}
154-
@media (max-width: 1280px) {
155-
.pagefind-ui {
156-
display:none;
95+
.pagefind-ui__result.selected {
96+
background-color: #f5f5f5;
97+
background-image: linear-gradient(to right, #3684b6 7px, transparent 5px);
98+
-webkit-transform: translate3d(0, 0, 0);
99+
transform: translate3d(0, 0, 0);
100+
}
101+
.pagefind-ui__drawer {
102+
}
103+
.pagefind-ui__message {
104+
margin: 1em;
105+
}
106+
.pagefind-ui__result mark {
107+
background: #f9eb5d;
108+
background-image: linear-gradient(to right, #f9eb5d 10%, #fcf4a7 100%);
109+
margin: 4px;
110+
padding-right: 6px;
111+
padding-left: 6px;
112+
padding-top: 2px;
113+
padding-bottom: 2px;
114+
color: #000000;
115+
font-family: monospace;
116+
border-radius: 4px;
117+
}
118+
.pagefind-ui {
119+
--pagefind-ui-scale: 1;
120+
--pagefind-ui-primary: #141f36;
121+
--pagefind-ui-text: black;
122+
--pagefind-ui-border: #d8d8d8;
123+
--pagefind-ui-border-width: 2px;
124+
--pagefind-ui-border-radius: 0;
125+
width: 50%;
126+
}
127+
.pagefind-ui.yellow {
128+
--pagefind-ui-background: #efc302;
129+
}
130+
.pagefind-ui.red {
131+
--pagefind-ui-background: #ffb9bb;
132+
width: 50%;
133+
}
134+
.pagefind-ui .pagefind-ui__drawer:not(.pagefind-ui__hidden) {
135+
position: absolute;
136+
left: auto;
137+
right: 0;
138+
margin-top: 0px;
139+
width: 50vw;
140+
z-index: 9999;
141+
overflow-y: auto;
142+
box-shadow:
143+
0 10px 10px -5px rgba(0, 0, 0, 0.2),
144+
0 2px 2px 0 rgba(0, 0, 0, 0.1);
145+
border-bottom-right-radius: var(--pagefind-ui-border-radius);
146+
border-bottom-left-radius: var(--pagefind-ui-border-radius);
147+
background-color: var(--pagefind-ui-background);
148+
}
149+
.pagefind-ui__result {
150+
padding: 0 2em 1em !important;
151+
}
152+
.pagefind-ui .pagefind-ui__result-link {
153+
color: var(--pagefind-ui-primary);
154+
}
155+
.pagefind-ui .pagefind-ui__result-excerpt {
156+
color: var(--pagefind-ui-text);
157+
}
158+
@media (max-width: 1280px) {
159+
.pagefind-ui {
160+
display: none;
157161
}
158-
}
159-
162+
}
160163
</style>

0 commit comments

Comments
 (0)