From 26e417028a666f3ac04de4210f1608db456da5b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Itziar=20Zameza=20Garc=C3=ADa?= Date: Fri, 5 Jun 2026 13:08:03 +0200 Subject: [PATCH] feat: add Early Bird tickets banner and remove obsolete CTAs - Add SectionEarlyBird component with prominent red banner - Link to pretix.eu/python-spain/pycones-2026/ for ticket sales - Remove cta.sponsors and cta.reviewers (redundant with menu) - Add deploy script to package.json --- .gitignore | 2 + package.json | 2 +- src/components/home/SectionEarlyBird.astro | 83 ++++++++++++++++++++++ src/components/index.astro | 4 +- src/i18n/home.ts | 36 ++++------ 5 files changed, 100 insertions(+), 27 deletions(-) create mode 100644 src/components/home/SectionEarlyBird.astro diff --git a/.gitignore b/.gitignore index deb079b..9374318 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ dist/ *.local .claude +.agents/ +skills-lock.json diff --git a/package.json b/package.json index b206121..63b6247 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2026.es.pycon.org", - "version": "1.5.0", + "version": "1.6.0", "description": "", "main": "index.js", "scripts": { diff --git a/src/components/home/SectionEarlyBird.astro b/src/components/home/SectionEarlyBird.astro new file mode 100644 index 0000000..d645d20 --- /dev/null +++ b/src/components/home/SectionEarlyBird.astro @@ -0,0 +1,83 @@ +--- +import { texts } from '../../i18n/home' +import { menuTexts } from '../../i18n/menu' +import Button from '../Button.astro' + +interface Props { + lang: string +} + +const { lang } = Astro.props +const t = texts[lang as keyof typeof texts] +const menuT = menuTexts[lang as keyof typeof menuTexts] +--- + +
+ + +
+
+ +

+ {t['earlybird.title']} +

+ +
+ +
+

+ {t['earlybird.description']} +

+ + +
+
+
+ + diff --git a/src/components/index.astro b/src/components/index.astro index bb3e050..6f88561 100644 --- a/src/components/index.astro +++ b/src/components/index.astro @@ -1,7 +1,7 @@ --- import Layout from '@/layouts/Layout.astro' import SectionMain from './home/SectionMain.astro' -import SectionCTAs from './home/SectionCTAs.astro' +import SectionEarlyBird from './home/SectionEarlyBird.astro' import SectionSponsors from './home/SectionSponsors.astro' interface Props { @@ -14,7 +14,7 @@ const { lang } = Astro.props
- +
diff --git a/src/i18n/home.ts b/src/i18n/home.ts index 6ebf626..3d31e07 100644 --- a/src/i18n/home.ts +++ b/src/i18n/home.ts @@ -19,14 +19,10 @@ 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', - 'cta.sponsors.title': '¡Buscamos Patrocinadores!', - 'cta.sponsors.description': - 'Ser patrocinador de la PyConES es una oportunidad para apoyar a la comunidad Python, conectar con talento técnico de alto nivel y ganar visibilidad en un entorno ligado al software libre y la innovación. Si formás parte o conocés a alguien de una empresa interesada en apoyar la comunidad Python, ¡ayudanos a llegar a ella!', - 'cta.sponsors.button': 'Más información sobre patrocinios', - 'cta.reviewers.title': 'Llamada a Revisores/as', - 'cta.reviewers.description': - 'Buscamos personas que nos ayuden a revisar las propuestas que recibamos. Tu experiencia y criterio son clave para garantizar la calidad del programa. Si querés colaborar con la organización y ayudar a seleccionar las mejores charlas y talleres, ¡necesitamos tu ayuda!', - 'cta.reviewers.button': 'Quiero ser revisor/a', + '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!', + 'earlybird.button': 'Comprar entradas', }, en: { 'index.initializing': 'Initialising system...', @@ -49,14 +45,10 @@ 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', - 'cta.sponsors.title': 'We Are Looking for Sponsors!', - 'cta.sponsors.description': - 'Sponsoring PyConES is an opportunity to support the Python community, connect with high-level technical talent, and gain visibility in an environment linked to free software and innovation. If you are or know someone at a company interested in supporting the Python community, help us reach them!', - 'cta.sponsors.button': 'More info about sponsorships', - 'cta.reviewers.title': 'Call for Reviewers', - 'cta.reviewers.description': - 'We are looking for people to help us review the proposals we receive. Your experience and judgement are key to ensuring the quality of the programme. If you want to collaborate with the organisation and help select the best talks and workshops, we need your help!', - 'cta.reviewers.button': 'I want to be a reviewer', + '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!', + 'earlybird.button': 'Buy tickets', }, ca: { 'index.initializing': 'Inicialitzant sistema...', @@ -79,13 +71,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', - 'cta.sponsors.title': 'Busquem Patrocinadors!', - 'cta.sponsors.description': - "Ser patrocinador de la PyConES és una oportunitat per donar suport a la comunitat Python, connectar amb talent tècnic d'alt nivell i guanyar visibilitat en un entorn lligat al programari lliure i la innovació. Si formes part o coneixes algú d'una empresa interessada en donar suport a la comunitat Python, ajuda'ns a arribar-hi!", - 'cta.sponsors.button': 'Més informació sobre patrocinis', - 'cta.reviewers.title': 'Crida a Revisors/es', - 'cta.reviewers.description': - "Busquem persones que ens ajudin a revisar les propostes que rebem. La teva experiència i criteri són clau per garantir la qualitat del programa. Si vols col·laborar amb l'organització i ajudar a seleccionar les millors xerrades i tallers, necessitem la teva ajuda!", - 'cta.reviewers.button': 'Vull ser revisor/a', + '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!", + 'earlybird.button': 'Comprar entrades', }, } as const