Skip to content

Commit 906251e

Browse files
authored
Merge branch 'ep2025' into ep2025-ci
2 parents a2aad88 + 783f988 commit 906251e

25 files changed

+520
-33
lines changed

.github/workflows/rtd-preview.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ on:
33
pull_request_target:
44
types:
55
- opened
6+
workflow_dispatch:
67

78
permissions:
89
pull-requests: write
910

1011
jobs:
1112
documentation-links:
13+
if: github.event.pull_request.head.repo.fork == true
1214
runs-on: ubuntu-latest
1315
timeout-minutes: 10
1416
steps:

Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ check:
4343

4444
build:
4545
pnpm build
46-
# NOTE: also let's find a better way to do this :D
47-
find ./dist/_astro/ -iname '*.jpg' -delete
4846

4947
preview: RELEASES_DIR = $(VPS_PREVIEW_PATH)/$(SAFE_BRANCH)/releases
5048
preview: TARGET = $(RELEASES_DIR)/$(TIMESTAMP)

astro.config.mjs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import path, { dirname } from "path";
2+
import { fileURLToPath } from "url";
13
import { defineConfig } from "astro/config";
24
import mdx from "@astrojs/mdx";
35
import { h } from "hastscript";
@@ -9,9 +11,23 @@ import rehypeSlug from "rehype-slug";
911
import rehypeAutolinkHeadings from "rehype-autolink-headings";
1012
import metaTags from "astro-meta-tags";
1113
import pagefind from "astro-pagefind";
14+
import deleteUnusedImages from "astro-delete-unused-images";
15+
16+
const __filename = fileURLToPath(import.meta.url);
17+
const __dirname = dirname(__filename); // @type-check enabled!
1218

1319
// https://astro.build/config
1420
export default defineConfig({
21+
vite: {
22+
define: {
23+
"process.env.VITE_BUILD_TIME": JSON.stringify(new Date().toISOString()),
24+
},
25+
resolve: {
26+
alias: {
27+
$: path.resolve(__dirname, "./src"),
28+
},
29+
},
30+
},
1531
markdown: {
1632
remarkPlugins: [
1733
[
@@ -34,7 +50,7 @@ export default defineConfig({
3450
],
3551
],
3652
},
37-
site: "https://ep2025.europython.eu",
53+
site: process.env.SITE_URL || "https://ep2025.europython.eu",
3854
redirects: {
3955
"/c-api-summit/": "/programme/c-api-summit/",
4056
"/programme/cfp/": "/programme/cfp/",
@@ -54,6 +70,10 @@ export default defineConfig({
5470
}),
5571
metaTags(),
5672
pagefind(),
73+
deleteUnusedImages(),
5774
],
5875
output: "static",
76+
build: {
77+
minify: true,
78+
},
5979
});

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@types/react": "^19.0.12",
2323
"@types/react-dom": "^19.0.4",
2424
"astro": "^5.1.6",
25+
"astro-delete-unused-images": "^1.0.3",
2526
"astro-meta-tags": "^0.3.1",
2627
"astro-pagefind": "^1.8.1",
2728
"clsx": "^2.1.1",

pnpm-lock.yaml

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

src/components/accordion/accordion.astro

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export interface Props {
77
const { title, id } = Astro.props;
88
---
99

10-
<details class="group mb-4">
10+
<details class="group mb-4" id={id} data-faq>
1111
<summary
1212
aria-expanded="false"
1313
aria-controls={id}
@@ -18,7 +18,32 @@ const { title, id } = Astro.props;
1818
<span aria-hidden="true" class="group-open:block hidden">−</span>
1919
</summary>
2020

21-
<div id={id} class="pl-4">
21+
<div class="pl-4">
2222
<slot />
2323
</div>
2424
</details>
25+
26+
<script>
27+
document.addEventListener("DOMContentLoaded", () => {
28+
const hash = window.location.hash.substring(1); // Remove #
29+
if (hash) {
30+
const details = document.getElementById(hash) as HTMLDetailsElement | null;
31+
if (details) {
32+
details.open = true;
33+
}
34+
}
35+
36+
// Update the URL when a detail is toggled
37+
const detailsElements = document.querySelectorAll('details');
38+
detailsElements.forEach((details) => {
39+
details.addEventListener('toggle', () => {
40+
const id = details.id;
41+
if (details.open) {
42+
window.history.pushState(null, '', `#${id}`);
43+
} else {
44+
window.history.pushState(null, '', window.location.pathname); // Remove the hash
45+
}
46+
});
47+
});
48+
});
49+
</script>

src/components/ticket-tiers/ticket-tiers.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ const formatPrice = (price: number | string) => {
9999
---
100100

101101
<div class="ticket-tiers-container">
102-
<div class="grid grid-cols-1 md:grid-cols-3 lg:grid-cols-3 gap-10 md:gap-6 lg:gap-10">
102+
<div class="grid grid-cols-1 lg:grid-cols-3 gap-10 md:gap-6 lg:gap-10">
103103
{tiers.map((tier) => (
104104
<div class="bg-white text-black rounded-2xl p-6 pb-20 relative not-prose z-0">
105105
<div>

src/content/pages/faq.mdx

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,41 @@ subtitle: Frequently Asked Questions about EuroPython
2020
<li>**8 March 2025** [Financial Aid](/finaid/) Programme starts</li>
2121
<li>**11 March 2025:** [Sponsorship](/sponsor) Sign-up Starts</li>
2222
<li>**27 March 2025:** [Ticket sales](/tickets) open!</li>
23+
<li>**February/March 2025** Programme selection process</li>
24+
<li>**March 2025** Visa Information Page opens</li>
2325
</ul>
2426

2527
<ul className="milestone-todo">
26-
<li>**February/March 2025** Programme selection process</li>
27-
<li>**March 2025** Visa Information Page opens</li>
2828
<li>**01 April 2025** Session preview</li>
2929
<li>**20 April 2025** Schedule published</li>
3030
<li>**9 May 2025** Financial Aid Programme closes</li>
3131
<li>**14 – 20 July 2025:** EuroPython 2025!🎊 </li>
3232
<li>**September 2025** EuroPython 2025 Videos published</li>
3333
</ul>
3434

35-
## **Q. When and where is EuroPython 2025 taking place?**
35+
<Accordion title="When and where is EuroPython 2025 taking place?" id="when-where">
3636

37-
A. EuroPython 2025 will take place on **14 – 20 July 2025**. Mark your calendars!
37+
EuroPython 2025 will take place on **14 – 20 July 2025**. Mark your calendars!
3838

3939
The conference will return to **Prague, Czech Republic**, with the main conference hosted at the [Prague Congress Centre (PCC)](https://www.praguecc.cz/en/homepage).
4040

4141
Need help getting around? Check out [how to navigate Prague](/where) and our volunteer-curated [Prague exploration tips](/explore).
4242

43-
## **Q. What will the schedule look like?**
43+
</Accordion>
4444

45-
A. The conference will be organised into three phases:
45+
<Accordion title="What will the schedule look like?" id="schedule">
46+
47+
The conference will be organised into three phases:
4648

4749
1. **Monday & Tuesday (14 & 15 July):** Tutorials & Workshops
4850
2. **Wednesday – Friday (16 – 18 July):** Main Conference Days
4951
3. **Saturday & Sunday (19 & 20 July):** Sprint Days
5052

51-
## **Q. What will the programme include?**
53+
</Accordion>
54+
55+
<Accordion title="What will the programme include?" id="programme">
5256

53-
A. Expect a diverse programme with around **20 hands-on tutorials & workshops**, **120 talks**, and interactive discussions and events.
57+
Expect a diverse programme with around **20 hands-on tutorials & workshops**, **120 talks**, and interactive discussions and events.
5458

5559
We aim to cover the many ways Python is used to solve problems and create exciting projects.
5660

@@ -59,24 +63,30 @@ Curious about what to expect? Check out the [EP2024 programme](https://ep2024.eu
5963
We are always keen to hear new ideas on how to enrich the programme and other activities you are interested in oraganising.
6064
Share your ideas with the programme team at [programme@europython.eu](mailto:programme@europython.eu).
6165

62-
## **Q. When can I submit a talk proposal?**
66+
</Accordion>
67+
68+
<Accordion title="When can I submit a talk proposal?" id="submit">
6369

64-
A. Sadly, at this point you cannot. The [Call for Proposals (CfP)](/programme/cfp) was open from **the 10th of January to the 3rd of February 2025** (including an extension of the original deadline).
70+
Sadly, at this point you cannot. The [Call for Proposals (CfP)](/programme/cfp) was open from **the 10th of January to the 3rd of February 2025** (including an extension of the original deadline).
6571

6672
Need support with your submission? Explore our [Speaker Mentorship Programme](/programme/mentorship/) for guidance.
6773

68-
## **Q. How are talks reviewed and selected?**
74+
</Accordion>
6975

70-
A. This year, the first **100 proposals** will be quickly screened by the programme team, and feedback for possible improvements will be provided.
76+
<Accordion title="How are talks reviewed and selected?" id="review">
77+
78+
This year, the first **100 proposals** will be quickly screened by the programme team, and feedback for possible improvements will be provided.
7179

7280
Once the CfP closes, all proposals go through **community voting and two rounds of review and refinement** to finalise the programme.
7381

7482
Learn more about our selection process [here](/programme/selection/).
7583

7684

77-
## **Q. What support is available for speakers?**
85+
</Accordion>
86+
87+
<Accordion title="What support is available for speakers?" id="support">
7888
{/*
79-
A. Accepted speakers receive a **free ticket**. Details about ticket for speakers will be shared later.
89+
Accepted speakers receive a **free ticket**. Details about ticket for speakers will be shared later.
8090
*/}
8191

8292
Speakers needing travel support are encouraged to apply for [Financial Aid](/finaid).
@@ -85,25 +95,34 @@ We actively support first-time speakers and welcome participation from under-rep
8595

8696
Got any questions? Reach out to us at [programme@europython.eu](mailto:programme@europython.eu).
8797

88-
## **Q. When do ticket sales start, and how much will they cost?**
98+
</Accordion>
99+
100+
<Accordion title="When do ticket sales start, and how much will they cost?" id="tickets">
89101

90-
A. Ticket sales are already open! For more info, check out our [tickets](/tickets) page. Capacity is limited, so hurry up.
102+
Ticket sales are already open! For more info, check out our [tickets](/tickets) page. Capacity is limited, so hurry up.
91103

92-
## **Q. Is there a Financial Aid Programme for EuroPython 2025?**
104+
</Accordion>
93105

94-
A. Yes! Our Financial Aid Programme is now open. The application period runs from **8 March to 9 May**.
106+
<Accordion title="Is there a Financial Aid Programme for EuroPython 2025?" id="financial-aid">
107+
108+
Yes! Our Financial Aid Programme is now open. The application period runs from **8 March to 9 May**.
95109

96110
If you need support to attend the conference, we encourage you to apply **as early as possible**, so you don't miss your chance to be part of EuroPython 2025! More details are available in our [Financial Aid page](/finaid).
97111

98-
## **Q. Can I get a visa support letter for my application?**
112+
</Accordion>
113+
114+
<Accordion title="Can I get a visa support letter for my application?" id="visa">
115+
116+
Yes. We have a dedicated [Visa Information Page](/visa) with details on how to obtain the support letter. Please refer to the Ministry of Foreign Affairs of Czech Republic for information, including the application process for a [Schengen visa for the purpose of “business” when attending a conference](https://mzv.gov.cz/jnp/en/information_for_aliens/short_stay_visa/conference.html).
99117

100-
A. Absolutely! We will provide a dedicated Visa Information Page with instructions on how to request a support letter. More details will be available once ticket sales open.
118+
</Accordion>
101119

102-
## **Q. When can sponsors start signing up?**
120+
<Accordion title="When can sponsors start signing up?" id="sponsors">
103121

104-
A. Sponsorship sign-up is now open. Some packages may be limited, so don't wait and sign up soon!
122+
Sponsorship sign-up is now open. Some packages may be limited, so don't wait and sign up soon!
105123
See our [sponsorship page](/sponsor) for details on 2025 packages and add-ons.
106124

107-
**Sign up by 28 March to receive a 10% Early Bird discount.**
125+
**~Sign up by 28 March to receive a 10% Early Bird discount.~** While the Early Bird discount of 10% has now ended, we encourage sponsors to act quickly as spots are limited.
108126

109127
Our goal is to make EuroPython sponsorship accessible to a wide range of organisations eager to support the community. If you're interested in sponsoring EuroPython 2025 or future editions, please get in touch with our sponsors team at sponsoring@europython.eu.
128+
</Accordion>

src/content/pages/sponsorship/sponsor.mdx

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Explore the benefits of sponsoring EuroPython:
3535
#### Ready to Become a EuroPython 2025 Sponsor?
3636
<div class="text-center">
3737

38-
<ButtonLink url="https://forms.gle/T8da5sQbKn6BFsxH7">Sign Up by 28 March & Get 10% Early Bird Discount!</ButtonLink>
38+
<ButtonLink url="https://forms.gle/T8da5sQbKn6BFsxH7">Sign Up Now to Secure Your Spot!</ButtonLink>
3939

4040
</div>
4141

@@ -89,10 +89,21 @@ See the full list in the [PDF](https://drive.google.com/file/d/1AGvH0w3fMLRvaNDa
8989

9090
## Discounts
9191

92+
93+
### Team Ticket Perks
94+
95+
Is your company planning to attend EuroPython 2025 as a team? We offer the following volume discounts on business ticket purchases:
96+
97+
- **Buy 5 business tickets of any type, pay for only 4**
98+
- **Buy 10 business tickets of any type, pay for only 8**
99+
- **Buy 15 business tickets of any type, pay for only 11**
100+
101+
These discounts can help your team members benefit from the conference alongside your company's sponsorship. You can find more details about all available ticket types and discounts on our [Tickets page](/tickets#volume-discounts).
102+
92103
### Early Bird
93104

94-
**10% discount** applies to launch sponsors who sign up by **28 March, 2025**.
95-
Contact us at **sponsoring@europython.eu**.
105+
~~**10% discount** applies to launch sponsors who sign up by **28 March, 2025**.~~
106+
The Early Bird offer has now ended, but sponsorship opportunities are still available. Don't miss your chance to sign up! You can contact us anytime at **sponsoring@europython.eu** if you have any questions.
96107

97108
### SME
98109

src/content/pages/visa.mdx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: Visa Information
3+
subtitle: If you want to attend EuroPython 2025 in Prague, the Czech Republic, you should first verify whether you need a visa to enter the Czech Republic, and apply for one as soon as possible if you do.
4+
---
5+
6+
# Visa Information
7+
8+
## Requirements
9+
10+
If you want to attend EuroPython 2025 in Prague, the Czech Republic, you should first verify whether you need a visa to enter the Czech Republic, and apply for one **as soon as possible** if you do. It's also advisable to **secure a visa appointment well in advance of your planned application date** due to high demand and potential delays some people encountered last year.
11+
12+
[This list of countries](https://www.mzv.cz/jnp/en/information_for_aliens/short_stay_visa/list_of_states_whose_citizens_are/index.html) defines if you require a visa to visit the Czech Republic.
13+
14+
**NOTE**: The Czech Republic is part of the EU, and part of the Schengen Area. So if you already have a valid Schengen visa, you may **NOT** need to apply for an Czech visa. Please check the website above and consult your local consular office or embassy, if you are uncertain.
15+
16+
If you do need a visa to attend EuroPython 2025, you can lodge a visa application issued for **[Short Stay (C), up to 90 days, for the purpose of “Business /Conference"](https://www.mzv.cz/jnp/en/information_for_aliens/short_stay_visa/conference.html)**. We recommend you do this as soon as possible.
17+
18+
Please make sure you read all the visa pages carefully and prepare all the required documents before making your application. **The EuroPython organisers are not able nor qualified to give visa advice.**
19+
20+
Should you require a visa to travel to the Czech Republic, even though it is still possible to submit your visa application 15 days before your planned travel date, it is strongly advisable to apply **as soon as possible**, as it can sometimes take more than a month to receive a decision.
21+
22+
## Visa Support Letter
23+
24+
Every registered attendee is welcome to request a visa support letter issued by the EuroPython Society, should you need one for your visa application!
25+
26+
Simply fill in the form **1 week before your planned visa application**:
27+
28+
<div class="text-center">
29+
<ButtonLink url="https://forms.gle/fJPPgcKFccFmAe2g9"> Visa Support Letter Request Form</ButtonLink>
30+
</div>
31+
32+
We will send you the completed letter via email.
33+
34+
Please note that we only issue visa support letters to confirmed attendees. We kindly ask you to purchase your ticket before filling in the request form. If your company purchased the ticket on your behalf, please ask them to register you as an attendee, so you have the order code ready for the form.
35+
36+
If you find your visa application unsuccessful after the deadline for a refund (see [terms](/terms/#4-refunds)), you can submit a special refund request by writing to [refunds@europython.eu](mailto:refunds@europython.eu).
37+
38+
## Other questions
39+
40+
If you have any questions, please send an email to: [board@europython.eu](mailto:board@europython.eu).

0 commit comments

Comments
 (0)