diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6df8e27..d2cbd74 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -30,18 +30,17 @@ jobs:
uses: pre-commit/action@v3.0.0
- name: Build with MkDocs
- run: mkdocs build
+ run: mkdocs build --use-directory-urls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check for broken links
run: |
- # Iniciar servidor HTTP en background
- cd site && python -m http.server 8000 &
- sleep 10
+ # Iniciar mkdocs serve en background (mejor que python -m http.server)
+ mkdocs serve -a 127.0.0.1:8000 --use-directory-urls &
+ sleep 15 # Dar más tiempo para que mkdocs serve esté listo
- # Ejecutar check de links desde el directorio raíz
- cd ${{ github.workspace }}
+ # Ejecutar check de links
python scripts/check_links.py
# Verificar resultado
@@ -49,12 +48,12 @@ jobs:
if [ "$broken_count" -gt 0 ]; then
echo "❌ Found $broken_count broken links - failing!"
- pkill -f "python -m http.server" || true
+ pkill -f "mkdocs serve" || true
exit 1
fi
echo "✅ All links working!"
- pkill -f "python -m http.server" || true
+ pkill -f "mkdocs serve" || true
# Solo para main: guardar el sitio construido
- name: Upload build artifact
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index f451ac2..f65287e 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -16,7 +16,26 @@ jobs:
name: Build and Validate
runs-on: ubuntu-latest
steps:
- # ... todos los pasos de validación y build ...
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Build MkDocs site
+ run: mkdocs build --strict --use-directory-urls
+
+ - name: Upload Pages artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: site/
deploy:
name: Deploy to GitHub Pages
@@ -27,4 +46,6 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- # ... pasos de deploy ...
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e06a08f..5fd140c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,66 @@ El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/) y [
---
+## [Unreleased]
+
+### Añadido
+- **Sistema Completo de Sedes**: Implementación integral de documentación para empresas que quieren ser sede
+ - `sedes.md`: Página principal con formato estándar de comunidad, incluyendo header con logo,
+ iconos FontAwesome y componentes de navegación
+ - `sedes_faq.md`: FAQ comprehensivo organizado en 7 secciones temáticas con información
+ práctica basada en experiencia real
+ - Integración de imagen personalizada `pythoncdmx_buscamos_sede.jpg` para branding específico
+ - Timeline detallado desde 3-4 semanas antes hasta después del evento
+ - Recomendaciones técnicas específicas (HDMI, WiFi, proyección, streaming)
+- **Documentación Práctica de Eventos**: Integración completa de lecciones aprendidas del evento en Clara
+ - Proceso de acceso a edificios con seguridad (formularios, listas, identificación oficial)
+ - Manejo de asistentes: 60-70% de asistencia real vs registrados
+ - Mejores prácticas para organización del espacio y áreas restringidas
+ - Requerimientos específicos de A/V y conectividad
+ - Checklist de preparación y coordinación
+
+### Cambiado
+- **Formato Unificado de Páginas de Comunidad**: `sedes.md` ahora sigue el estándar establecido
+ - Header centrado con logo de Python CDMX
+ - Iconos FontAwesome en lugar de emojis para consistencia visual
+ - Estructura de secciones con iconografía coherente
+ - Componentes de navegación estándar (`community-links.md` y `quick-navigation.md`)
+- **FAQ de Sedes Completamente Reestructurado**: Organización profesional en secciones temáticas
+ - **Logística del Evento**: Duración, asistencia, formato, agenda
+ - **Requerimientos Técnicos**: A/V, proyección, internet, streaming
+ - **Gestión de Asistentes**: Registro, listas, acceso a edificios
+ - **Participación de la Empresa**: Branding, charlas, snacks, bienvenida
+ - **Preparación del Espacio**: Layout, distribución, áreas restringidas
+ - **Timeline y Coordinación**: Cronograma completo de 3-4 semanas
+ - **Preguntas Comunes**: Horarios, problemas técnicos, beneficios
+
+### Corregido
+- **Visibilidad de Texto en Botones**: Solución definitiva para botones invisibles en `index.md`
+ - Agregado `!important` estratégico en CSS para `.btn`, `.btn-primary`, `.upcoming-btn`
+ - Reglas específicas para clases utilizadas en la página principal
+ - Estados hover consistentes con colores verde Python
+ - Texto blanco claramente visible en todos los botones del sitio
+- **Formato de Listas en Markdown**: Corrección de renderizado de viñetas en `sedes_faq.md`
+ - Agregadas líneas en blanco antes de listas para renderizado correcto
+ - Mejora en la legibilidad de información estructurada
+
+### Arquitectura y Sistema
+- **Documentación Escalable para Sedes**: Sistema modular que facilita agregar nueva información
+- **CSS Específico para Botones**: Arquitectura robusta que previene problemas de visibilidad
+- **Integración de Experiencia Real**: Documentación basada en eventos reales (Clara)
+ para mayor utilidad práctica
+- **Estandarización Visual**: Todas las páginas de comunidad ahora siguen el mismo
+ formato y estructura
+
+### Impacto
+- **Herramienta Completa para Sedes**: Las empresas ahora tienen toda la información
+ necesaria para ser sede exitosa
+- **Reducción de Preguntas Repetitivas**: FAQ comprehensive reduce la carga de soporte
+- **Mejora en UX**: Botones ahora completamente funcionales y visibles
+- **Professionalización**: Documentación de nivel empresarial para partnerships
+
+---
+
## [0.1.0]
### Añadido
@@ -71,7 +131,7 @@ El formato sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/) y [
- **Arquitectura Moderna**: CSS centralizado mejora dramáticamente la mantenibilidad y consistencia visual
- **Escalabilidad Mejorada**: Nueva arquitectura permite agregar contenido sin modificar estilos
-## [0.1.0]
+## [0.1.0] - Inicial
### Añadido
- **Nueva Sección Participa**: Creada sección modular con tabs para mejor organización
diff --git a/docs/comunidad/como-contribuir.md b/docs/comunidad/como-contribuir.md
index 991fda0..3b668e1 100644
--- a/docs/comunidad/como-contribuir.md
+++ b/docs/comunidad/como-contribuir.md
@@ -60,7 +60,7 @@ Ayuda a establecer y mantener relaciones con otras comunidades y empresas.
### 1. Identifica tu Área
-- Revisa las [formas de contribuir](#formas-de-contribuir)
+- Revisa las [formas de contribuir](#formas-de-contribuir/)
- Considera tus habilidades e intereses
- Evalúa tu disponibilidad de tiempo
diff --git a/docs/comunidad/comunidades.md b/docs/comunidad/comunidades.md
new file mode 100644
index 0000000..11cab20
--- /dev/null
+++ b/docs/comunidad/comunidades.md
@@ -0,0 +1,168 @@
+
+

+
+
+---
+
+## Comunidades Amigas
+
+### Comunidades Python en México
+
+
+
+### Otras Comunidades
+
+
+
+---
+
+## Empresas anfitrionas
+
+
+ Estas empresas han abierto sus puertas para que la comunidad Python CDMX crezca
+
+
+### Gracias por ser sede
+
+
+
+---
+
+--8<-- "components/community-links.md"
+
+---
+
+--8<-- "components/quick-navigation.md"
+
+---
diff --git a/docs/comunidad/sedes.md b/docs/comunidad/sedes.md
new file mode 100644
index 0000000..46e4c71
--- /dev/null
+++ b/docs/comunidad/sedes.md
@@ -0,0 +1,113 @@
+# Sedes
+
+
+

+
+
+ ¡Tu empresa puede ser sede del próximo Meetup de Python CDMX!
+
+
+---
+
+¿Trabajas en una empresa tech, un coworking o tienes acceso a un espacio donde podríamos reunir a la comunidad Python CDMX?
+
+En 2025 seguimos creciendo y queremos llevar nuestros meetups a nuevos espacios que compartan el entusiasmo
+por el conocimiento abierto, la innovación y el poder de Python .
+
+---
+
+## ¿Por qué ser sede?
+
+Organizar un meetup de Python CDMX en tu espacio es una gran oportunidad para:
+
+- Conectar con desarrolladores de todos los niveles
+- Dar visibilidad a tu empresa o proyecto ante una comunidad activa
+- Inspirar nuevas sinergias e ideas con personas apasionadas por Python
+- Participar directamente en la construcción del ecosistema tech de México
+
+---
+
+## ¿Qué necesitas para ser sede?
+
+- Espacio para 40 a 60 personas
+- Proyector o pantalla con entrada HDMI
+- Acceso a Internet (idealmente con red para invitados)
+- Posibilidad de recibirnos de 18:00 a 22:00 hrs un martes por la tarde
+- ¡Y buena onda! 😄
+
+Opcionalmente puedes ofrecer snacks, bebidas, o sumarte con trivias, regalos o speakers.
+
+---
+
+## ¿Cómo es un meetup típico?
+
+Duración: 3 a 3.5 horas
+Inicio: 18:30 hrs
+Fin: 21:30–22:00 hrs
+
+| Hora | Actividad |
+|--------------|----------------------------------|
+| 18:30 – 19:00 | Registro y llegada |
+| 19:00 – 19:15 | Bienvenida |
+| 19:15 – 20:00 | Charla principal |
+| 20:00 – 20:15 | Trivias o anuncios |
+| 20:15 – 21:00 | Lightning Talks |
+| 21:00 – 22:00 | Networking / Cierre |
+
+---
+
+## ¿Qué fechas tenemos disponibles?
+
+Organizamos nuestros meetups el **segundo martes de cada mes**.
+
+| Fecha | Sede | Estatus |
+|---------------------|----------------------------|------------------|
+| 12 de agosto de 2025 | **Jardín Chapultepec** | **Confirmado** |
+| 09 de septiembre de 2025 | **Clara** | **Confirmado** |
+| 14 de octubre de 2025 | | En negociación |
+| 11 de noviembre de 2025 | | En negociación |
+| 09 de diciembre de 2025 | _Por definir_ | Disponible |
+| 13 de enero de 2026 | _Por definir_ | Disponible |
+| 10 de febrero de 2026 | _Por definir_ | Disponible |
+| 10 de marzo de 2026 | _Por definir_ | Disponible |
+| 14 de abril de 2026 | _Por definir_ | Disponible |
+| 12 de mayo de 2026 | _Por definir_ | Disponible |
+| 09 de junio de 2026 | _Por definir_ | Disponible |
+| 14 de julio de 2026 | _Por definir_ | Disponible |
+| 11 de agosto de 2026 | _Por definir_ | Disponible |
+| 08 de septiembre de 2026 | _Por definir_ | Disponible |
+| 13 de octubre de 2026 | _Por definir_ | Disponible |
+| 10 de noviembre de 2026 | _Por definir_ | Disponible |
+
+---
+
+
+
+---
+
+## ¿Y si quiero participar?
+
+¡Nos encantaría contar contigo!
+Puedes escribirnos a:
+
+ [info@pythoncdmx.org](mailto:info@pythoncdmx.org)
+
+También puedes comentar en nuestras publicaciones o enviarnos DM si viste la convocatoria en redes.
+
+---
+
+> Ser sede de un meetup es más que prestar un espacio. Es apoyar la construcción de comunidad,
+> compartir conocimiento y sumar al crecimiento tech en México.
+
+¡Gracias por considerar ser parte de esta aventura Pythonista!
+
+
+---
+
+--8<-- "components/community-links.md"
+
+---
+
+--8<-- "components/quick-navigation.md"
+
+---
diff --git a/docs/comunidad/sedes_faq.md b/docs/comunidad/sedes_faq.md
new file mode 100644
index 0000000..06e1621
--- /dev/null
+++ b/docs/comunidad/sedes_faq.md
@@ -0,0 +1,223 @@
+
+

+
+
+# FAQ Sedes
+
+
+ Preguntas frecuentes sobre ser sede de Python CDMX
+
+
+---
+
+## Logística del Evento
+
+### ¿Cuánto tiempo dura el evento?
+Entre 3 y 3.5 horas. Generalmente de **18:30 a 22:00 hrs**.
+
+### ¿Cuántas personas asisten?
+El promedio es de **40 a 60 personas**, dependiendo de la capacidad del lugar.
+
+- El evento en Meetup se abre a 60 asistentes
+- Un día antes se aceptan los que están en lista de espera (puede llegar a 80 registrados)
+- La asistencia real suele ser del 60-70% de los registrados
+
+### ¿Qué tipo de formato tiene el evento?
+Formato abierto y dinámico:
+
+- **Bienvenida** (por la comunidad y la empresa sede si gusta participar)
+- **1 charla principal** (30–40 min)
+- **Lightning Talks** (3 a 5 mini charlas de 5–7 min)
+- **Espacio para avisos o trivias** (opcional)
+- **Networking** con snacks o bebidas (opcional)
+
+### ¿Tienen una agenda tentativa?
+Sí, aquí un ejemplo típico:
+
+| Hora | Actividad |
+|--------------|----------------------------------|
+| 18:30 – 19:00 | Registro y llegada |
+| 19:00 – 19:15 | Bienvenida |
+| 19:15 – 20:00 | Charla principal |
+| 20:00 – 20:15 | Trivias o anuncios |
+| 20:15 – 21:00 | Lightning Talks |
+| 21:00 – 22:00 | Networking / Cierre |
+
+---
+
+## Requerimientos Técnicos
+
+### ¿Qué equipo A/V se necesita?
+**Esencial:**
+
+- Proyector o pantalla grande con entrada **HDMI**
+- Conexión a Internet estable
+- Espacio cómodo para el/la ponente
+
+**Recomendado:**
+
+- Audio si el espacio es amplio
+- Red WiFi para invitados
+- Mesa alta, atril o escritorio para ponente
+
+### ¿Cómo manejan la proyección?
+- **Para el venue**: Conexión HDMI directa funciona perfectamente
+- **Para streaming**: Necesitamos una llamada de Zoom, Meet o Jitsi donde el ponente comparta pantalla
+
+### ¿Necesitan conexión a Internet especial?
+- Conexión estable para más de 20 personas simultáneas
+- **Muy recomendado**: Red exclusiva para invitados
+- Requerida para transmisión en vivo del evento
+
+---
+
+## Gestión de Asistentes
+
+### ¿Quién maneja el registro de asistentes?
+**Nosotros** lo gestionamos desde [Meetup.com](https://www.meetup.com/python-mexico/).
+
+**Timeline de listas:**
+
+- **2-3 días antes**: Compartimos lista preliminar de asistentes
+- **Día del evento**: Lista final actualizada con confirmados
+
+### ¿Cómo manejan el acceso a edificios con seguridad?
+
+- Enviamos **formulario de registro previo** un día antes del evento
+- Compartimos **lista de asistentes** con recepción/seguridad
+- Los asistentes deben presentar **identificación oficial**
+- Recomendamos avisar al edificio con **una semana de anticipación**
+
+---
+
+## Participación de la Empresa Sede
+
+### ¿Debe seguirse alguna guía de branding?
+**No es obligatorio**. Si la empresa desea:
+
+- Proyectar visuales con su logo
+- Repartir swag o materiales promocionales
+- Participar con trivias o sorteos
+- Dar bienvenida al evento
+
+Lo coordinamos con gusto durante la planeación.
+
+### ¿Puede alguien de la empresa dar una charla?
+
+**¡Sí!** Solo pedimos que sigan el mismo proceso que cualquier miembro de la comunidad:
+
+[Ser Ponente](/comunidad/ponentes/#por-que-ser-ponente)
+
+ **Registrar su propuesta** en [python-cdmx-charlas/issues](https://github.com/PythonMexico/python-cdmx-charlas/issues)
+para mantener el espíritu abierto y curado del contenido.
+
+### ¿La empresa puede ofrecer snacks o bebidas?
+¡Por supuesto! Es muy apreciado por la comunidad:
+
+- **Bocadillos y bebidas** para 40-60 personas
+- **Cálculo recomendado**: Planear para el 70% de registrados
+- Popular: café, refrescos, botanas, pizza, etc.
+
+---
+
+## Preparación del Espacio
+
+### ¿Cómo debe organizarse el espacio?
+**Recomendaciones basadas en experiencia:**
+
+**Distribución de asientos:**
+
+- Acomodar sillas antes del evento
+- Evitar que asistentes accedan a áreas restringidas
+- Considerar usar señalización o separadores visuales
+
+**Área del ponente:**
+
+- Espacio despejado al frente
+- Mesa o atril disponible
+- Fácil acceso a proyección
+
+**Networking:**
+
+- Espacio abierto para circular
+- Área designada para snacks/bebidas
+- Buena iluminación y ventilación
+
+### ¿Qué hacer con áreas restringidas?
+
+- Colocar señalización clara
+- Brief al staff sobre áreas permitidas
+- El equipo de Python CDMX refuerza estas indicaciones durante el evento
+
+---
+
+## Timeline y Coordinación
+
+### ¿Cuándo se define todo?
+**3-4 semanas antes:**
+
+- Confirmación de fecha y capacidad
+- Requerimientos técnicos y logísticos
+
+**1 semana antes:**
+
+- Notificación al edificio/seguridad
+- Preparación de materiales visuales
+- Confirmación de detalles finales
+
+**2-3 días antes:**
+
+- Lista preliminar de asistentes
+- Información de acceso para participantes
+
+**Día del evento:**
+
+- Lista final de asistentes
+- Setup del espacio y equipo
+- ¡Evento!
+
+### ¿Qué pasa después del evento?
+
+- **Limpieza**: Dejamos el espacio en perfectas condiciones
+- **Retrospectiva**: Recopilamos feedback para mejorar
+- **Agradecimiento**: Reconocimiento público en redes y comunidad
+- **Seguimiento**: Disponibles para futuras colaboraciones
+
+---
+
+## Otras Preguntas Comunes
+
+### ¿Hay restricciones de horario?
+Somos flexibles, pero el formato típico es **martes de 18:30 a 22:00**.
+Podemos ajustarnos a las necesidades del venue.
+
+### ¿Qué pasa si hay problemas técnicos?
+
+- Llevamos equipo de respaldo cuando es posible
+- El equipo tiene experiencia resolviendo problemas en vivo
+- Siempre hay un plan B para continuar el evento
+
+### ¿Ofrecen algo a cambio del espacio?
+
+- **Visibilidad** ante una comunidad tech activa y engaged
+- **Networking** con desarrolladores de todos los niveles
+- **Reconocimiento** en redes sociales y materiales del evento
+- **Oportunidad** de participar en el crecimiento del ecosistema tech mexicano
+
+### ¿Cómo contactarlos para ser sede?
+ [info@pythoncdmx.org](mailto:info@pythoncdmx.org)
+
+También puedes comentar en nuestras publicaciones o enviarnos DM en redes sociales.
+
+---
+
+> **¿Tienes otra pregunta?** No dudes en contactarnos. Cada venue es único y nos adaptamos
+> a las necesidades específicas de cada espacio.
+
+---
+
+--8<-- "components/community-links.md"
+
+---
+
+--8<-- "components/quick-navigation.md"
diff --git a/docs/css/custom.css b/docs/css/custom.css
index e09bed6..b1beee4 100644
--- a/docs/css/custom.css
+++ b/docs/css/custom.css
@@ -155,8 +155,8 @@
.btn-primary,
.participation-card a,
.year-card a {
- background: var(--python-green);
- color: var(--python-white);
+ background: var(--python-green) !important;
+ color: var(--python-white) !important;
padding: 0.75rem 1.5rem;
border-radius: var(--button-radius);
text-decoration: none;
@@ -175,13 +175,30 @@
.btn-primary:hover,
.participation-card a:hover,
.year-card a:hover {
- background: var(--python-green-dark);
- color: var(--python-white);
+ background: var(--python-green-dark) !important;
+ color: var(--python-white) !important;
transform: translateY(-2px);
box-shadow: var(--md-shadow-z2);
text-decoration: none;
}
+ /* Asegurar visibilidad en botones específicos del index */
+ .btn.btn-primary,
+ .btn-primary.mt-2,
+ .upcoming-btn {
+ background: var(--python-green) !important;
+ color: var(--python-white) !important;
+ text-decoration: none !important;
+ }
+
+ .btn.btn-primary:hover,
+ .btn-primary.mt-2:hover,
+ .upcoming-btn:hover {
+ background: var(--python-green-dark) !important;
+ color: var(--python-white) !important;
+ text-decoration: none !important;
+ }
+
/* Botones de navegación discretos */
.btn-nav {
background: transparent;
@@ -706,10 +723,10 @@
}
.community-card img {
- width: 120px;
+ /*width: 120px;*/
height: 120px;
object-fit: cover;
- border-radius: 50%;
+ /*border-radius: 50%;*/
margin-bottom: 1rem;
border: 3px solid var(--md-default-fg-color--lightest);
transition: var(--transition-base);
diff --git a/docs/images/comunidades/pythoncdmx_buscamos_sede.jpg b/docs/images/comunidades/pythoncdmx_buscamos_sede.jpg
new file mode 100644
index 0000000..ff2c30f
Binary files /dev/null and b/docs/images/comunidades/pythoncdmx_buscamos_sede.jpg differ
diff --git a/docs/images/meetup/202508-pythoncdmx.jpg b/docs/images/meetup/202508-pythoncdmx.jpg
new file mode 100644
index 0000000..8f56871
Binary files /dev/null and b/docs/images/meetup/202508-pythoncdmx.jpg differ
diff --git a/docs/index.md b/docs/index.md
index ee091b8..a530b74 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -18,8 +18,8 @@
diff --git a/docs/meetups/2023/index.md b/docs/meetups/2023/index.md
index 872be7c..105d1b4 100644
--- a/docs/meetups/2023/index.md
+++ b/docs/meetups/2023/index.md
@@ -12,11 +12,11 @@
|
**Fecha** |
**Charla** |
**Ponente** |
**Lugar** |
**Detalles** |
|:---|:---|:---|:---|:---|
-| **14 Noviembre 2023** | GitOps: Automatizando el despliegue de aplicaciones | Carlos Reyes | Wizeline México | [Ver detalles](202311-noviembre) |
-| **14 Noviembre 2023** | Historia de Python: De Guido van Rossum a la actualidad | Gustavo Vera | Wizeline México | [Ver detalles](202311-noviembre) |
-| **10 Octubre 2023** | Jupyter a Web: De notebooks a aplicaciones web | Gustavo Vera | Wizeline México | [Ver detalles](202310-octubre) |
-| **12 Septiembre 2023** | Metaprogramación en Python | David Sol | Wizeline México | [Ver detalles](202309-septiembre) |
-| **12 Septiembre 2023** | AWS AI: Servicios de IA en la nube | Gustavo Vera | Wizeline México | [Ver detalles](202309-septiembre) |
+| **14 Noviembre 2023** | GitOps: Automatizando el despliegue de aplicaciones | Carlos Reyes | Wizeline México | [Ver detalles](202311-noviembre/) |
+| **14 Noviembre 2023** | Historia de Python: De Guido van Rossum a la actualidad | Gustavo Vera | Wizeline México | [Ver detalles](202311-noviembre/) |
+| **10 Octubre 2023** | Jupyter a Web: De notebooks a aplicaciones web | Gustavo Vera | Wizeline México | [Ver detalles](202310-octubre/) |
+| **12 Septiembre 2023** | Metaprogramación en Python | David Sol | Wizeline México | [Ver detalles](202309-septiembre/) |
+| **12 Septiembre 2023** | AWS AI: Servicios de IA en la nube | Gustavo Vera | Wizeline México | [Ver detalles](202309-septiembre/) |
---
diff --git a/docs/meetups/2024/index.md b/docs/meetups/2024/index.md
index 411c639..388afd1 100644
--- a/docs/meetups/2024/index.md
+++ b/docs/meetups/2024/index.md
@@ -12,21 +12,21 @@
|
**Fecha** |
**Charla** |
**Ponente** |
**Lugar** |
**Detalles** |
|:---|:---|:---|:---|:---|
-| **12 Noviembre 2024** | Mejora tu código: Evita anti-patrones en Python | Alejandro Lopez | Wizeline México | [Ver detalles](202411-noviembre) |
-| **12 Noviembre 2024** | Exactamente qué y (sobre todo) por qué ChatGPT | Hugo Ramírez | Wizeline México | [Ver detalles](202411-noviembre) |
-| **08 Octubre 2024** | Contribuir a Open Source | Alex Callejas | Wizeline México | [Ver detalles](202410-octubre) |
-| **10 Septiembre 2024** | Protocolos en Python | Diego Barriga | Wizeline México | [Ver detalles](202409-septiembre) |
-| **10 Septiembre 2024** | Guía Open Source | David Sol | Wizeline México | [Ver detalles](202409-septiembre) |
-| **13 Agosto 2024** | ETLs con Python | Gustavo Vera | Wizeline México | [Ver detalles](202408-agosto) |
-| **13 Agosto 2024** | GIL: Global Interpreter Lock | Fer Perales | Wizeline México | [Ver detalles](202408-agosto) |
-| **09 Julio 2024** | Regresión Lineal | Konstantin Spirin | Wizeline México | [Ver detalles](202407-julio) |
-| **09 Julio 2024** | Fonética con Python | Hugo Ramirez | Wizeline México | [Ver detalles](202407-julio) |
-| **11 Junio 2024** | Regresión Lineal | Geovanni Zepeda Martínez | Wizeline México | [Ver detalles](202406-junio) |
-| **14 Mayo 2024** | Pydantic | Charly Román | Wizeline México | [Ver detalles](202405-mayo) |
-| **09 Abril 2024** | Contenedores | David Sol | Wizeline México | [Ver detalles](202404-abril) |
-| **12 Marzo 2024** | Flask APIs | Alejandro López | Wizeline México | [Ver detalles](202403-marzo) |
-| **13 Febrero 2024** | Entornos Virtuales | Gustavo Vera | Wizeline México | [Ver detalles](202402-febrero) |
-| **09 Enero 2024** | PyPI | David Sol | Wizeline México | [Ver detalles](202401-enero) |
+| **12 Noviembre 2024** | Mejora tu código: Evita anti-patrones en Python | Alejandro Lopez | Wizeline México | [Ver detalles](202411-noviembre/) |
+| **12 Noviembre 2024** | Exactamente qué y (sobre todo) por qué ChatGPT | Hugo Ramírez | Wizeline México | [Ver detalles](202411-noviembre/) |
+| **08 Octubre 2024** | Contribuir a Open Source | Alex Callejas | Wizeline México | [Ver detalles](202410-octubre/) |
+| **10 Septiembre 2024** | Protocolos en Python | Diego Barriga | Wizeline México | [Ver detalles](202409-septiembre/) |
+| **10 Septiembre 2024** | Guía Open Source | David Sol | Wizeline México | [Ver detalles](202409-septiembre/) |
+| **13 Agosto 2024** | ETLs con Python | Gustavo Vera | Wizeline México | [Ver detalles](202408-agosto/) |
+| **13 Agosto 2024** | GIL: Global Interpreter Lock | Fer Perales | Wizeline México | [Ver detalles](202408-agosto/) |
+| **09 Julio 2024** | Regresión Lineal | Konstantin Spirin | Wizeline México | [Ver detalles](202407-julio/) |
+| **09 Julio 2024** | Fonética con Python | Hugo Ramirez | Wizeline México | [Ver detalles](202407-julio/) |
+| **11 Junio 2024** | Regresión Lineal | Geovanni Zepeda Martínez | Wizeline México | [Ver detalles](202406-junio/) |
+| **14 Mayo 2024** | Pydantic | Charly Román | Wizeline México | [Ver detalles](202405-mayo/) |
+| **09 Abril 2024** | Contenedores | David Sol | Wizeline México | [Ver detalles](202404-abril/) |
+| **12 Marzo 2024** | Flask APIs | Alejandro López | Wizeline México | [Ver detalles](202403-marzo/) |
+| **13 Febrero 2024** | Entornos Virtuales | Gustavo Vera | Wizeline México | [Ver detalles](202402-febrero/) |
+| **09 Enero 2024** | PyPI | David Sol | Wizeline México | [Ver detalles](202401-enero/) |
---
diff --git a/docs/meetups/2025/202508-agosto.md b/docs/meetups/2025/202508-agosto.md
new file mode 100644
index 0000000..10916f4
--- /dev/null
+++ b/docs/meetups/2025/202508-agosto.md
@@ -0,0 +1,101 @@
+---
+title: "Escalando tus aplicaciones Python con Ray"
+---
+
+# Meetup #PythonCDMX
- Agosto 2025
+
+
+
Escalando tus aplicaciones Python con Ray
+
¿Tu programa local tarda horas o incluso días en ejecutarse?
+
+
+
+## Información del Evento
+
+
+
+
Fecha
+
Martes 12 de Agosto, 2025
+
+
+
+
Lugar
+
Jardin Chapultepec
+
+
+
¡GRATIS!
+
Entrada completamente gratuita
+
+
+
+
+---
+
+## Ponente
+
+
+
+

+
+
+
Juan Guillermo Gomez
+
Google Developer Expert (GDE) en Firebase, GCP, Kotlin, y AI,
+
Juan Guillermo fundó GDG Cali y coorganiza varios eventos globales y locales con los Google Developer Groups. Ha estado involucrado en tecnología y programación de software durante los últimos 20 años. Actualmente, es líder técnico en WordBox. Juan es un GDE (Google Developer Expert) en Firebase, IA/ML, GCP y Kotlin. Tiene una licenciatura en Ingeniería de Sistemas y una maestría en Ingeniería de Software por la Universidad San Buenaventura Cali.
+
+
+
+
+
+
+
+
+---
+
+## Descripción de la Charla
+
+
+
Escalando tus aplicaciones Python con Ray
+
¿Tu programa local tarda horas o incluso días en ejecutarse?¿Los mecanismos tradicionales ya no son suficientes para manejar la complejidad y el volumen de tus datos o cálculos?
+
+
Ha llegado el momento de explorar arquitecturas y patrones diferentes, como los sistemas distribuidos.
+
+
La palabra "distribuido" puede sonar compleja: ¿cómo hacer que tu software se ejecute en múltiples máquinas, se comuniquen entre sí y te den un resultado consolidado? ¡Uff mucho trabajo! Aquí es donde los frameworks modernos vienen a nuestro rescate.
+
+
Ray, un framework que te permite escalar y distribuir tu código Python de una manera increíblemente sencilla, mantenible y robusta. Con Ray, puedes transformar datos, entrenar modelos y realizar búsqueda de hiperparámetros, todo de forma paralela y distribuida.
+
+
En esta charla, exploraremos varios casos de uso prácticos de Ray con Python para que aprendas a escalar tus aplicaciones y optimizar su rendimiento.
+
+
+---
+
+## ¡Mira la charla completa!
+
+
+
+---
+
+--8<-- "components/community-links.md"
+
+---
+
+--8<-- "components/quick-navigation.md"
+
+---
diff --git a/docs/meetups/2025/index.md b/docs/meetups/2025/index.md
index 206fc80..43d2e6a 100644
--- a/docs/meetups/2025/index.md
+++ b/docs/meetups/2025/index.md
@@ -12,18 +12,19 @@
|
**Fecha** |
**Charla** |
**Ponente** |
**Lugar** |
**Detalles** |
|:---|:---|:---|:---|:---|
-| **08 Julio 2025** | Cómo preparar una ambiente de desarrollo con Python desde zero | David Sol | Clara | [Ver detalles](202507-julio) |
-| **10 Junio 2025** | Usando Python y software libre para crear nuevas herramientas: Traductor de voz español-inglés | Carlos Cesar Caballero | Wizeline México | [Ver detalles](202506-junio) |
-| **13 Mayo 2025** | Construyendo un paquete en Python y publicándolo en PyPI | Javier Novoa | Wizeline México | [Ver detalles](202505-mayo) |
-| **25 Abril 2025** | portafolio.py: Como hacer un portafolio web sin saber diseño web | Daniel Paredes | UNAM Facultad de Ciencias | [Ver detalles](202504-unam) |
-| **25 Abril 2025** | Programar en tiempos del Vibe-Coding | Charly Roman | UNAM Facultad de Ciencias | [Ver detalles](202504-unam) |
-| **08 Abril 2025** | El para que cosa de Quien. Kubernetes y AI | Carlos Reyes | Wizeline México | [Ver detalles](202504-abril) |
-| **11 Marzo 2025** | Mi Primer Agente de Inteligencia Artificial con Python | Erik Rivera | Wizeline México | [Ver detalles](202503-marzo) |
-| **11 Maro 2025** | Interfases gráficas con Pyside6 | David Sol | Wizeline México | [Ver detalles](202503-marzo) |
-| **11 Febrero 2025** | Lecciones del Advent of Code 2024 | Manuel Rábade | Wizeline México | [Ver detalles](202502-febrero) |
-| **11 Febrero 2025** | Embeddings: El lenguaje como las máquinas entienden el lenguaje humano | Juan Guillermo Gómez | Wizeline México | [Ver detalles](202502-febrero) |
-| **14 Enero 2025** | Crea extensiones para LibreOffice con Python | elMau (Mauricio B.) | Wizeline México | [Ver detalles](202501-enero) |
-| **14 Enero 2025** | Seguridad y cumplimiento de Python: Garantizar el cumplimiento de PCI DSS | Mauro Parra | Wizeline México | [Ver detalles](202501-enero) |
+| **12 Agosto 2025** | Cómo preparar una ambiente de desarrollo con Python desde zero | Juan Guillermo Gómez | Jardin Chapultepec | [Ver detalles](202508-agosto/) |
+| **08 Julio 2025** | Cómo preparar una ambiente de desarrollo con Python desde zero | David Sol | Clara | [Ver detalles](202507-julio/) |
+| **10 Junio 2025** | Usando Python y software libre para crear nuevas herramientas: Traductor de voz español-inglés | Carlos Cesar Caballero | Wizeline México | [Ver detalles](202506-junio/) |
+| **13 Mayo 2025** | Construyendo un paquete en Python y publicándolo en PyPI | Javier Novoa | Wizeline México | [Ver detalles](202505-mayo/) |
+| **25 Abril 2025** | portafolio.py: Como hacer un portafolio web sin saber diseño web | Daniel Paredes | UNAM Facultad de Ciencias | [Ver detalles](202504-unam/) |
+| **25 Abril 2025** | Programar en tiempos del Vibe-Coding | Charly Roman | UNAM Facultad de Ciencias | [Ver detalles](202504-unam/) |
+| **08 Abril 2025** | El para que cosa de Quien. Kubernetes y AI | Carlos Reyes | Wizeline México | [Ver detalles](202504-abril/) |
+| **11 Marzo 2025** | Mi Primer Agente de Inteligencia Artificial con Python | Erik Rivera | Wizeline México | [Ver detalles](202503-marzo/) |
+| **11 Maro 2025** | Interfases gráficas con Pyside6 | David Sol | Wizeline México | [Ver detalles](202503-marzo/) |
+| **11 Febrero 2025** | Lecciones del Advent of Code 2024 | Manuel Rábade | Wizeline México | [Ver detalles](202502-febrero/) |
+| **11 Febrero 2025** | Embeddings: El lenguaje como las máquinas entienden el lenguaje humano | Juan Guillermo Gómez | Wizeline México | [Ver detalles](202502-febrero/) |
+| **14 Enero 2025** | Crea extensiones para LibreOffice con Python | elMau (Mauricio B.) | Wizeline México | [Ver detalles](202501-enero/) |
+| **14 Enero 2025** | Seguridad y cumplimiento de Python: Garantizar el cumplimiento de PCI DSS | Mauro Parra | Wizeline México | [Ver detalles](202501-enero/) |
---
diff --git a/mkdocs.yml b/mkdocs.yml
index f0bcfac..f645190 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -76,8 +76,9 @@ nav:
- Cómo Contribuir: comunidad/como-contribuir.md
- Voluntarios: comunidad/voluntarios.md
- Ponentes: comunidad/ponentes.md
+ - Sedes: comunidad/sedes.md
- Comunidad:
- - Alianzas: comunidad/alianzas.md
+ - Comunidades: comunidad/comunidades.md
- Acerca de: about.md
# Plugins
diff --git a/scripts/fix_broken_links.py b/scripts/fix_broken_links.py
index cf0849c..ad56ebf 100644
--- a/scripts/fix_broken_links.py
+++ b/scripts/fix_broken_links.py
@@ -89,6 +89,7 @@ def fix_file_links(file_path: str, broken_links: List[Dict]) -> Tuple[bool, List
f'\\[{re.escape(link["text"])}\\]\\({re.escape(old_url)}\\)'
)
replacement = f'[{link["text"]}]({new_url})'
+ new_content = re.sub(pattern, replacement, content)
elif link_type == "html":
# Fix HTML links:
text
# Handle both single and double quotes