Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "2026.es.pycon.org",
"version": "1.8.0",
"version": "1.9.0",
"description": "",
"main": "index.js",
"scripts": {
Expand Down
Binary file added public/speakers/diego.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 2 additions & 4 deletions src/components/home/SectionEarlyBird.astro
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,18 @@ const menuT = menuTexts[lang as keyof typeof menuTexts]

<div class="relative max-w-3xl mx-auto flex flex-col items-center gap-8 animate-slide-down">
<div class="flex items-center gap-4">
<span class="text-5xl animate-bounce" aria-hidden="true">🎫</span>
<h2
class="text-3xl md:text-4xl font-black text-center text-pycon-yellow drop-shadow-[0_0_12px_rgba(255,199,44,0.5)]"
>
{t['earlybird.title']}
{t['tickets.title']}
</h2>
<span class="text-5xl animate-bounce" aria-hidden="true">🎫</span>
</div>

<div
class="w-full bg-gradient-to-br from-pycon-red-50/15 via-pycon-black/80 to-pycon-red-50/10 backdrop-blur-md p-10 rounded-2xl border-2 border-pycon-red-50/50 shadow-[0_0_30px_rgba(249,66,58,0.3)] hover:shadow-[0_0_40px_rgba(249,66,58,0.5)] hover:border-pycon-red-50 transition-all duration-500"
>
<p class="text-xl md:text-2xl text-white leading-relaxed mb-10 text-center font-medium">
{t['earlybird.description']}
{t['tickets.description']}
</p>

<div class="flex justify-center">
Expand Down
11 changes: 9 additions & 2 deletions src/components/home/SectionSpeakers.astro
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,22 @@ const { lang } = Astro.props
const t = texts[lang as keyof typeof texts]

const sortedSpeakers = speakers.map((s) => s.frontmatter).sort((a, b) => a.order - b.order)

const count = sortedSpeakers.length
const gridByCount: Record<number, string> = {
1: 'grid-cols-1 max-w-md mx-auto',
2: 'grid-cols-1 sm:grid-cols-2 max-w-3xl mx-auto',
}
const gridClasses = gridByCount[count] ?? 'grid-cols-1 sm:grid-cols-2 lg:grid-cols-3'
---

{
sortedSpeakers.length > 0 && (
<div class="flex flex-col items-center gap-6">
<div class="flex flex-col items-center gap-6 my-24">
<SectionTitle title={t['speakers.title']} />
<CenteredPanel text={t['speakers.description']} />

<ul class="w-full grid gap-8 md:grid-cols-2 lg:grid-cols-3 list-none m-0 p-0 mt-4">
<ul class={`w-full grid gap-8 list-none m-0 p-0 mt-4 ${gridClasses}`}>
{sortedSpeakers.map((speaker) => (
<li>
<SpeakerCard speaker={speaker} lang={lang} />
Expand Down
2 changes: 1 addition & 1 deletion src/components/home/SectionSponsors.astro
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const tierDefs: Array<{ key: TSponsorTier; size: number; color: string }> = [
]
---

<div class="flex flex-col items-center gap-6">
<div class="flex flex-col items-center gap-6 my-24">
<SectionTitle title={t['sponsors.title']} />
<CenteredPanel text={t['sponsors.description']} />

Expand Down
4 changes: 2 additions & 2 deletions src/components/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import Layout from '@/layouts/Layout.astro'
import SectionMain from './home/SectionMain.astro'
import SectionSpeakers from './home/SectionSpeakers.astro'
import SectionEarlyBird from './home/SectionEarlyBird.astro'
// import SectionEarlyBird from './home/SectionEarlyBird.astro'
import SectionSponsors from './home/SectionSponsors.astro'

interface Props {
Expand All @@ -16,7 +16,7 @@ const { lang } = Astro.props
<div class="flex flex-col gap-20">
<SectionMain lang={lang} />
<SectionSpeakers lang={lang} />
<SectionEarlyBird lang={lang} />
<!-- <SectionEarlyBird lang={lang} /> -->
<SectionSponsors lang={lang} />
</div>
</Layout>
13 changes: 0 additions & 13 deletions src/data/speakers/ada-lovelace.md.template

This file was deleted.

21 changes: 21 additions & 0 deletions src/data/speakers/diego.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: 'Diego Russo'
order: 1
photo: '/speakers/diego.jpg'
links:
- type: 'github'
url: 'https://github.com/diegorusso'
- type: 'linkedin'
url: 'https://www.linkedin.com/in/diegor/'
- type: 'bluesky'
url: 'https://bsky.app/profile/diegor.it'
- type: 'twitter'
url: 'https://x.com/diegor'
- type: 'instagram'
url: 'https://www.instagram.com/diegor.it'
description: |
Diego Russo es core developer de CPython e ingeniero jefe de software en el equipo de Runtimes de Arm, con sede en Cambridge (Reino Unido).
Lleva utilizando Python desde 2006 y contribuyendo a CPython desde 2023, centrándose en el rendimiento del intérprete, el trabajo relacionado con JIT, la infraestructura de integración continua y en garantizar que CPython y su ecosistema funcionen de forma fiable y eficiente en las plataformas Arm.
Su trabajo se sitúa en la intersección entre el tiempo de ejecución, la ingeniería de rendimiento y la colaboración de código abierto a gran escala.
Diego es también organizador de EuroPython y dirige el Arm Python Guild, una comunidad interna de más de 1.400 desarrolladores de Python que trabajan en toda la empresa.
---
18 changes: 9 additions & 9 deletions src/i18n/home.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ export const texts = {
'¡Ya está abierta la llamada a propuestas! Mándanos tu charla o taller antes del 17 de mayo a las 23:59h (hora peninsular). Si te estás preguntando si puedes hacer esto, la respuesta es que sí. Si tienes un tema que te interesa, ¡nos interesa!',
'cfp.help': 'Si necesitas ayuda con tu propuesta, no dudes en escribirnos a charlas@2026.es.pycon.org',
'cfp.button': 'Envía tu propuesta',
'earlybird.title': '¡Entradas Early Bird disponibles!',
'earlybird.description':
'La venta de entradas con descuento Early Bird ya ha comenzado. ¡No te pierdas esta oportunidad única de aprender, conectar y crecer en la comunidad Python!',
'tickets.title': '¡Entradas disponibles!',
'tickets.description':
'La venta de entradas generales ya ha comenzado. ¡No te pierdas esta oportunidad única de aprender, conectar y crecer en la comunidad Python!',
'earlybird.button': 'Comprar entradas',
'speakers.title': 'Oradores plenarios',
'speakers.description':
Expand Down Expand Up @@ -56,9 +56,9 @@ export const texts = {
'cfp.help':
"If you need help with your proposal, don't hesitate to contact us at charlas@2026.es.pycon.org.",
'cfp.button': 'Submit your proposal',
'earlybird.title': 'Early Bird tickets are now available!',
'earlybird.description':
'Early Bird discounted tickets are now on sale. Do not miss this unique opportunity to learn, connect, and grow in the Python community!',
'tickets.title': 'Tickets are now available!',
'tickets.description':
'General tickets are now on sale. Do not miss this unique opportunity to learn, connect, and grow in the Python community!',
'earlybird.button': 'Buy tickets',
'speakers.title': 'Plenary Speakers',
'speakers.description':
Expand Down Expand Up @@ -92,9 +92,9 @@ export const texts = {
'cfp.help':
'Si necessites ajuda amb la teva proposta, no dubtis en escriure a charlas@2026.es.pycon.org.',
'cfp.button': 'Envia la teva proposta',
'earlybird.title': 'Entrades Early Bird disponibles!',
'earlybird.description':
"La venda d'entrades amb descompte Early Bird ja ha començat. No et perdis aquesta oportunitat única d'aprendre, connectar i créixer en la comunitat Python!",
'tickets.title': 'Entrades disponibles!',
'tickets.description':
"La venda d'entrades generals ja ha començat. No et perdis aquesta oportunitat única d'aprendre, connectar i créixer en la comunitat Python!",
'earlybird.button': 'Comprar entrades',
'speakers.title': 'Ponents plenaris',
'speakers.description':
Expand Down
Loading