Skip to content

Commit 99f6677

Browse files
committed
add media partners
1 parent 5c09804 commit 99f6677

7 files changed

Lines changed: 252 additions & 0 deletions

File tree

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
---
2+
import { getCollection } from "astro:content";
3+
import { Image } from "astro:assets";
4+
import Section from "@ui/Section.astro";
5+
import Headline from "@ui/Headline.astro";
6+
import Button from "@ui/Button.astro";
7+
import { sponsorLogos } from "@data/sponsorLogos";
8+
9+
const allPartners = await getCollection("sponsors", ({ data }) => {
10+
const isProd = import.meta.env.MODE === "production";
11+
const notDraft = !isProd || data.draft !== true;
12+
const isMediaPartner = data.tier === "Media Partners";
13+
return notDraft && isMediaPartner;
14+
});
15+
16+
const partners = allPartners.sort((a, b) => a.data.name.localeCompare(b.data.name));
17+
18+
const sectionTitle = "Media Partners";
19+
const sectionSubtitle = "Meet the media partners supporting EuroPython 2026";
20+
---
21+
22+
<Section variant="secondary">
23+
<Headline id="media-partners" title={sectionTitle} center="true" />
24+
<div class="container mx-auto px-6">
25+
<div class="text-center mb-12">
26+
<p class="text-lg text-gray-600 max-w-2xl mx-auto">{sectionSubtitle}</p>
27+
</div>
28+
29+
<div class="partners-grid grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-3 gap-8 max-w-4xl mx-auto">
30+
{partners.map((partner) => {
31+
const logo = sponsorLogos[partner.id];
32+
return (
33+
<a
34+
href={`/media-partners#sponsor-${partner.id}`}
35+
class="partner-card bg-white rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 p-4 border border-gray-100 hover:border-primary hover:-translate-y-1 flex flex-col items-center justify-center aspect-square"
36+
>
37+
{logo && (
38+
<Image
39+
src={logo}
40+
alt={`${partner.data.name} Logo`}
41+
class="max-h-36 max-w-[80%] w-auto object-contain mb-2"
42+
/>
43+
)}
44+
<h3 class="font-semibold text-gray-900 text-center text-sm">
45+
{partner.data.name}
46+
</h3>
47+
</a>
48+
);
49+
})}
50+
</div>
51+
52+
<div class="mt-10 text-center">
53+
<Button url="/media-partners">Learn more about our media partners</Button>
54+
</div>
55+
</div>
56+
</Section>
57+
58+
<style>
59+
.partner-card:hover {
60+
transform: translateY(-4px);
61+
}
62+
63+
.partners-grid {
64+
animation: fadeInUp 0.6s ease-out;
65+
}
66+
67+
@keyframes fadeInUp {
68+
from {
69+
opacity: 0;
70+
transform: translateY(30px);
71+
}
72+
to {
73+
opacity: 1;
74+
transform: translateY(0);
75+
}
76+
}
77+
78+
.container {
79+
max-width: 1150px;
80+
}
81+
</style>
114 KB
Loading
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: ArjanCodes
3+
url: https://www.arjancodes.com/
4+
location: "World"
5+
industry: "Technology"
6+
description:
7+
"ArjanCodes helps software developers and engineering teams build better
8+
software through practical education, training, and content. Founded by
9+
software developer, educator, and entrepreneur Arjan Egges, ArjanCodes draws
10+
on more than 20 years of experience in software development and teaching.
11+
Through its YouTube channel, online courses, and corporate training programs,
12+
ArjanCodes has helped millions of developers improve their coding,
13+
architecture, and software design skills."
14+
socials:
15+
linkedin: "https://www.linkedin.com/company/84778227"
16+
twitter: "https://x.com/arjancodes"
17+
youtube: "https://www.youtube.com/arjancodes"
18+
instagram: "https://www.instagram.com/arjancodes/"
19+
github: "https://github.com/arjancodes"
20+
facebook: "https://www.facebook.com/arjancodes"
21+
discord: "https://discord.com/invite/K9CKfWrX4A"
22+
logo_padding: 10px
23+
tier: Media Partners
24+
---
Lines changed: 123 additions & 0 deletions
Loading
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
name: Hackerspace Wrocław
3+
url: https://hswro.org/
4+
location: Poland
5+
industry: "Technology & Community"
6+
description:
7+
"Hackerspace Wrocław is a community of technology enthusiasts that has existed
8+
in Wrocław for over 11 years. Our weekly Wednesday meetings are a perfect
9+
opportunity to meet people fascinated by retro computing, amateur radio,
10+
programming, electronics, woodworking and metalworking, as well as many other,
11+
often surprising, things."
12+
socials:
13+
facebook: "https://www.facebook.com/HackerspaceWroclaw"
14+
mastodon: "https://mastodon.radio/@SP6HACK"
15+
meetup: "https://www.meetup.com/pl-PL/hackerspace-wroc%C5%82aw/"
16+
logo_padding: 10px
17+
tier: Media Partners
18+
---

src/data/links.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@
120120
"name": "EuroPython Society",
121121
"path": "https://europython-society.org/"
122122
},
123+
{
124+
"name": "Media Partners",
125+
"path": "/media-partners"
126+
},
123127
{
124128
"name": "Community Partners",
125129
"path": "/community-partners"

src/pages/index.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Speakers from "@sections/speakers.astro";
1111
import Sponsors from "@sections/sponsors/sponsors.astro";
1212
import Testimonials from "@sections/testimonials.astro";
1313
import CommunityPartners from "@sections/community-partners.astro";
14+
import MediaPartners from "@sections/media-partners.astro";
1415
import Subscribe from "@sections/subscribe.astro";
1516
---
1617

@@ -30,6 +31,7 @@ import Subscribe from "@sections/subscribe.astro";
3031
<KrakowGallery />
3132
<Sponsors />
3233
<CommunityPartners />
34+
<MediaPartners />
3335
<Subscribe/>
3436

3537
</Layout>

0 commit comments

Comments
 (0)