From 3e056856d1f851be91e689d1d04b9e8333fed649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Tue, 22 Aug 2023 15:10:16 +0200 Subject: [PATCH] Remove CRLF --- CNAME | 2 +- DockerFile | 42 +- LICENSE | 42 +- README.md | 82 +- assets/css/style.css | 480 +-- config/landing.py | 80 +- content/.placeholder.md | 4 +- content/c4p-en.md | 92 +- content/c4p-es.md | 90 +- content/codigo_conducta-en.md | 240 +- content/codigo_conducta-es.md | 254 +- content/faq-en.md | 228 +- content/faq-es.md | 226 +- content/patrocinios-en.md | 30 +- content/patrocinios-es.md | 28 +- content/viajes-en.md | 78 +- content/viajes-es.md | 80 +- develop_server.sh | 204 +- docker-compose.yaml | 26 +- justfile | 22 +- pelicanconf.py | 20 +- publishconf.py | 38 +- requirements.txt | 10 +- .../static/assets/css/style.css | 480 +-- theme/pycones-landing/templates/CNAME | 2 +- .../templates/assets/css/style.css | 184 +- theme/pycones-landing/templates/index.html | 376 +-- theme/pycones23/static/assets/css/main.css | 2706 ++++++++--------- theme/pycones23/templates/CNAME | 2 +- theme/pycones23/templates/article.html | 32 +- theme/pycones23/templates/base.html | 144 +- .../templates/ediciones_anteriores.html | 58 +- theme/pycones23/templates/footer-links.html | 10 +- theme/pycones23/templates/index.html | 328 +- theme/pycones23/templates/navbar.html | 36 +- theme/pycones23/templates/page.html | 34 +- theme/pycones23/templates/principal.html | 6 +- theme/pycones23/templates/social-media.html | 48 +- .../templates/tabla-patrocinios.html | 226 +- theme/pycones23_en/static/assets/css/main.css | 2706 ++++++++--------- theme/pycones23_en/templates/CNAME | 2 +- theme/pycones23_en/templates/article.html | 32 +- theme/pycones23_en/templates/base.html | 144 +- .../templates/ediciones_anteriores.html | 62 +- .../pycones23_en/templates/footer-links.html | 10 +- theme/pycones23_en/templates/index.html | 298 +- theme/pycones23_en/templates/navbar.html | 36 +- theme/pycones23_en/templates/page.html | 34 +- theme/pycones23_en/templates/principal.html | 6 +- .../pycones23_en/templates/social-media.html | 50 +- .../templates/tabla-patrocinios.html | 234 +- 51 files changed, 5342 insertions(+), 5342 deletions(-) diff --git a/CNAME b/CNAME index 56f4ac6..926a284 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -2023.es.pycon.org +2023.es.pycon.org diff --git a/DockerFile b/DockerFile index 072e83d..a6e57d8 100644 --- a/DockerFile +++ b/DockerFile @@ -1,21 +1,21 @@ -FROM python:3.7-slim as development - -ENV LC_ALL C.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US.UTF-8 -ENV PORT=8000 -EXPOSE $PORT - -RUN apt-get update \ - && apt-get install --no-install-recommends -qy git curl bash build-essential - -ADD requirements.txt / -RUN pip install -r /requirements.txt - - -WORKDIR /project-root - -COPY develop_server.sh / -RUN chmod +x /develop_server.sh - -CMD /develop_server.sh start $PORT +FROM python:3.7-slim as development + +ENV LC_ALL C.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US.UTF-8 +ENV PORT=8000 +EXPOSE $PORT + +RUN apt-get update \ + && apt-get install --no-install-recommends -qy git curl bash build-essential + +ADD requirements.txt / +RUN pip install -r /requirements.txt + + +WORKDIR /project-root + +COPY develop_server.sh / +RUN chmod +x /develop_server.sh + +CMD /develop_server.sh start $PORT diff --git a/LICENSE b/LICENSE index 4d99673..d545f3c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2023 Python Canarias - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2023 Python Canarias + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index a51156f..dc39197 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,41 @@ -# pycones23 - -Conferencia Nacional de Python 2023 · La Laguna · Tenerife · Islas Canarias - -## Como empezar - -### Utilizando Docker - -#### Dev containers - -- Se ha configurado el devcontainers para usar en vscode y en github, para usarlo sólo deberíamos abrir el proyecto dentro del contenedor - -#### Docker-compose - -- Para trabajar con docker-compose deberemos tener instalado docker y docker-compose, https://docs.docker.com/compose/install/ -- Ejecutar el siguiente comando dentro de la carpeta del proyecto `bash docker-compose up` para ver la web consulta http://localhost:8000 -- Nota: El puerto que usa el contenedor es el 8000, para trabajar con el proyecto, asegurate que no tienes ningún contenedor con ese puerto en uso. - -### Utilizando Python - -Crea un nuevo entorno virtual (opcional) e instala las dependencias: - -```bash -python -m venv env -source env/bin/activate # macOS y Linux -env\Scripts\activate # windows cmd -env\Scripts\Activate.ps1 # windows Powershell - -pip install -r requirements.txt -``` - -Genera el contenido, y comienza el servidor en localhost - -```bash -PYCONES_BUILD_TARGET=WEB pelican -l content -s pelicanconf.py -r --bind 0.0.0.0 -``` - -visita `http://0.0.0.0:8000` para visualizar el sitio web. - - -#### v1.0 12/04/2023 +# pycones23 + +Conferencia Nacional de Python 2023 · La Laguna · Tenerife · Islas Canarias + +## Como empezar + +### Utilizando Docker + +#### Dev containers + +- Se ha configurado el devcontainers para usar en vscode y en github, para usarlo sólo deberíamos abrir el proyecto dentro del contenedor + +#### Docker-compose + +- Para trabajar con docker-compose deberemos tener instalado docker y docker-compose, https://docs.docker.com/compose/install/ +- Ejecutar el siguiente comando dentro de la carpeta del proyecto `bash docker-compose up` para ver la web consulta http://localhost:8000 +- Nota: El puerto que usa el contenedor es el 8000, para trabajar con el proyecto, asegurate que no tienes ningún contenedor con ese puerto en uso. + +### Utilizando Python + +Crea un nuevo entorno virtual (opcional) e instala las dependencias: + +```bash +python -m venv env +source env/bin/activate # macOS y Linux +env\Scripts\activate # windows cmd +env\Scripts\Activate.ps1 # windows Powershell + +pip install -r requirements.txt +``` + +Genera el contenido, y comienza el servidor en localhost + +```bash +PYCONES_BUILD_TARGET=WEB pelican -l content -s pelicanconf.py -r --bind 0.0.0.0 +``` + +visita `http://0.0.0.0:8000` para visualizar el sitio web. + + +#### v1.0 12/04/2023 diff --git a/assets/css/style.css b/assets/css/style.css index 0d89062..ada8f46 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,240 +1,240 @@ -html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; -} - -@media screen and (max-width: 1024px) { - html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing-800.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; - } -} - -body { - text-align: center; - color: white; -} - - -.container { - display: flex; - align-items: center; - justify-content: center; - padding-top: 5%; -} - -img { - max-width: 100%; -} - -.image { - flex-basis: 40% -} - -.social { - padding: 10px; - color: #5202bd; -} - -.purple { - color: #5202bd; -} - -.full { - width: 100%; - display: flex; - flex-direction: column; -} - -.box { - display: flex; - flex-direction: column; - background-color: rgba(255, 255, 255, 0.7); - margin: 0 4% 0 4%; - font-size: 20pt; -} - -@media screen and (max-width: 1024px) { - .box { - font-size: 14pt; - } -} - -.arrow { - cursor: pointer; - display: block; - padding-top: 10%; -} - -.spacer-middle { - min-height: 100vw; -} - -.spacer-bottom { - min-height: 20vw; -} - -h2 { - font-weight: 200; -} - -/* Rotating digits */ - - -@keyframes rotating-zero { - from { transform: rotateX(0deg); } - to { transform: rotateX(360deg); } -} - -.rotate-zero { - animation-duration: 5s; - animation-name: rotating-zero; -} - -@keyframes rotating-one { - from { transform: rotateX(0deg); } - to { transform: rotateX(324deg); } -} - -.rotate-one { - animation-duration: 4.5s; - animation-name: rotating-one; -} - -@keyframes rotating-two { - from { transform: rotateX(0deg); } - to { transform: rotateX(288deg); } -} - -.rotate-two { - animation-duration: 4s; - animation-name: rotating-two; -} - -@keyframes rotating-three { - from { transform: rotateX(0deg); } - to { transform: rotateX(252deg); } -} - -.rotate-three { - animation-duration: 3.5s; - animation-name: rotating-three; -} - -@keyframes rotating-four { - from { transform: rotateX(0deg); } - to { transform: rotateX(216deg); } -} - -.rotate-four { - animation-duration: 3s; - animation-name: rotating-four; -} - -@keyframes rotating-five { - from { transform: rotateX(0deg); } - to { transform: rotateX(180deg); } -} - -.rotate-five { - animation-duration: 2.5s; - animation-name: rotating-five; -} - -@keyframes rotating-six { - from { transform: rotateX(0deg); } - to { transform: rotateX(144deg); } -} - -.rotate-six { - animation-duration: 2s; - animation-name: rotating-six; -} - -@keyframes rotating-seven { - from { transform: rotateX(0deg); } - to { transform: rotateX(108deg); } -} - -.rotate-seven { - animation-duration: 1.5s; - animation-name: rotating-seven; -} - -@keyframes rotating-eight { - from { transform: rotateX(0deg); } - to { transform: rotateX(72deg); } -} - -.rotate-eight { - animation-duration: 1s; - animation-name: rotating-eight; -} - -@keyframes rotating-nine { - from { transform: rotateX(0deg); } - to { transform: rotateX(36deg); } -} - -.rotate-nine { - animation-duration: 0.5s; - animation-name: rotating-nine; -} - -.cylinder { - position: relative; - z-index: -1; - display: block; - margin-top: 0.5em; - animation-iteration-count: 1; - animation-delay: 750ms; - animation-timing-function: ease-out; - transform-style: preserve-3d; - animation-fill-mode: forwards; -} - -.cylinder > b { - position: absolute; - top: -0.5em; - left: 0; - display: block; - width: 1em; - height: 1em; - text-align: center; - line-height: 1.0; - backface-visibility: hidden; -} - -.digit { - display: inline-block; - overflow: hidden; - font-size: 110%; - width: 0.9em; - height: 1em; - border: 0; - vertical-align: middle; - font-weight: bolder; -} - -.cylinder > b.zero { transform: rotateX( 0deg) translateZ(1.538em); } -.cylinder > b.one { transform: rotateX( 36deg) translateZ(1.538em); } -.cylinder > b.two { transform: rotateX( 72deg) translateZ(1.538em); } -.cylinder > b.three { transform: rotateX(108deg) translateZ(1.538em); } -.cylinder > b.four { transform: rotateX(144deg) translateZ(1.538em); } -.cylinder > b.five { transform: rotateX(180deg) translateZ(1.538em); } -.cylinder > b.six { transform: rotateX(216deg) translateZ(1.538em); } -.cylinder > b.seven { transform: rotateX(252deg) translateZ(1.538em); } -.cylinder > b.eight { transform: rotateX(288deg) translateZ(1.538em); } -.cylinder > b.nine { transform: rotateX(324deg) translateZ(1.538em); } +html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; +} + +@media screen and (max-width: 1024px) { + html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing-800.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; + } +} + +body { + text-align: center; + color: white; +} + + +.container { + display: flex; + align-items: center; + justify-content: center; + padding-top: 5%; +} + +img { + max-width: 100%; +} + +.image { + flex-basis: 40% +} + +.social { + padding: 10px; + color: #5202bd; +} + +.purple { + color: #5202bd; +} + +.full { + width: 100%; + display: flex; + flex-direction: column; +} + +.box { + display: flex; + flex-direction: column; + background-color: rgba(255, 255, 255, 0.7); + margin: 0 4% 0 4%; + font-size: 20pt; +} + +@media screen and (max-width: 1024px) { + .box { + font-size: 14pt; + } +} + +.arrow { + cursor: pointer; + display: block; + padding-top: 10%; +} + +.spacer-middle { + min-height: 100vw; +} + +.spacer-bottom { + min-height: 20vw; +} + +h2 { + font-weight: 200; +} + +/* Rotating digits */ + + +@keyframes rotating-zero { + from { transform: rotateX(0deg); } + to { transform: rotateX(360deg); } +} + +.rotate-zero { + animation-duration: 5s; + animation-name: rotating-zero; +} + +@keyframes rotating-one { + from { transform: rotateX(0deg); } + to { transform: rotateX(324deg); } +} + +.rotate-one { + animation-duration: 4.5s; + animation-name: rotating-one; +} + +@keyframes rotating-two { + from { transform: rotateX(0deg); } + to { transform: rotateX(288deg); } +} + +.rotate-two { + animation-duration: 4s; + animation-name: rotating-two; +} + +@keyframes rotating-three { + from { transform: rotateX(0deg); } + to { transform: rotateX(252deg); } +} + +.rotate-three { + animation-duration: 3.5s; + animation-name: rotating-three; +} + +@keyframes rotating-four { + from { transform: rotateX(0deg); } + to { transform: rotateX(216deg); } +} + +.rotate-four { + animation-duration: 3s; + animation-name: rotating-four; +} + +@keyframes rotating-five { + from { transform: rotateX(0deg); } + to { transform: rotateX(180deg); } +} + +.rotate-five { + animation-duration: 2.5s; + animation-name: rotating-five; +} + +@keyframes rotating-six { + from { transform: rotateX(0deg); } + to { transform: rotateX(144deg); } +} + +.rotate-six { + animation-duration: 2s; + animation-name: rotating-six; +} + +@keyframes rotating-seven { + from { transform: rotateX(0deg); } + to { transform: rotateX(108deg); } +} + +.rotate-seven { + animation-duration: 1.5s; + animation-name: rotating-seven; +} + +@keyframes rotating-eight { + from { transform: rotateX(0deg); } + to { transform: rotateX(72deg); } +} + +.rotate-eight { + animation-duration: 1s; + animation-name: rotating-eight; +} + +@keyframes rotating-nine { + from { transform: rotateX(0deg); } + to { transform: rotateX(36deg); } +} + +.rotate-nine { + animation-duration: 0.5s; + animation-name: rotating-nine; +} + +.cylinder { + position: relative; + z-index: -1; + display: block; + margin-top: 0.5em; + animation-iteration-count: 1; + animation-delay: 750ms; + animation-timing-function: ease-out; + transform-style: preserve-3d; + animation-fill-mode: forwards; +} + +.cylinder > b { + position: absolute; + top: -0.5em; + left: 0; + display: block; + width: 1em; + height: 1em; + text-align: center; + line-height: 1.0; + backface-visibility: hidden; +} + +.digit { + display: inline-block; + overflow: hidden; + font-size: 110%; + width: 0.9em; + height: 1em; + border: 0; + vertical-align: middle; + font-weight: bolder; +} + +.cylinder > b.zero { transform: rotateX( 0deg) translateZ(1.538em); } +.cylinder > b.one { transform: rotateX( 36deg) translateZ(1.538em); } +.cylinder > b.two { transform: rotateX( 72deg) translateZ(1.538em); } +.cylinder > b.three { transform: rotateX(108deg) translateZ(1.538em); } +.cylinder > b.four { transform: rotateX(144deg) translateZ(1.538em); } +.cylinder > b.five { transform: rotateX(180deg) translateZ(1.538em); } +.cylinder > b.six { transform: rotateX(216deg) translateZ(1.538em); } +.cylinder > b.seven { transform: rotateX(252deg) translateZ(1.538em); } +.cylinder > b.eight { transform: rotateX(288deg) translateZ(1.538em); } +.cylinder > b.nine { transform: rotateX(324deg) translateZ(1.538em); } diff --git a/config/landing.py b/config/landing.py index f06d111..9d56a0d 100644 --- a/config/landing.py +++ b/config/landing.py @@ -1,40 +1,40 @@ -AUTHOR = 'python españa' -SITENAME = 'pycones23' - -PATH = 'content' - -TIMEZONE = 'Europe/Madrid' - -DEFAULT_LANG = 'es' - -# Feed generation is usually not desired when developing -FEED_ALL_ATOM = None -CATEGORY_FEED_ATOM = None -TRANSLATION_FEED_ATOM = None -AUTHOR_FEED_ATOM = None -AUTHOR_FEED_RSS = None - -# Blogroll -LINKS = ( - ('Pelican', 'https://getpelican.com/'), - ('Python.org', 'https://www.python.org/'), - ('Jinja2', 'https://palletsprojects.com/p/jinja/'), - ('You can modify those links in your config file', '#'), -) - -# Social widget -SOCIAL = ( - ('You can add links in your config file', '#'), - ('Another social link', '#'), -) - -DEFAULT_PAGINATION = 10 - -THEME = "theme/pycones-landing" - - -TEMPLATE_PAGES = { - 'CNAME': 'CNAME', -} -# Uncomment following line if you want document-relative URLs when developing -# RELATIVE_URLS = True +AUTHOR = 'python españa' +SITENAME = 'pycones23' + +PATH = 'content' + +TIMEZONE = 'Europe/Madrid' + +DEFAULT_LANG = 'es' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = None +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +LINKS = ( + ('Pelican', 'https://getpelican.com/'), + ('Python.org', 'https://www.python.org/'), + ('Jinja2', 'https://palletsprojects.com/p/jinja/'), + ('You can modify those links in your config file', '#'), +) + +# Social widget +SOCIAL = ( + ('You can add links in your config file', '#'), + ('Another social link', '#'), +) + +DEFAULT_PAGINATION = 10 + +THEME = "theme/pycones-landing" + + +TEMPLATE_PAGES = { + 'CNAME': 'CNAME', +} +# Uncomment following line if you want document-relative URLs when developing +# RELATIVE_URLS = True diff --git a/content/.placeholder.md b/content/.placeholder.md index f350429..2abddc3 100644 --- a/content/.placeholder.md +++ b/content/.placeholder.md @@ -1,2 +1,2 @@ -Title: PyConES23 -Date: 2023-10-06 17:00 +Title: PyConES23 +Date: 2023-10-06 17:00 diff --git a/content/c4p-en.md b/content/c4p-en.md index 439247f..701e831 100644 --- a/content/c4p-en.md +++ b/content/c4p-en.md @@ -1,46 +1,46 @@ -Title: Call for Proposals -Date: 2023-04-01 10:00 -Slug: c4p -Lang: en -Url: en/c4p/ -save_as: c4p/index.html - -# Call for Proposals - -## Wanna be a speaker? - -We are happy to announce that the call for proposals is now available. -We are looking for people of all levels, fields and experience. -**Cheer up, we're looking forward to learning from you.** - -
-

Deadline: June 23rd 30th

-
-
- Send my talk -
- -## Recommendations for your proposal - -We want to motivate people with different levels of experience in presentations -to participate in the conference. We know that for people who are just starting out, -presenting an idea that reflects all the great details that your talk has -can be a bit confusing. - -It is important that you present your idea clearly, but that you can also -give the necessary information so that reviewers understand your proposal. - -### Structure of your abstract - -A simple structure that you can follow is to be able to contemplate the following -points in your proposal: - -* Context of your talk or problem -* Definition of the problem -* Why is it important to find a solution to that problem? -* What will be discussed and what will the people who attend learn? -* Previous requirements or additional comments of your talk - -Avoid abstracts of one or two lines that repeat the idea that is already presented -in the title, and try to include factors that make your proposal -**special and unique!**. +Title: Call for Proposals +Date: 2023-04-01 10:00 +Slug: c4p +Lang: en +Url: en/c4p/ +save_as: c4p/index.html + +# Call for Proposals + +## Wanna be a speaker? + +We are happy to announce that the call for proposals is now available. +We are looking for people of all levels, fields and experience. +**Cheer up, we're looking forward to learning from you.** + +
+

Deadline: June 23rd 30th

+
+
+ Send my talk +
+ +## Recommendations for your proposal + +We want to motivate people with different levels of experience in presentations +to participate in the conference. We know that for people who are just starting out, +presenting an idea that reflects all the great details that your talk has +can be a bit confusing. + +It is important that you present your idea clearly, but that you can also +give the necessary information so that reviewers understand your proposal. + +### Structure of your abstract + +A simple structure that you can follow is to be able to contemplate the following +points in your proposal: + +* Context of your talk or problem +* Definition of the problem +* Why is it important to find a solution to that problem? +* What will be discussed and what will the people who attend learn? +* Previous requirements or additional comments of your talk + +Avoid abstracts of one or two lines that repeat the idea that is already presented +in the title, and try to include factors that make your proposal +**special and unique!**. diff --git a/content/c4p-es.md b/content/c4p-es.md index 3effa8c..b3e3517 100644 --- a/content/c4p-es.md +++ b/content/c4p-es.md @@ -1,45 +1,45 @@ -Title: Llamado a Propuestas -Date: 2023-04-01 10:00 -Slug: c4p -Lang: es -save_as: c4p/index.html - -# Llamada a ponentes (CFP) - -## ¿Quieres ser ponente? - -Estamos felices de anunciar que la llamada a propuestas para ponencias se encuentra disponible. -Buscamos personas de todos los niveles, campos y experiencia. -**Anímate, estamos deseando aprender de ti.** - -
-

Fecha límite: 23 30 de Junio

-
-
- Enviar mi ponencia -
- -## Recomendaciones para tu propuesta - -Queremos motivar a personas con distintos niveles de experiencia en ponencias -a participar en la conferencia. Sabemos que para personas que recién comienzan, -el presentar una idea que refleje todos los detalles geniales que tu charla -incluirá puede ser confuso. - -Es importante que presentes tu idea de manera clara, pero que también puedas -dar la información necesaria para que quienes revisen, entiendan tu propuesta. - -### Estructura de tu abstract - -Una estructura simple que puedes seguir, es poder contemplar los siguientes -puntos en tu propuesta: - -* Contexto de tu charla o problema -* Definición del problema -* ¿Por qué es importante buscar una solución a ese problema? -* ¿Qué se hablará y que aprenderá la gente que asista? -* Requerimientos previos o comentarios adicionales de tu charla - -Evita los abstract de una o dos líneas que repitan la idea que ya se presenta -en el título, e intenta incluir factores que hacen tu propuesta -**¡especial y única!**. +Title: Llamado a Propuestas +Date: 2023-04-01 10:00 +Slug: c4p +Lang: es +save_as: c4p/index.html + +# Llamada a ponentes (CFP) + +## ¿Quieres ser ponente? + +Estamos felices de anunciar que la llamada a propuestas para ponencias se encuentra disponible. +Buscamos personas de todos los niveles, campos y experiencia. +**Anímate, estamos deseando aprender de ti.** + +
+

Fecha límite: 23 30 de Junio

+
+
+ Enviar mi ponencia +
+ +## Recomendaciones para tu propuesta + +Queremos motivar a personas con distintos niveles de experiencia en ponencias +a participar en la conferencia. Sabemos que para personas que recién comienzan, +el presentar una idea que refleje todos los detalles geniales que tu charla +incluirá puede ser confuso. + +Es importante que presentes tu idea de manera clara, pero que también puedas +dar la información necesaria para que quienes revisen, entiendan tu propuesta. + +### Estructura de tu abstract + +Una estructura simple que puedes seguir, es poder contemplar los siguientes +puntos en tu propuesta: + +* Contexto de tu charla o problema +* Definición del problema +* ¿Por qué es importante buscar una solución a ese problema? +* ¿Qué se hablará y que aprenderá la gente que asista? +* Requerimientos previos o comentarios adicionales de tu charla + +Evita los abstract de una o dos líneas que repitan la idea que ya se presenta +en el título, e intenta incluir factores que hacen tu propuesta +**¡especial y única!**. diff --git a/content/codigo_conducta-en.md b/content/codigo_conducta-en.md index 9a3ab5a..5f5b695 100644 --- a/content/codigo_conducta-en.md +++ b/content/codigo_conducta-en.md @@ -1,120 +1,120 @@ -Title: Code of Conduct -Date: 2023-04-01 10:00 -Slug: codigo_conducta -Lang: en -Url: en/codigo_conducta -save_as: codigo_conducta/index.html - -# Code of Conduct - -Python Spain, as an association around which different types of events are -organized, wants to ensure that all the people who participate in said events -or communications have a professional and positive learning, collaboration or -leisure experience. For this, it is expected that whoever participates in the -community shows respect and courtesy towards the rest. - -By participating in the Python Spain community, you commit to promoting -a harassment-free experience for everyone, regardless of age, body size, -visible or invisible disability, ethnicity, sexual characteristics, gender -identity and expression, level of experience , education, socioeconomic status, -national origin, personal appearance, race, religion, or sexual identity or -orientation. - -This Code of Conduct details what behaviors are expected, what is rejected and -what mechanisms exist to help a person who is being subjected to inappropriate -behavior. - -## Why a code of conduct? - -Sticking with Python zen, explicit better than implicit. Explain what is -expected of the environment in any Python Spain event: - -* Let more people know they are welcome -* Avoid ambiguities -* Build a climate of trust, where if someone wants to report an incident, they -* know that we will not start by questioning them (victim blaming). - -## Scope - -This code of conduct is applicable to all people who participate in spaces of -the Python Spain community, whether online or in person. It also applies to -public spaces where a person is representing the community. Examples of the -latter include the use of the official email account, publications through -official social networks, or presentations with designated persons at online or -offline events. Our standards - -## Our standards - -Examples of behavior that contribute to creating a positive environment for our -community: - -* Show empathy and kindness to other people. Do not insult or humiliate other - attendees. Remember that sexist, racist or discriminatory jokes are not - appropriate. They never are. -* Respect different opinions, points of view and experiences -* Appropriately give and accept constructive criticism -* Accept responsibility and apologize to those affected by our mistakes, - learning from experience -* Focus on what is best for not only us as individuals, but for the community - as a whole -* Use language that is inclusive and accommodates a diverse audience -* Pay special attention to people who are new to the community -* Introduce yourself with your pronouns and ask another person for theirs so - that there is clear and unbiased communication - -#### Examples of unacceptable behavior: - -* The use of sexualized language or images, and sexual approaches or attention - of any kind -* Derogatory trolling, insulting or derogatory comments, and personal or - political attacks -* Racist, sexist or exclusionary jokes -* Harassment in public or private -* Posting other people's private information, such as physical or email - addresses, without their explicit permission -* Other conduct that may reasonably be considered inappropriate in - a professional setting - -Harassment means offensive comments related to gender, sexual orientation, -disability, physical appearance, body size, ethnicity or religion, pornography -in public spaces, deliberate intimidation, stalking, persecution, harassment by -photographs or recordings, constant interruption of talks or other events -, inappropriate physical contact and unwanted sexual attention. - -## Compliance - -The community administration is responsible for clarifying and enforcing this -code of conduct; In the event that inappropriate behavior is determined, it -will take the actions it deems appropriate. These range from demanding the -cessation of the behavior, to the expulsion of a person from an event or from -the Association, without the right to reimbursement. Community management shall -have the right and responsibility to remove, edit, or reject messages, -comments, code, wiki page edits, tickets, and other contributions that do not -align with this code of conduct, and communicate the reasons for their -decisions. moderation when appropriate. - -## Complaint and contact information. - -Cases of abusive, harassing or otherwise unacceptable behavior may be reported -to the community managers responsible for compliance: - -* If it is an in-person event, contact the event organizers directly. They most - likely have posted an event-specific code of conduct with instructions on who - to go to; they will provide you with a safe space to help you. -* If it's an online space, get in touch with the moderators of that space. -* In the Discourse forum you can report individual posts or contact the - [moderation group](https://comunidad.es.python.org/groups/moderadores). -* In Telegram, to the person who owns the group or other administrators. -* For other spaces or alternatively, contact the Board of Directors at [contacto@es.python.org](mailto:contacto@es.python.org) - - -All community administrators are required to respect the privacy and security -of those who report incidents. - -## Attribution - -This code of conduct extends the existing one with contributions from other codes: - - -* The [Spanish version of Contributor Covenant 2.0.](https://www.contributor-covenant.org/es/version/2/0/code_of_conduct/). -* The [DjangoCon Europe 2020 code of conduct](https://2020.djangocon.eu/conduct/code_of_conduct/). +Title: Code of Conduct +Date: 2023-04-01 10:00 +Slug: codigo_conducta +Lang: en +Url: en/codigo_conducta +save_as: codigo_conducta/index.html + +# Code of Conduct + +Python Spain, as an association around which different types of events are +organized, wants to ensure that all the people who participate in said events +or communications have a professional and positive learning, collaboration or +leisure experience. For this, it is expected that whoever participates in the +community shows respect and courtesy towards the rest. + +By participating in the Python Spain community, you commit to promoting +a harassment-free experience for everyone, regardless of age, body size, +visible or invisible disability, ethnicity, sexual characteristics, gender +identity and expression, level of experience , education, socioeconomic status, +national origin, personal appearance, race, religion, or sexual identity or +orientation. + +This Code of Conduct details what behaviors are expected, what is rejected and +what mechanisms exist to help a person who is being subjected to inappropriate +behavior. + +## Why a code of conduct? + +Sticking with Python zen, explicit better than implicit. Explain what is +expected of the environment in any Python Spain event: + +* Let more people know they are welcome +* Avoid ambiguities +* Build a climate of trust, where if someone wants to report an incident, they +* know that we will not start by questioning them (victim blaming). + +## Scope + +This code of conduct is applicable to all people who participate in spaces of +the Python Spain community, whether online or in person. It also applies to +public spaces where a person is representing the community. Examples of the +latter include the use of the official email account, publications through +official social networks, or presentations with designated persons at online or +offline events. Our standards + +## Our standards + +Examples of behavior that contribute to creating a positive environment for our +community: + +* Show empathy and kindness to other people. Do not insult or humiliate other + attendees. Remember that sexist, racist or discriminatory jokes are not + appropriate. They never are. +* Respect different opinions, points of view and experiences +* Appropriately give and accept constructive criticism +* Accept responsibility and apologize to those affected by our mistakes, + learning from experience +* Focus on what is best for not only us as individuals, but for the community + as a whole +* Use language that is inclusive and accommodates a diverse audience +* Pay special attention to people who are new to the community +* Introduce yourself with your pronouns and ask another person for theirs so + that there is clear and unbiased communication + +#### Examples of unacceptable behavior: + +* The use of sexualized language or images, and sexual approaches or attention + of any kind +* Derogatory trolling, insulting or derogatory comments, and personal or + political attacks +* Racist, sexist or exclusionary jokes +* Harassment in public or private +* Posting other people's private information, such as physical or email + addresses, without their explicit permission +* Other conduct that may reasonably be considered inappropriate in + a professional setting + +Harassment means offensive comments related to gender, sexual orientation, +disability, physical appearance, body size, ethnicity or religion, pornography +in public spaces, deliberate intimidation, stalking, persecution, harassment by +photographs or recordings, constant interruption of talks or other events +, inappropriate physical contact and unwanted sexual attention. + +## Compliance + +The community administration is responsible for clarifying and enforcing this +code of conduct; In the event that inappropriate behavior is determined, it +will take the actions it deems appropriate. These range from demanding the +cessation of the behavior, to the expulsion of a person from an event or from +the Association, without the right to reimbursement. Community management shall +have the right and responsibility to remove, edit, or reject messages, +comments, code, wiki page edits, tickets, and other contributions that do not +align with this code of conduct, and communicate the reasons for their +decisions. moderation when appropriate. + +## Complaint and contact information. + +Cases of abusive, harassing or otherwise unacceptable behavior may be reported +to the community managers responsible for compliance: + +* If it is an in-person event, contact the event organizers directly. They most + likely have posted an event-specific code of conduct with instructions on who + to go to; they will provide you with a safe space to help you. +* If it's an online space, get in touch with the moderators of that space. +* In the Discourse forum you can report individual posts or contact the + [moderation group](https://comunidad.es.python.org/groups/moderadores). +* In Telegram, to the person who owns the group or other administrators. +* For other spaces or alternatively, contact the Board of Directors at [contacto@es.python.org](mailto:contacto@es.python.org) + + +All community administrators are required to respect the privacy and security +of those who report incidents. + +## Attribution + +This code of conduct extends the existing one with contributions from other codes: + + +* The [Spanish version of Contributor Covenant 2.0.](https://www.contributor-covenant.org/es/version/2/0/code_of_conduct/). +* The [DjangoCon Europe 2020 code of conduct](https://2020.djangocon.eu/conduct/code_of_conduct/). diff --git a/content/codigo_conducta-es.md b/content/codigo_conducta-es.md index b7829b2..da3ddeb 100644 --- a/content/codigo_conducta-es.md +++ b/content/codigo_conducta-es.md @@ -1,127 +1,127 @@ -Title: Código de Conducta -Date: 2023-04-01 10:00 -Slug: codigo_conducta -Lang: es -save_as: codigo_conducta/index.html - -# Código de Conducta - -Python España, como asociación en torno a la que se organizan eventos de -distintos tipos, quiere asegurar que todas las personas que participen en -dichos eventos o comunicaciones tengan una experiencia profesional y positiva -de aprendizaje, colaboración u ocio. Para ello, se espera que quien participe -en la comunidad muestre respeto y cortesía hacia el resto. - -Al participar en la comunidad de Python España, te comprometes a fomentar una -experiencia libre de acoso para todo el mundo, independientemente de la edad, -dimensión corporal, discapacidad visible o invisible, etnicidad, -características sexuales, identidad y expresión de género, nivel de -experiencia, educación, nivel socio-económico, nacionalidad, apariencia -personal, raza, religión, o identidad u orientación sexual. - -Este Código de Conducta detalla qué comportamientos se esperan, cuáles se -rechazan y qué mecanismos hay para ayudar a una persona que esté siendo objeto -de comportamientos inadecuados. - -## ¿Por qué un código de conducta? - -Siguiendo con el zen de Python, *explícito mejor que implícito*. Explicitar -qué se espera del ambiente en cualquier evento de Python España: - -* Favorece que más personas sepan que son bienvenidas -* Evita ambigüedades -* Construye un clima de confianza, donde si alguien quiere reportar un - incidente, sabrá que no empezaremos por cuestionarle (*victim - blaming*). - -## Alcance - -Este código de conducta es aplicable a todas las personas que participen en -espacios de la comunidad de Python España, ya sean en línea o presenciales. -También se aplica a espacios públicos donde una persona esté en representación -de la comunidad. Ejemplos de esto último incluyen el uso de la cuenta oficial -de correo electrónico, publicaciones a través de las redes sociales oficiales, -o presentaciones con personas designadas en eventos en línea o no. - -## Nuestros estándares - -Ejemplos de comportamiento que contribuyen a crear un ambiente positivo para -nuestra comunidad: - -* Demostrar empatía y amabilidad ante otras personas. No insultes o humilles a - otros asistentes. Recuerda que las bromas sexistas, racistas o - discriminatorias no son apropiadas. Nunca lo son. -* Respetar las diferentes opiniones, puntos de vista y experiencias -* Dar y aceptar adecuadamente críticas constructivas -* Aceptar la responsabilidad y disculparse ante quienes se vean afectados por - nuestros errores, aprendiendo de la experiencia -* Centrarse en lo que sea mejor no sólo para nosotros como individuos, sino - para la comunidad en general -* Usar un lenguaje inclusivo y que dé cabida a una audiencia diversa -* Prestar especial atención a las personas que recién llegan a la comunidad -* Presentarte con tus pronombres y preguntarle a otra persona los suyos para - que exista una comunicación clara y sin sesgo - -#### Ejemplos de comportamiento inaceptable: - -* El uso de lenguaje o imágenes sexualizadas, y aproximaciones o atenciones - sexuales de cualquier tipo -* Comentarios despectivos trolling, insultantes o derogatorios, y ataques - personales o políticos -* Bromas racistas, sexistas o excluyentes -* El acoso en público o privado -* Publicar información privada de otras personas, tales como direcciones - físicas o de correo electrónico, sin su permiso explícito -* Otras conductas que puedan ser razonablemente consideradas como inapropiadas - en un entorno profesional - -Por acoso se entiende comentarios ofensivos relacionados con género, -orientación sexual, discapacidad, apariencia física, tamaño corporal, -etnia o religión, pornografía en espacios públicos, intimidación -deliberada, acecho, persecución, acoso por fotografías o grabaciones, -constante interrupción de charlas u otros eventos, contacto físico -inapropiado y atención sexual no deseada. - -## Cumplimiento - -La administración de la comunidad es responsable de aclarar y hacer -cumplir este código de conducta; en caso de que se determine un -comportamiento inadecuado, tomará las acciones que considere oportunas. -Éstas van desde exigir el cese del comportamiento, hasta la expulsión de -una persona de un evento o de la Asociación, sin derecho a reembolso. La -administración de la comunidad tendrá el derecho y la responsabilidad de -eliminar, editar o rechazar mensajes, comentarios, -código, ediciones de páginas de wiki, tickets y otras contribuciones que -no se alineen con este código de conducta, y comunicará las razones para -sus decisiones de moderación cuando sea apropiado. - -## Denuncia e información de contacto - -Los casos de comportamiento abusivo, acosador o inaceptable de otro modo -podrán ser denunciados a las personas administradoras de la comunidad -responsables del cumplimiento: - -* Si es un evento presencial, ponte en contacto directamente con las - personas organizadoras del evento. Es muy probable que hayan - publicando un código de conducta específico del evento con - instrucciones de a quién acudir; te proporcionarán un espacio seguro - para ayudarte. -* Si se trata de un espacio en línea, ponte en contacto con las - personas moderadoras de ese espacio. -* En el foro de Discourse puedes denunciar publicaciones individuales - o contactar con el [grupo de moderación](https://comunidad.es.python.org/groups/moderadores). -* En Telegram, a la persona propietaria del grupo u otras - administradoras. -* Para otros espacios o de forma alternativa, ponte en contacto con la - Junta Directiva en [contacto@es.python.org](mailto:contacto@es.python.org) - -Todas las personas administradoras de la comunidad están obligadas a -respetar la privacidad y la seguridad de quienes denuncien incidentes. - -## Atribución - -Este código de conducta extiende el ya existente con aportaciones de otros -códigos: - -* La [versión en español del Contributor Covenant 2.0](https://www.contributor-covenant.org/es/version/2/0/code_of_conduct/). -* El [código de conducta de DjangoCon Europe 2020](https://2020.djangocon.eu/conduct/code_of_conduct/). +Title: Código de Conducta +Date: 2023-04-01 10:00 +Slug: codigo_conducta +Lang: es +save_as: codigo_conducta/index.html + +# Código de Conducta + +Python España, como asociación en torno a la que se organizan eventos de +distintos tipos, quiere asegurar que todas las personas que participen en +dichos eventos o comunicaciones tengan una experiencia profesional y positiva +de aprendizaje, colaboración u ocio. Para ello, se espera que quien participe +en la comunidad muestre respeto y cortesía hacia el resto. + +Al participar en la comunidad de Python España, te comprometes a fomentar una +experiencia libre de acoso para todo el mundo, independientemente de la edad, +dimensión corporal, discapacidad visible o invisible, etnicidad, +características sexuales, identidad y expresión de género, nivel de +experiencia, educación, nivel socio-económico, nacionalidad, apariencia +personal, raza, religión, o identidad u orientación sexual. + +Este Código de Conducta detalla qué comportamientos se esperan, cuáles se +rechazan y qué mecanismos hay para ayudar a una persona que esté siendo objeto +de comportamientos inadecuados. + +## ¿Por qué un código de conducta? + +Siguiendo con el zen de Python, *explícito mejor que implícito*. Explicitar +qué se espera del ambiente en cualquier evento de Python España: + +* Favorece que más personas sepan que son bienvenidas +* Evita ambigüedades +* Construye un clima de confianza, donde si alguien quiere reportar un + incidente, sabrá que no empezaremos por cuestionarle (*victim + blaming*). + +## Alcance + +Este código de conducta es aplicable a todas las personas que participen en +espacios de la comunidad de Python España, ya sean en línea o presenciales. +También se aplica a espacios públicos donde una persona esté en representación +de la comunidad. Ejemplos de esto último incluyen el uso de la cuenta oficial +de correo electrónico, publicaciones a través de las redes sociales oficiales, +o presentaciones con personas designadas en eventos en línea o no. + +## Nuestros estándares + +Ejemplos de comportamiento que contribuyen a crear un ambiente positivo para +nuestra comunidad: + +* Demostrar empatía y amabilidad ante otras personas. No insultes o humilles a + otros asistentes. Recuerda que las bromas sexistas, racistas o + discriminatorias no son apropiadas. Nunca lo son. +* Respetar las diferentes opiniones, puntos de vista y experiencias +* Dar y aceptar adecuadamente críticas constructivas +* Aceptar la responsabilidad y disculparse ante quienes se vean afectados por + nuestros errores, aprendiendo de la experiencia +* Centrarse en lo que sea mejor no sólo para nosotros como individuos, sino + para la comunidad en general +* Usar un lenguaje inclusivo y que dé cabida a una audiencia diversa +* Prestar especial atención a las personas que recién llegan a la comunidad +* Presentarte con tus pronombres y preguntarle a otra persona los suyos para + que exista una comunicación clara y sin sesgo + +#### Ejemplos de comportamiento inaceptable: + +* El uso de lenguaje o imágenes sexualizadas, y aproximaciones o atenciones + sexuales de cualquier tipo +* Comentarios despectivos trolling, insultantes o derogatorios, y ataques + personales o políticos +* Bromas racistas, sexistas o excluyentes +* El acoso en público o privado +* Publicar información privada de otras personas, tales como direcciones + físicas o de correo electrónico, sin su permiso explícito +* Otras conductas que puedan ser razonablemente consideradas como inapropiadas + en un entorno profesional + +Por acoso se entiende comentarios ofensivos relacionados con género, +orientación sexual, discapacidad, apariencia física, tamaño corporal, +etnia o religión, pornografía en espacios públicos, intimidación +deliberada, acecho, persecución, acoso por fotografías o grabaciones, +constante interrupción de charlas u otros eventos, contacto físico +inapropiado y atención sexual no deseada. + +## Cumplimiento + +La administración de la comunidad es responsable de aclarar y hacer +cumplir este código de conducta; en caso de que se determine un +comportamiento inadecuado, tomará las acciones que considere oportunas. +Éstas van desde exigir el cese del comportamiento, hasta la expulsión de +una persona de un evento o de la Asociación, sin derecho a reembolso. La +administración de la comunidad tendrá el derecho y la responsabilidad de +eliminar, editar o rechazar mensajes, comentarios, +código, ediciones de páginas de wiki, tickets y otras contribuciones que +no se alineen con este código de conducta, y comunicará las razones para +sus decisiones de moderación cuando sea apropiado. + +## Denuncia e información de contacto + +Los casos de comportamiento abusivo, acosador o inaceptable de otro modo +podrán ser denunciados a las personas administradoras de la comunidad +responsables del cumplimiento: + +* Si es un evento presencial, ponte en contacto directamente con las + personas organizadoras del evento. Es muy probable que hayan + publicando un código de conducta específico del evento con + instrucciones de a quién acudir; te proporcionarán un espacio seguro + para ayudarte. +* Si se trata de un espacio en línea, ponte en contacto con las + personas moderadoras de ese espacio. +* En el foro de Discourse puedes denunciar publicaciones individuales + o contactar con el [grupo de moderación](https://comunidad.es.python.org/groups/moderadores). +* En Telegram, a la persona propietaria del grupo u otras + administradoras. +* Para otros espacios o de forma alternativa, ponte en contacto con la + Junta Directiva en [contacto@es.python.org](mailto:contacto@es.python.org) + +Todas las personas administradoras de la comunidad están obligadas a +respetar la privacidad y la seguridad de quienes denuncien incidentes. + +## Atribución + +Este código de conducta extiende el ya existente con aportaciones de otros +códigos: + +* La [versión en español del Contributor Covenant 2.0](https://www.contributor-covenant.org/es/version/2/0/code_of_conduct/). +* El [código de conducta de DjangoCon Europe 2020](https://2020.djangocon.eu/conduct/code_of_conduct/). diff --git a/content/faq-en.md b/content/faq-en.md index 586a42e..1bc27f8 100644 --- a/content/faq-en.md +++ b/content/faq-en.md @@ -1,115 +1,115 @@ -Title: Frequently Asked Questions -Date: 2023-04-01 10:00 -Lang: en -Slug: faq -url: en/faq/ -save_as: faq/index.html - -# Frequently Asked Questions - -
-Which days are the tutorials and talks? -The tutorials will be held on *Friday 6th*, and the talks -will be during the *Saturday 7th, and Sunday 8th* of October. -
- -
-Where will the conference take place? -The conference will take place at the -[Guajara Campus](https://www.ull.es/la-universidad/campus/#campus_guajara) -of the [University of La Laguna](https://www.ull.es/). -
- -
-Is the conference only in Spanish? -The conference will be held **mainly in Spanish**, and depending on the accepted -talks in English, a complete **track** will be made during the days of talks. - -The main presentations, opening and closing of the event will be in Spanish, -however, all the people in the organization speak Spanish and English, in case -the people who attend need information in one of the two languages. -
- -
-Which airport is closest to the conference? -When you book your flight to the island, you will notice that there are two -airports: -[Tenerife South Airport (TFS)](https://www.aena.es/en/tenerife-sur.html) and -[Tenerife North Airport (TFN)](https://www.aena.es/en/tenerife-norte-ciudad-de-la-laguna.html/). - -The closest is the North airport (TFN) but it is possible to fly to the South -airport (TFS) and then reach the north of the island by Taxis, Buses, or by -renting a car. -
- -
-I want to present a talk, how do I do it? -If you visit the [Call for Proposals](https://2023.es.pycon.org/c4p/en/) -section you will find instructions to -create your Abstract and also a link to the platform where proposals are sent, -pretalx. - -Inside [the link](https://charlas.2023.es.pycon.org) you will find the -instructions (in English and Spanish) and -then you can start filling out the form to send your proposal. - -After submitting your proposal, you will have the ability to Edit it, so don't -worry if you have to make changes after submitting it. -
- -
-I want to sponsor but how do the add-ons work? -This year we have added a new modality to Sponsorships, Add-ons. - -After selecting a sponsorship plan, you will be able to additionally choose -elements to support the conference independently, such as "Interviews" or -"Breastfeeding Room". - -That means that you will be supporting the conference by paying for the plan -you have chosen, plus these independent elements (with limited spaces) for -specific activities. - -Keep in mind, you need to choose a sponsorship plan before choosing the -Add-ons, from the simplest (Timanfaya) to the most complete (Teide). -
- -
-I am a sponsor. How and how many tickets do I get? -**4 tickets** are reserved for sponsors with a discount associated with the -level of Sponsorship. - -Sponsoring companies or institutions will receive a special link to purchase -tickets with their respective discount. - -If a company is interested in bringing more people, attention should be paid to -the **general batch** of ticket sales. -
- - -
-I bought my ticket but I need an invoice, how do I get it? - -If in your case you need an invoice to present it to the entity that is -covering your attendance at the event, we will generate your invoice when the -event takes place or until the deadline to change the details of the conference -tickets. Mainly, due to the complexity of canceling said documents in our -infrastructure. - -Remember that the Eventbrite bill can serve as a receipt of your purchase. - -for financial purposes of your company. -
- -
-I'm a Speaker, ¿Do I need to buy a ticket? - -Every speaker have their participation in the conference guaranteed, so the dont need a ticket to assist. -If you are planning to present yourself self as a speaker,regardless of whether your proposal is accepted or not, we recommend purchasing a ticket -If your proposal is finally selected, you have several options: - - +Title: Frequently Asked Questions +Date: 2023-04-01 10:00 +Lang: en +Slug: faq +url: en/faq/ +save_as: faq/index.html + +# Frequently Asked Questions + +
+Which days are the tutorials and talks? +The tutorials will be held on *Friday 6th*, and the talks +will be during the *Saturday 7th, and Sunday 8th* of October. +
+ +
+Where will the conference take place? +The conference will take place at the +[Guajara Campus](https://www.ull.es/la-universidad/campus/#campus_guajara) +of the [University of La Laguna](https://www.ull.es/). +
+ +
+Is the conference only in Spanish? +The conference will be held **mainly in Spanish**, and depending on the accepted +talks in English, a complete **track** will be made during the days of talks. + +The main presentations, opening and closing of the event will be in Spanish, +however, all the people in the organization speak Spanish and English, in case +the people who attend need information in one of the two languages. +
+ +
+Which airport is closest to the conference? +When you book your flight to the island, you will notice that there are two +airports: +[Tenerife South Airport (TFS)](https://www.aena.es/en/tenerife-sur.html) and +[Tenerife North Airport (TFN)](https://www.aena.es/en/tenerife-norte-ciudad-de-la-laguna.html/). + +The closest is the North airport (TFN) but it is possible to fly to the South +airport (TFS) and then reach the north of the island by Taxis, Buses, or by +renting a car. +
+ +
+I want to present a talk, how do I do it? +If you visit the [Call for Proposals](https://2023.es.pycon.org/c4p/en/) +section you will find instructions to +create your Abstract and also a link to the platform where proposals are sent, +pretalx. + +Inside [the link](https://charlas.2023.es.pycon.org) you will find the +instructions (in English and Spanish) and +then you can start filling out the form to send your proposal. + +After submitting your proposal, you will have the ability to Edit it, so don't +worry if you have to make changes after submitting it. +
+ +
+I want to sponsor but how do the add-ons work? +This year we have added a new modality to Sponsorships, Add-ons. + +After selecting a sponsorship plan, you will be able to additionally choose +elements to support the conference independently, such as "Interviews" or +"Breastfeeding Room". + +That means that you will be supporting the conference by paying for the plan +you have chosen, plus these independent elements (with limited spaces) for +specific activities. + +Keep in mind, you need to choose a sponsorship plan before choosing the +Add-ons, from the simplest (Timanfaya) to the most complete (Teide). +
+ +
+I am a sponsor. How and how many tickets do I get? +**4 tickets** are reserved for sponsors with a discount associated with the +level of Sponsorship. + +Sponsoring companies or institutions will receive a special link to purchase +tickets with their respective discount. + +If a company is interested in bringing more people, attention should be paid to +the **general batch** of ticket sales. +
+ + +
+I bought my ticket but I need an invoice, how do I get it? + +If in your case you need an invoice to present it to the entity that is +covering your attendance at the event, we will generate your invoice when the +event takes place or until the deadline to change the details of the conference +tickets. Mainly, due to the complexity of canceling said documents in our +infrastructure. + +Remember that the Eventbrite bill can serve as a receipt of your purchase. + +for financial purposes of your company. +
+ +
+I'm a Speaker, ¿Do I need to buy a ticket? + +Every speaker have their participation in the conference guaranteed, so the dont need a ticket to assist. +If you are planning to present yourself self as a speaker,regardless of whether your proposal is accepted or not, we recommend purchasing a ticket +If your proposal is finally selected, you have several options: +
    +
  • You can reassign your ticket to another person who wishes to attend
  • +
  • You can request a refund
  • +
  • You can use your ticket and we will use your speaker ticket for another round of tickets (general, scholarships, etc).
  • +
+
\ No newline at end of file diff --git a/content/faq-es.md b/content/faq-es.md index 297a3ee..73a6203 100644 --- a/content/faq-es.md +++ b/content/faq-es.md @@ -1,113 +1,113 @@ -Title: Preguntas Frecuentes -Date: 2023-04-01 10:00 -Slug: faq -Lang: es -save_as: faq/index.html - -# Preguntas Frecuentes - -
-¿Qué días son los tutoriales y charlas? -Los tutoriales serán el día *Viernes 6*, y las charlas -serán los días *Sábado 7 y Domingo 8* de Octubre. -
- -
-¿En qué lugar se realizará la conferencia? -La conferencia tomará lugar en el -[Campus Guajara](https://www.ull.es/la-universidad/campus/#campus_guajara) -de la [Universidad de la Laguna](https://www.ull.es/). -
- -
-¿La conferencia es sólo en Español? -La conferencia se realizará **principalmente en Español**, y dependiendo de las -charlas aceptadas en Inglés se realizará un **track** completo durante los días -de charlas. - -Las ponencias principales, apertura y cierre del evento serán en Español, -de todas formas, todas las personas de la organización hablan Español -e Inglés, en caso que de que personas que asistan necesiten información -en uno de los dos idiomas. -
- -
-¿Qué Aeropuerto es más cercano a la conferencia? -Al momento de reservar tu vuelo a la Isla, notarás que hay dos aeropuertos -[Aeropuerto de Tenerife Sur (TFS)](https://www.aena.es/en/tenerife-sur.html) y -[Aeropuerto de Tenerife Norte (TFN)](https://www.aena.es/en/tenerife-norte-ciudad-de-la-laguna.html). - -El más cercano es el **aeropuerto Norte (TFN)** pero es posible volar al aeropuerto -del sur (TFS) y luego llegar al norte de la isla mediante Taxis, Buses, o -rentando un coche. -
- -
-Quiero presentar una charla ¿Cómo lo hago? -Si visitas la sección [Llamado de Propuestas](https://2023.es.pycon.org/c4p/) -encontrarás instrucciones para crear tu Abstract y también un enlace a la -plataforma donde se envían las propuestas, *pretalx*. - -Dentro [del enlace](https://charlas.2023.es.pycon.org) encontrarás -las instrucciones (En Inglés y Español) y luego podrás comenzar a rellenar el -formulario para enviar tu propuesta. - -Luego de enviar tu propuesta, tendrás la posibilidad de Editarla, así que no te -preocupes si tienes que hacer cambios luego de enviarla. -
- -
-Quiero patrocinar pero ¿Cómo funcionan los *add-ons*? -Este año hemos agregado a los Patrocinios, una nueva modalidad, los *Add-ons*. - -Luego de seleccionar un plan de patrocinio, podrás elegir adicionalmente -elementos para apoyar la conferencia de forma independiente, como por ejemplo, -"Entrevistas" o "Sala de lactancia". - -Eso quiere decir que estarás apoyando a la conferencia pagando el plan -que hayas elegido, más estos elementos independientes (con cupos limitados) -para actividades específicas. - -Ten en cuenta, se necesita elegir un plan de patrocinio antes de elegir los -*Add-ons*, desde el más simple (Timanfaya) hasta el más completo (Teide). -
- -
-Soy patrocinante ¿Cómo y Cuántas entradas consigo? -Se reservan **4 entradas** para patrocinantes con un descuento asociado al nivel de -Patrocinio. - -Las empresas o instituciones patrocinantes recibirán un enlace especial para -adquirir las entradas con su respectivo descuento. - -Si una empresa tiene interés en traer a más personas, se debera poner atención -a las **tandas generales** de venta de tickets. -
- -
-He comprado mi entrada y necesito una factura ¿Cómo la consigo? - -Si en tu caso necesitas una factura para presentarla a la entidad que está -cubriendo tu asistencia al evento, generaremos tu factura cuando se realice el -evento o hasta cuando se cierre el plazo para cambiar los detalles de los -tickets de la conferencia. Principalmente, por la complejidad de cancelar -dichos documentos en nuestra infraestructura. - -Recuerda que el comprobante de Eventbrite puede servir como recibo de tu compra. - -para efectos financieros de tu empresa. -
- -
-Soy Ponente, ¿tengo que comprar la entrada? - -Todas las personas que sean ponentes, tienen asegurada su participación en la conferencia, es decir no necesitan una entrada. -En caso de que tengas pensado presentarte como ponente, independiente de si tu propuesta es aceptada o no, te recomendamos adquirir una entrada. -Si finalmente tu ponencia es seleccionada, tienes varias opciones: -
    -
  • Puedes reasignar tu ticket a otra persona que desee asistir
  • -
  • Puedes solicitar un reembolso
  • -
  • Puedes utilizar tu entrada y usaremos tu entrada de speaker para otra tanda (general, becas, etc).
  • -
- -
+Title: Preguntas Frecuentes +Date: 2023-04-01 10:00 +Slug: faq +Lang: es +save_as: faq/index.html + +# Preguntas Frecuentes + +
+¿Qué días son los tutoriales y charlas? +Los tutoriales serán el día *Viernes 6*, y las charlas +serán los días *Sábado 7 y Domingo 8* de Octubre. +
+ +
+¿En qué lugar se realizará la conferencia? +La conferencia tomará lugar en el +[Campus Guajara](https://www.ull.es/la-universidad/campus/#campus_guajara) +de la [Universidad de la Laguna](https://www.ull.es/). +
+ +
+¿La conferencia es sólo en Español? +La conferencia se realizará **principalmente en Español**, y dependiendo de las +charlas aceptadas en Inglés se realizará un **track** completo durante los días +de charlas. + +Las ponencias principales, apertura y cierre del evento serán en Español, +de todas formas, todas las personas de la organización hablan Español +e Inglés, en caso que de que personas que asistan necesiten información +en uno de los dos idiomas. +
+ +
+¿Qué Aeropuerto es más cercano a la conferencia? +Al momento de reservar tu vuelo a la Isla, notarás que hay dos aeropuertos +[Aeropuerto de Tenerife Sur (TFS)](https://www.aena.es/en/tenerife-sur.html) y +[Aeropuerto de Tenerife Norte (TFN)](https://www.aena.es/en/tenerife-norte-ciudad-de-la-laguna.html). + +El más cercano es el **aeropuerto Norte (TFN)** pero es posible volar al aeropuerto +del sur (TFS) y luego llegar al norte de la isla mediante Taxis, Buses, o +rentando un coche. +
+ +
+Quiero presentar una charla ¿Cómo lo hago? +Si visitas la sección [Llamado de Propuestas](https://2023.es.pycon.org/c4p/) +encontrarás instrucciones para crear tu Abstract y también un enlace a la +plataforma donde se envían las propuestas, *pretalx*. + +Dentro [del enlace](https://charlas.2023.es.pycon.org) encontrarás +las instrucciones (En Inglés y Español) y luego podrás comenzar a rellenar el +formulario para enviar tu propuesta. + +Luego de enviar tu propuesta, tendrás la posibilidad de Editarla, así que no te +preocupes si tienes que hacer cambios luego de enviarla. +
+ +
+Quiero patrocinar pero ¿Cómo funcionan los *add-ons*? +Este año hemos agregado a los Patrocinios, una nueva modalidad, los *Add-ons*. + +Luego de seleccionar un plan de patrocinio, podrás elegir adicionalmente +elementos para apoyar la conferencia de forma independiente, como por ejemplo, +"Entrevistas" o "Sala de lactancia". + +Eso quiere decir que estarás apoyando a la conferencia pagando el plan +que hayas elegido, más estos elementos independientes (con cupos limitados) +para actividades específicas. + +Ten en cuenta, se necesita elegir un plan de patrocinio antes de elegir los +*Add-ons*, desde el más simple (Timanfaya) hasta el más completo (Teide). +
+ +
+Soy patrocinante ¿Cómo y Cuántas entradas consigo? +Se reservan **4 entradas** para patrocinantes con un descuento asociado al nivel de +Patrocinio. + +Las empresas o instituciones patrocinantes recibirán un enlace especial para +adquirir las entradas con su respectivo descuento. + +Si una empresa tiene interés en traer a más personas, se debera poner atención +a las **tandas generales** de venta de tickets. +
+ +
+He comprado mi entrada y necesito una factura ¿Cómo la consigo? + +Si en tu caso necesitas una factura para presentarla a la entidad que está +cubriendo tu asistencia al evento, generaremos tu factura cuando se realice el +evento o hasta cuando se cierre el plazo para cambiar los detalles de los +tickets de la conferencia. Principalmente, por la complejidad de cancelar +dichos documentos en nuestra infraestructura. + +Recuerda que el comprobante de Eventbrite puede servir como recibo de tu compra. + +para efectos financieros de tu empresa. +
+ +
+Soy Ponente, ¿tengo que comprar la entrada? + +Todas las personas que sean ponentes, tienen asegurada su participación en la conferencia, es decir no necesitan una entrada. +En caso de que tengas pensado presentarte como ponente, independiente de si tu propuesta es aceptada o no, te recomendamos adquirir una entrada. +Si finalmente tu ponencia es seleccionada, tienes varias opciones: +
    +
  • Puedes reasignar tu ticket a otra persona que desee asistir
  • +
  • Puedes solicitar un reembolso
  • +
  • Puedes utilizar tu entrada y usaremos tu entrada de speaker para otra tanda (general, becas, etc).
  • +
+ +
diff --git a/content/patrocinios-en.md b/content/patrocinios-en.md index 1deef46..00da7f5 100644 --- a/content/patrocinios-en.md +++ b/content/patrocinios-en.md @@ -1,15 +1,15 @@ -Title: Patrocinios -Date: 2023-04-01 10:00 -Slug: patrocinios -Lang: en -url: en/patrocinios -save_as: patrocinios/index.html - -# Sponsors - -Would you like to sponsor the next edition of the most important event on -software development with Python? Do not hesitate and contact the organization -right away by writing to -[sponsors@2023.es.pycon.org](mailto:sponsors@2023.es.pycon.org) To find out all -the advantages that our different levels of sponsorship offer you, you can -download the informative brochure: +Title: Patrocinios +Date: 2023-04-01 10:00 +Slug: patrocinios +Lang: en +url: en/patrocinios +save_as: patrocinios/index.html + +# Sponsors + +Would you like to sponsor the next edition of the most important event on +software development with Python? Do not hesitate and contact the organization +right away by writing to +[sponsors@2023.es.pycon.org](mailto:sponsors@2023.es.pycon.org) To find out all +the advantages that our different levels of sponsorship offer you, you can +download the informative brochure: diff --git a/content/patrocinios-es.md b/content/patrocinios-es.md index 73269b4..2095d35 100644 --- a/content/patrocinios-es.md +++ b/content/patrocinios-es.md @@ -1,14 +1,14 @@ -Title: Patrocinios -Date: 2023-04-01 10:00 -Slug: patrocinios -Lang: es -save_as: patrocinios/index.html - -# Patrocinios - -¿Te gustaría patrocinar la próxima edición del evento mas importante sobre -desarrollo software con Python? No lo dudes y ponte ya mismo en contacto con la -organización escribiendo al correo -[sponsors@2023.es.pycon.org](mailto:sponsors@2023.es.pycon.org) Para conocer -todas las ventajas que te ofrecen nuestros distintos niveles de patrocinio -puedes descargar el folleto informativo: +Title: Patrocinios +Date: 2023-04-01 10:00 +Slug: patrocinios +Lang: es +save_as: patrocinios/index.html + +# Patrocinios + +¿Te gustaría patrocinar la próxima edición del evento mas importante sobre +desarrollo software con Python? No lo dudes y ponte ya mismo en contacto con la +organización escribiendo al correo +[sponsors@2023.es.pycon.org](mailto:sponsors@2023.es.pycon.org) Para conocer +todas las ventajas que te ofrecen nuestros distintos niveles de patrocinio +puedes descargar el folleto informativo: diff --git a/content/viajes-en.md b/content/viajes-en.md index 5c8a20c..6f18c67 100644 --- a/content/viajes-en.md +++ b/content/viajes-en.md @@ -1,39 +1,39 @@ -Title: Viaje -Date: 2023-04-01 10:00 -Lang: en -url: en/viaje/ -save_as: viaje/index.html - -# Traveling to Tenerife - -From the organization of the PyConES we would like to offer you all possible -facilities for your trip to Tenerife. Also, if you feel like it, you can take -the opportunity to enjoy a few more days in the Canary Islands. - -## Travel Agency "Luz" - -Luz agencia travel agency logo - -For this reason, we have contacted a travel agency so that you can make your -reservations and take advantage of the best prices, enjoying a **10% discount on -hotel search engines, 6% discount on rental cars and 9% on tickets and -excursions**. - -Reservations/purchases can be made directly with the agency via phone or email. - -## Contact - -🌐 [www.luzagenciadeviajes.com](https://www.luzagenciadeviajes.com/) - -📞 [655400365](tel:655400365) *(Mondays to Fridays 08:00h-18:00h, and Saturday 08:00h-13:00h)* -([Canary Time](https://time.is/Canary_Islands)) - -📬 [info@luzagenciadeviajes.com](mailto:info@luzagenciadeviajes.com) - - +Title: Viaje +Date: 2023-04-01 10:00 +Lang: en +url: en/viaje/ +save_as: viaje/index.html + +# Traveling to Tenerife + +From the organization of the PyConES we would like to offer you all possible +facilities for your trip to Tenerife. Also, if you feel like it, you can take +the opportunity to enjoy a few more days in the Canary Islands. + +## Travel Agency "Luz" + +Luz agencia travel agency logo + +For this reason, we have contacted a travel agency so that you can make your +reservations and take advantage of the best prices, enjoying a **10% discount on +hotel search engines, 6% discount on rental cars and 9% on tickets and +excursions**. + +Reservations/purchases can be made directly with the agency via phone or email. + +## Contact + +🌐 [www.luzagenciadeviajes.com](https://www.luzagenciadeviajes.com/) + +📞 [655400365](tel:655400365) *(Mondays to Fridays 08:00h-18:00h, and Saturday 08:00h-13:00h)* +([Canary Time](https://time.is/Canary_Islands)) + +📬 [info@luzagenciadeviajes.com](mailto:info@luzagenciadeviajes.com) + + diff --git a/content/viajes-es.md b/content/viajes-es.md index c47338e..a43c8e4 100644 --- a/content/viajes-es.md +++ b/content/viajes-es.md @@ -1,40 +1,40 @@ -Title: Viaje -Date: 2023-04-01 10:00 -Lang: es -Slug: viaje -save_as: viaje/index.html - -# Viaje a Tenerife - -Desde la organización de la PyConES nos gustaría ofrecerte todas las -facilidades posibles para tu viaje a Tenerife. Además, si te apetece, puedes -aprovechar para disfrutar de unos días más en Canarias. - -## Luz Agencia de Viajes - -Logo Luz agencia de viajes - -Por ello hemos contactado con una agencia de viajes para que puedas hacer -tus reservas y aprovechar los mejores precios, disfrutando de un -**10% de descuento en los motores de búsqueda de hoteles, 6% de descuento -en coches de alquiler y 9% en tickets y excursiones** - -Las reservas/compras pueden hacerse directamente con la agencia vía teléfono -o correo electrónico. - -## Contacto - -🌐 [www.luzagenciadeviajes.com](https://www.luzagenciadeviajes.com/) - -📞 [655400365](tel:655400365) *(De lunes a viernes en horario de 8:00h a 18:00h y sábados de 8:00h a 13:00h)* -([Hora Canarias](https://time.is/Canary_Islands)) - -📬 [info@luzagenciadeviajes.com](mailto:info@luzagenciadeviajes.com) - - +Title: Viaje +Date: 2023-04-01 10:00 +Lang: es +Slug: viaje +save_as: viaje/index.html + +# Viaje a Tenerife + +Desde la organización de la PyConES nos gustaría ofrecerte todas las +facilidades posibles para tu viaje a Tenerife. Además, si te apetece, puedes +aprovechar para disfrutar de unos días más en Canarias. + +## Luz Agencia de Viajes + +Logo Luz agencia de viajes + +Por ello hemos contactado con una agencia de viajes para que puedas hacer +tus reservas y aprovechar los mejores precios, disfrutando de un +**10% de descuento en los motores de búsqueda de hoteles, 6% de descuento +en coches de alquiler y 9% en tickets y excursiones** + +Las reservas/compras pueden hacerse directamente con la agencia vía teléfono +o correo electrónico. + +## Contacto + +🌐 [www.luzagenciadeviajes.com](https://www.luzagenciadeviajes.com/) + +📞 [655400365](tel:655400365) *(De lunes a viernes en horario de 8:00h a 18:00h y sábados de 8:00h a 13:00h)* +([Hora Canarias](https://time.is/Canary_Islands)) + +📬 [info@luzagenciadeviajes.com](mailto:info@luzagenciadeviajes.com) + + diff --git a/develop_server.sh b/develop_server.sh index c4780db..1509f04 100755 --- a/develop_server.sh +++ b/develop_server.sh @@ -1,103 +1,103 @@ -#!/usr/bin/env bash -## -# This section should match your Makefile -## -PY=python3 -PELICAN=pelican -PELICANOPTS= - -BASEDIR=$(pwd) -INPUTDIR=$BASEDIR/content -OUTPUTDIR=$BASEDIR/output -CONFFILE=$BASEDIR/pelicanconf.py - -### -# Don't change stuff below here unless you are sure -### - -SRV_PID=$BASEDIR/srv.pid -PELICAN_PID=$BASEDIR/pelican.pid - -function usage(){ - echo "usage: $0 (stop) (start) (restart) [port]" - echo "This starts Pelican in debug and reload mode and then launches" - echo "an HTTP server to help site development. It doesn't read" - echo "your Pelican settings, so if you edit any paths in your Makefile" - echo "you will need to edit your settings as well." - exit 3 -} - -function alive() { - kill -0 $1 >/dev/null 2>&1 -} - -function shut_down(){ - PID=$(cat $SRV_PID) - if [[ $? -eq 0 ]]; then - if alive $PID; then - echo "Stopping HTTP server" - kill $PID - else - echo "Stale PID, deleting" - fi - rm $SRV_PID - else - echo "HTTP server PIDFile not found" - fi - - PID=$(cat $PELICAN_PID) - if [[ $? -eq 0 ]]; then - if alive $PID; then - echo "Killing Pelican" - kill $PID - else - echo "Stale PID, deleting" - fi - rm $PELICAN_PID - else - echo "Pelican PIDFile not found" - fi -} - -function start_up(){ - local port=$1 - echo "Starting up Pelican and HTTP server" - shift - $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS & - pelican_pid=$! - echo $pelican_pid > $PELICAN_PID - cd $OUTPUTDIR - $PY -m pelican.server $port & - srv_pid=$! - echo $srv_pid > $SRV_PID - cd $BASEDIR - sleep 1 - if ! alive $pelican_pid ; then - echo "Pelican didn't start. Is the Pelican package installed?" - return 1 - elif ! alive $srv_pid ; then - echo "The HTTP server didn't start. Is there another service using port 8000?" - return 1 - fi - echo 'Pelican and HTTP server processes now running in background.' -} - -### -# MAIN -### -[[ ($# -eq 0) || ($# -gt 2) ]] && usage -port='' -[[ $# -eq 2 ]] && port=$2 - -if [[ $1 == "stop" ]]; then - shut_down -elif [[ $1 == "restart" ]]; then - shut_down - start_up $port -elif [[ $1 == "start" ]]; then - if ! start_up $port; then - shut_down - fi -else - usage +#!/usr/bin/env bash +## +# This section should match your Makefile +## +PY=python3 +PELICAN=pelican +PELICANOPTS= + +BASEDIR=$(pwd) +INPUTDIR=$BASEDIR/content +OUTPUTDIR=$BASEDIR/output +CONFFILE=$BASEDIR/pelicanconf.py + +### +# Don't change stuff below here unless you are sure +### + +SRV_PID=$BASEDIR/srv.pid +PELICAN_PID=$BASEDIR/pelican.pid + +function usage(){ + echo "usage: $0 (stop) (start) (restart) [port]" + echo "This starts Pelican in debug and reload mode and then launches" + echo "an HTTP server to help site development. It doesn't read" + echo "your Pelican settings, so if you edit any paths in your Makefile" + echo "you will need to edit your settings as well." + exit 3 +} + +function alive() { + kill -0 $1 >/dev/null 2>&1 +} + +function shut_down(){ + PID=$(cat $SRV_PID) + if [[ $? -eq 0 ]]; then + if alive $PID; then + echo "Stopping HTTP server" + kill $PID + else + echo "Stale PID, deleting" + fi + rm $SRV_PID + else + echo "HTTP server PIDFile not found" + fi + + PID=$(cat $PELICAN_PID) + if [[ $? -eq 0 ]]; then + if alive $PID; then + echo "Killing Pelican" + kill $PID + else + echo "Stale PID, deleting" + fi + rm $PELICAN_PID + else + echo "Pelican PIDFile not found" + fi +} + +function start_up(){ + local port=$1 + echo "Starting up Pelican and HTTP server" + shift + $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS & + pelican_pid=$! + echo $pelican_pid > $PELICAN_PID + cd $OUTPUTDIR + $PY -m pelican.server $port & + srv_pid=$! + echo $srv_pid > $SRV_PID + cd $BASEDIR + sleep 1 + if ! alive $pelican_pid ; then + echo "Pelican didn't start. Is the Pelican package installed?" + return 1 + elif ! alive $srv_pid ; then + echo "The HTTP server didn't start. Is there another service using port 8000?" + return 1 + fi + echo 'Pelican and HTTP server processes now running in background.' +} + +### +# MAIN +### +[[ ($# -eq 0) || ($# -gt 2) ]] && usage +port='' +[[ $# -eq 2 ]] && port=$2 + +if [[ $1 == "stop" ]]; then + shut_down +elif [[ $1 == "restart" ]]; then + shut_down + start_up $port +elif [[ $1 == "start" ]]; then + if ! start_up $port; then + shut_down + fi +else + usage fi \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index aeae398..c583241 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,13 +1,13 @@ -version: "3" -services: - pelican-sitebuilder: - build: - context: . - dockerfile: DockerFile - ports: - - "8000:8000" - volumes: - - .:/project-root - environment: - - PYCONES_BUILD_TARGET=${PYCONES_BUILD_TARGET:-WEB} - command: pelican -l content -s pelicanconf.py -r --bind 0.0.0.0 +version: "3" +services: + pelican-sitebuilder: + build: + context: . + dockerfile: DockerFile + ports: + - "8000:8000" + volumes: + - .:/project-root + environment: + - PYCONES_BUILD_TARGET=${PYCONES_BUILD_TARGET:-WEB} + command: pelican -l content -s pelicanconf.py -r --bind 0.0.0.0 diff --git a/justfile b/justfile index 454de81..ab19cf9 100644 --- a/justfile +++ b/justfile @@ -1,11 +1,11 @@ -dev target="web": clean - PYCONES_BUILD_TARGET={{target}} pelican -lrv - -docker target="web": - PYCONES_BUILD_TARGET={{target}} docker compose up - -build target="web" siteurl="http://localhost:8000": clean - PYCONES_BUILD_TARGET={{target}} SITEURL={{siteurl}} pelican content -s publishconf.py - -clean: - rm -fr output/* +dev target="web": clean + PYCONES_BUILD_TARGET={{target}} pelican -lrv + +docker target="web": + PYCONES_BUILD_TARGET={{target}} docker compose up + +build target="web" siteurl="http://localhost:8000": clean + PYCONES_BUILD_TARGET={{target}} SITEURL={{siteurl}} pelican content -s publishconf.py + +clean: + rm -fr output/* diff --git a/pelicanconf.py b/pelicanconf.py index 81340a7..efd9db3 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -1,11 +1,11 @@ -import os -import sys - -sys.path.append(os.curdir) - -if os.getenv('PYCONES_BUILD_TARGET', 'LANDING').upper() == 'WEB': - from config.web import * -else: - from config.landing import * - +import os +import sys + +sys.path.append(os.curdir) + +if os.getenv('PYCONES_BUILD_TARGET', 'LANDING').upper() == 'WEB': + from config.web import * +else: + from config.landing import * + SITEURL = os.getenv('SITEURL', 'http://localhost:8000') \ No newline at end of file diff --git a/publishconf.py b/publishconf.py index 8dffb32..ebfe87f 100644 --- a/publishconf.py +++ b/publishconf.py @@ -1,19 +1,19 @@ -# This file is only used if you use `make publish` or -# explicitly specify it as your config file. - -import os -import sys - -sys.path.append(os.curdir) - -from pelicanconf import * - -# If your site is available via HTTPS, make sure SITEURL begins with https:// -RELATIVE_URLS = False - -DELETE_OUTPUT_DIRECTORY = True - -# Following items are often useful when publishing - -# DISQUS_SITENAME = "" -# GOOGLE_ANALYTICS = "" +# This file is only used if you use `make publish` or +# explicitly specify it as your config file. + +import os +import sys + +sys.path.append(os.curdir) + +from pelicanconf import * + +# If your site is available via HTTPS, make sure SITEURL begins with https:// +RELATIVE_URLS = False + +DELETE_OUTPUT_DIRECTORY = True + +# Following items are often useful when publishing + +# DISQUS_SITENAME = "" +# GOOGLE_ANALYTICS = "" diff --git a/requirements.txt b/requirements.txt index ea2f6e5..23e2755 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -pelican==4.8.0 -markdown==3.4.3 -pelican-i18n-subsites==0.9.0 -# for the job offers -pandas +pelican==4.8.0 +markdown==3.4.3 +pelican-i18n-subsites==0.9.0 +# for the job offers +pandas diff --git a/theme/pycones-landing/static/assets/css/style.css b/theme/pycones-landing/static/assets/css/style.css index 0d89062..ada8f46 100644 --- a/theme/pycones-landing/static/assets/css/style.css +++ b/theme/pycones-landing/static/assets/css/style.css @@ -1,240 +1,240 @@ -html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; -} - -@media screen and (max-width: 1024px) { - html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing-800.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; - } -} - -body { - text-align: center; - color: white; -} - - -.container { - display: flex; - align-items: center; - justify-content: center; - padding-top: 5%; -} - -img { - max-width: 100%; -} - -.image { - flex-basis: 40% -} - -.social { - padding: 10px; - color: #5202bd; -} - -.purple { - color: #5202bd; -} - -.full { - width: 100%; - display: flex; - flex-direction: column; -} - -.box { - display: flex; - flex-direction: column; - background-color: rgba(255, 255, 255, 0.7); - margin: 0 4% 0 4%; - font-size: 20pt; -} - -@media screen and (max-width: 1024px) { - .box { - font-size: 14pt; - } -} - -.arrow { - cursor: pointer; - display: block; - padding-top: 10%; -} - -.spacer-middle { - min-height: 100vw; -} - -.spacer-bottom { - min-height: 20vw; -} - -h2 { - font-weight: 200; -} - -/* Rotating digits */ - - -@keyframes rotating-zero { - from { transform: rotateX(0deg); } - to { transform: rotateX(360deg); } -} - -.rotate-zero { - animation-duration: 5s; - animation-name: rotating-zero; -} - -@keyframes rotating-one { - from { transform: rotateX(0deg); } - to { transform: rotateX(324deg); } -} - -.rotate-one { - animation-duration: 4.5s; - animation-name: rotating-one; -} - -@keyframes rotating-two { - from { transform: rotateX(0deg); } - to { transform: rotateX(288deg); } -} - -.rotate-two { - animation-duration: 4s; - animation-name: rotating-two; -} - -@keyframes rotating-three { - from { transform: rotateX(0deg); } - to { transform: rotateX(252deg); } -} - -.rotate-three { - animation-duration: 3.5s; - animation-name: rotating-three; -} - -@keyframes rotating-four { - from { transform: rotateX(0deg); } - to { transform: rotateX(216deg); } -} - -.rotate-four { - animation-duration: 3s; - animation-name: rotating-four; -} - -@keyframes rotating-five { - from { transform: rotateX(0deg); } - to { transform: rotateX(180deg); } -} - -.rotate-five { - animation-duration: 2.5s; - animation-name: rotating-five; -} - -@keyframes rotating-six { - from { transform: rotateX(0deg); } - to { transform: rotateX(144deg); } -} - -.rotate-six { - animation-duration: 2s; - animation-name: rotating-six; -} - -@keyframes rotating-seven { - from { transform: rotateX(0deg); } - to { transform: rotateX(108deg); } -} - -.rotate-seven { - animation-duration: 1.5s; - animation-name: rotating-seven; -} - -@keyframes rotating-eight { - from { transform: rotateX(0deg); } - to { transform: rotateX(72deg); } -} - -.rotate-eight { - animation-duration: 1s; - animation-name: rotating-eight; -} - -@keyframes rotating-nine { - from { transform: rotateX(0deg); } - to { transform: rotateX(36deg); } -} - -.rotate-nine { - animation-duration: 0.5s; - animation-name: rotating-nine; -} - -.cylinder { - position: relative; - z-index: -1; - display: block; - margin-top: 0.5em; - animation-iteration-count: 1; - animation-delay: 750ms; - animation-timing-function: ease-out; - transform-style: preserve-3d; - animation-fill-mode: forwards; -} - -.cylinder > b { - position: absolute; - top: -0.5em; - left: 0; - display: block; - width: 1em; - height: 1em; - text-align: center; - line-height: 1.0; - backface-visibility: hidden; -} - -.digit { - display: inline-block; - overflow: hidden; - font-size: 110%; - width: 0.9em; - height: 1em; - border: 0; - vertical-align: middle; - font-weight: bolder; -} - -.cylinder > b.zero { transform: rotateX( 0deg) translateZ(1.538em); } -.cylinder > b.one { transform: rotateX( 36deg) translateZ(1.538em); } -.cylinder > b.two { transform: rotateX( 72deg) translateZ(1.538em); } -.cylinder > b.three { transform: rotateX(108deg) translateZ(1.538em); } -.cylinder > b.four { transform: rotateX(144deg) translateZ(1.538em); } -.cylinder > b.five { transform: rotateX(180deg) translateZ(1.538em); } -.cylinder > b.six { transform: rotateX(216deg) translateZ(1.538em); } -.cylinder > b.seven { transform: rotateX(252deg) translateZ(1.538em); } -.cylinder > b.eight { transform: rotateX(288deg) translateZ(1.538em); } -.cylinder > b.nine { transform: rotateX(324deg) translateZ(1.538em); } +html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; +} + +@media screen and (max-width: 1024px) { + html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing-800.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; + } +} + +body { + text-align: center; + color: white; +} + + +.container { + display: flex; + align-items: center; + justify-content: center; + padding-top: 5%; +} + +img { + max-width: 100%; +} + +.image { + flex-basis: 40% +} + +.social { + padding: 10px; + color: #5202bd; +} + +.purple { + color: #5202bd; +} + +.full { + width: 100%; + display: flex; + flex-direction: column; +} + +.box { + display: flex; + flex-direction: column; + background-color: rgba(255, 255, 255, 0.7); + margin: 0 4% 0 4%; + font-size: 20pt; +} + +@media screen and (max-width: 1024px) { + .box { + font-size: 14pt; + } +} + +.arrow { + cursor: pointer; + display: block; + padding-top: 10%; +} + +.spacer-middle { + min-height: 100vw; +} + +.spacer-bottom { + min-height: 20vw; +} + +h2 { + font-weight: 200; +} + +/* Rotating digits */ + + +@keyframes rotating-zero { + from { transform: rotateX(0deg); } + to { transform: rotateX(360deg); } +} + +.rotate-zero { + animation-duration: 5s; + animation-name: rotating-zero; +} + +@keyframes rotating-one { + from { transform: rotateX(0deg); } + to { transform: rotateX(324deg); } +} + +.rotate-one { + animation-duration: 4.5s; + animation-name: rotating-one; +} + +@keyframes rotating-two { + from { transform: rotateX(0deg); } + to { transform: rotateX(288deg); } +} + +.rotate-two { + animation-duration: 4s; + animation-name: rotating-two; +} + +@keyframes rotating-three { + from { transform: rotateX(0deg); } + to { transform: rotateX(252deg); } +} + +.rotate-three { + animation-duration: 3.5s; + animation-name: rotating-three; +} + +@keyframes rotating-four { + from { transform: rotateX(0deg); } + to { transform: rotateX(216deg); } +} + +.rotate-four { + animation-duration: 3s; + animation-name: rotating-four; +} + +@keyframes rotating-five { + from { transform: rotateX(0deg); } + to { transform: rotateX(180deg); } +} + +.rotate-five { + animation-duration: 2.5s; + animation-name: rotating-five; +} + +@keyframes rotating-six { + from { transform: rotateX(0deg); } + to { transform: rotateX(144deg); } +} + +.rotate-six { + animation-duration: 2s; + animation-name: rotating-six; +} + +@keyframes rotating-seven { + from { transform: rotateX(0deg); } + to { transform: rotateX(108deg); } +} + +.rotate-seven { + animation-duration: 1.5s; + animation-name: rotating-seven; +} + +@keyframes rotating-eight { + from { transform: rotateX(0deg); } + to { transform: rotateX(72deg); } +} + +.rotate-eight { + animation-duration: 1s; + animation-name: rotating-eight; +} + +@keyframes rotating-nine { + from { transform: rotateX(0deg); } + to { transform: rotateX(36deg); } +} + +.rotate-nine { + animation-duration: 0.5s; + animation-name: rotating-nine; +} + +.cylinder { + position: relative; + z-index: -1; + display: block; + margin-top: 0.5em; + animation-iteration-count: 1; + animation-delay: 750ms; + animation-timing-function: ease-out; + transform-style: preserve-3d; + animation-fill-mode: forwards; +} + +.cylinder > b { + position: absolute; + top: -0.5em; + left: 0; + display: block; + width: 1em; + height: 1em; + text-align: center; + line-height: 1.0; + backface-visibility: hidden; +} + +.digit { + display: inline-block; + overflow: hidden; + font-size: 110%; + width: 0.9em; + height: 1em; + border: 0; + vertical-align: middle; + font-weight: bolder; +} + +.cylinder > b.zero { transform: rotateX( 0deg) translateZ(1.538em); } +.cylinder > b.one { transform: rotateX( 36deg) translateZ(1.538em); } +.cylinder > b.two { transform: rotateX( 72deg) translateZ(1.538em); } +.cylinder > b.three { transform: rotateX(108deg) translateZ(1.538em); } +.cylinder > b.four { transform: rotateX(144deg) translateZ(1.538em); } +.cylinder > b.five { transform: rotateX(180deg) translateZ(1.538em); } +.cylinder > b.six { transform: rotateX(216deg) translateZ(1.538em); } +.cylinder > b.seven { transform: rotateX(252deg) translateZ(1.538em); } +.cylinder > b.eight { transform: rotateX(288deg) translateZ(1.538em); } +.cylinder > b.nine { transform: rotateX(324deg) translateZ(1.538em); } diff --git a/theme/pycones-landing/templates/CNAME b/theme/pycones-landing/templates/CNAME index 56f4ac6..926a284 100644 --- a/theme/pycones-landing/templates/CNAME +++ b/theme/pycones-landing/templates/CNAME @@ -1 +1 @@ -2023.es.pycon.org +2023.es.pycon.org diff --git a/theme/pycones-landing/templates/assets/css/style.css b/theme/pycones-landing/templates/assets/css/style.css index 5945a54..45e3c73 100644 --- a/theme/pycones-landing/templates/assets/css/style.css +++ b/theme/pycones-landing/templates/assets/css/style.css @@ -1,92 +1,92 @@ -html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; -} - -@media screen and (max-width: 1024px) { - html { - background-position-y: 5%; - background: url(../graphics/ilustracion_landing-800.png); - background-repeat: no-repeat; - background-size: cover; - background-color: #b062dc; - background-position: center; - font-family: 'Inter', sans-serif; - overflow-x: hidden; - } -} - -body { - text-align: center; - color: white; -} - - -.container { - display: flex; - align-items: center; - justify-content: center; - padding-top: 5%; -} - -img { - max-width: 100%; -} - -.image { - flex-basis: 40% -} - -.social { - padding: 10px; - color: #5202bd; -} - -.purple { - color: #5202bd; -} - -.full { - width: 100%; - display: flex; - flex-direction: column; -} - -.box { - display: flex; - flex-direction: column; - background-color: rgba(255, 255, 255, 0.7); - margin: 0 4% 0 4%; - font-size: 20pt; -} - -@media screen and (max-width: 1024px) { - .box { - font-size: 14pt; - } -} - -.arrow { - cursor: pointer; - display: block; - padding-top: 10%; -} - -.spacer-middle { - min-height: 100vw; -} - -.spacer-bottom { - min-height: 20vw; -} - -h2 { - font-weight: 200; -} - +html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; +} + +@media screen and (max-width: 1024px) { + html { + background-position-y: 5%; + background: url(../graphics/ilustracion_landing-800.png); + background-repeat: no-repeat; + background-size: cover; + background-color: #b062dc; + background-position: center; + font-family: 'Inter', sans-serif; + overflow-x: hidden; + } +} + +body { + text-align: center; + color: white; +} + + +.container { + display: flex; + align-items: center; + justify-content: center; + padding-top: 5%; +} + +img { + max-width: 100%; +} + +.image { + flex-basis: 40% +} + +.social { + padding: 10px; + color: #5202bd; +} + +.purple { + color: #5202bd; +} + +.full { + width: 100%; + display: flex; + flex-direction: column; +} + +.box { + display: flex; + flex-direction: column; + background-color: rgba(255, 255, 255, 0.7); + margin: 0 4% 0 4%; + font-size: 20pt; +} + +@media screen and (max-width: 1024px) { + .box { + font-size: 14pt; + } +} + +.arrow { + cursor: pointer; + display: block; + padding-top: 10%; +} + +.spacer-middle { + min-height: 100vw; +} + +.spacer-bottom { + min-height: 20vw; +} + +h2 { + font-weight: 200; +} + diff --git a/theme/pycones-landing/templates/index.html b/theme/pycones-landing/templates/index.html index 71e8491..319b362 100644 --- a/theme/pycones-landing/templates/index.html +++ b/theme/pycones-landing/templates/index.html @@ -1,188 +1,188 @@ - - - - - - - - - - - - - - - - - PyConES 2023 - Tenerife - - -
-
- -
-
-
-

Conferencia Nacional de Python en España
Un universo tecnológico al alcance de tu mano y con sabor isleño

-
-
-

6, 7 y 8 de octubre, Tenerife

-

Faltan - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - - - - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - - - - - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - - -días!

- -
-
- -
-
-
-

- Esta aventura de código está a punto de suceder.
- Próximamente más información. -

-
-
- - - - - - -
-
- - - - - - + + + + + + + + + + + + + + + + + PyConES 2023 - Tenerife + + +
+
+ +
+
+
+

Conferencia Nacional de Python en España
Un universo tecnológico al alcance de tu mano y con sabor isleño

+
+
+

6, 7 y 8 de octubre, Tenerife

+

Faltan + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + +días!

+ +
+
+ +
+
+
+

+ Esta aventura de código está a punto de suceder.
+ Próximamente más información. +

+
+
+ + + + + + +
+
+ + + + + + diff --git a/theme/pycones23/static/assets/css/main.css b/theme/pycones23/static/assets/css/main.css index 91094b6..a390a80 100644 --- a/theme/pycones23/static/assets/css/main.css +++ b/theme/pycones23/static/assets/css/main.css @@ -1,1353 +1,1353 @@ -:root { - --white: #fff; - --black: #000; - --black-02: rgba(0, 0, 0, 0.2); - --black-04: rgba(0, 0, 0, 0.4); - --gray-1: #2b2b2b; - --gray-2: #757575; - --gray-3: #ccc; - --purple-dark: #5202c5; - --purple-mid: #8800c4; - --purple-light: #9c06de; - --purple-opacity-07: rgb(8 4 38 / 7%); - --purple-opactiy-12: rgb(8 4 38 / 12%); - --orange-light: #f991a1; - --orange-mid: #e78f3c; - --orange-dark: #fa7109; - --red: #d63114; - --blue: #1d4bc9; - --yellow: #ffd500; - --yellow-dark: #f8a800; - --pink: #c91d84; - --fallback-background-color: #5362ff; - - --background-color: var(--white); - --light-text-color: var(--white); - --dark-text-color: var(--black); - --text-color: var(--gray-1); - --purple-color: var(--purple-mid); - --timeline: var(--purple-dark); - --hover-opacity: var(--purple-opacity-07); - --selected-opacity: var(--purple-opactiy-12); - --social-media-hover: var(--black); - --accent-color: var(--orange-light); - --python-tag: var(--blue); - --info-tag: var(--gray-2); - --highlight-color: var(--yellow); - --benefit-color: var(--yellow-dark); - --warning: var(--red); - --shadow-color: var(--black-02); - --shadow-color-dark: var(--black-04); - --purple-gradient: linear-gradient( - 45deg, - var(--purple-mid), - var(--purple-light) - ); - --orange-gradient: linear-gradient( - 135deg, - var(--orange-dark) 0%, - var(--red) 100% - ); - --purple-orange-gradient: linear-gradient( - 135deg, - var(--purple-mid) 0%, - var(--orange-dark) 100% - ); - --yellow-orange-gradient: linear-gradient( - -45deg, - var(--yellow), - var(--orange-mid) - ); - --blue-pink-gradient: linear-gradient( - 135deg, - var(--blue) 0%, - var(--pink) 100% - ); - --orange-color: #f96f09; -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -body, -h1, -h2, -h3, -h4, -p { - margin: 0; -} - -h4 { - color: var(--accent-color); -} - -a { - text-decoration: none; - color: var(--purple-color); - font-weight: bold; -} - -h2 { - color: var(--purple-color); -} - -body { - min-height: 100vh; - display: flex; - flex-direction: column; - background-color: var(--background-color); - font-family: Raleway, Arial, Helvetica, sans-serif; - color: var(--dark-text-color); - line-height: 1.5; -} - -.highlight { - color: var(--purple-color); -} - -/* HEADER */ -.header { - display: flex; - flex-direction: column; - background: var(--blue-pink-gradient); - color: var(--light-text-color); -} - -.header .logo-wrapper { - display: flex; - justify-content: center; - margin: 1rem 0; -} - -.header .logo { - height: 5rem; -} - -.header .menu { - display: flex; - flex: 1; - flex-wrap: wrap; -} - -.header .menu .menu-link { - display: flex; - flex: 1 1 50%; - padding: 1rem; - align-items: center; - justify-content: center; - text-align: center; - color: white; - font-weight: normal; -} - -.header .menu .menu-link:hover { - background-color: var(--hover-opacity); -} - -.header .menu .menu-link.menu-link-active { - background-color: var(--selected-opacity); -} - - -/* Estilos del menú burger */ -.menu-icon { - display: none; /* Oculta el ícono del menú en resoluciones grandes */ -} - -.menu { - display: none; /* Oculta el menú en resoluciones grandes */ -} - -#menu-toggle { -display: none; -} - - -@media only screen and (max-width: 768px) { - .menu-icon { - display: inline-block; - cursor: pointer; - font-size: 20px; - padding: 10px; - } - - .header .menu { - display: none; - } - .menu { - display: none; - } - - #menu-toggle:checked ~ .menu { - display: block; - } - - .menu ul { - display: block; - } - - .menu li { - display: block; - } - - .menu li a { - padding: 10px 20px; - } -} - - - - - -/* MAIN */ -.subtitle { - color: var(--dark-text-color); -} -.news-box { - background: var(--orange-gradient); - color: var(--light-text-color); - padding: 30px; - margin-top: 5%; - margin-bottom: 5%; - display: flex; - flex-direction: column; - justify-content: center; - border-radius: 10px; -} -.news-title { - font-weight: bold; - padding-bottom: 20px; -} - -.news-box .news-content p { - color: var(--light-text-color); -} - -.box-addons { - border-radius: 10px; - background-color: var(--background-color); -} - -.box-addons > h2 { - justify-content: center; - text-align: center; - padding-top: 3%; -} - -.box-content { - padding: 5px; - display: flex; - flex-direction: column; - justify-content: center; - border-radius: 10px; - background-color: var(--background-color); -} -.box-content > div > img { - width: 200px; -} - -.card { - display: block; - box-shadow: 0 4px 8px 0 var(--shadow-color); - transition: 0.3s; - width: 40%; - padding: 10px; - margin: 10px; -} -.card > div > img { - width: 200px; -} -.card_image { - height: 50%; - margin-top: 40px; -} - -.card:hover { - box-shadow: 0 8px 16px 0 var(--shadow-color); -} - -.container { - padding: 2px 16px; -} - -.caption { - font-size: 1.8rem; - text-align: center; - line-height: 2em; -} - -/* CONTENT */ -.content-wrapper { - display: flex; - flex: 1; - justify-content: center; -} - -.content-wrapper .content { - padding: 1.8rem 1.2rem 2.6rem 1.2rem; - width: 100%; - max-width: 70rem; -} - -.content-wrapper .content h1 { - font-size: 1.8rem; - font-weight: 400; - margin-bottom: 1rem; -} - -.button { - background: var(--purple-gradient); - border: none; - color: var(--light-text-color); - text-align: center; - text-decoration: none; - display: inline-block; - font-size: 1rem; - padding: 1rem 2.7rem; - border-radius: 2px; -} -.button:hover, -.button:focus { - opacity: 0.9; -} - -.center { - margin: auto; - width: 50%; - text-align: center; -} - -.center-buttons { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 1rem; -} - -.button-container { - display: flex; - justify-content: center; - align-items: center; -} - -.button-becas { - padding: 10px 20px; - margin: 5px; - background-color: #9524dc; - color: white; - border: none; - border-radius: 5px; - font-size: 16px; - cursor: pointer; -} - -section.center { - width: 100vw; -} - -section > iframe { - width: 100vw; -} - -.important-title { - background-color: #f6e7ae; - margin-top: 10px; - margin-bottom: 10px; - width: 80%; -} - -.content-wrapper .content p { - margin-top: 1rem; - margin-bottom: 1rem; - /* color: var(--text-color); */ -} -.box-intro { - color: var(--light-text-color); - font-weight: bold; - padding: 50px; - margin-top: 5%; - margin-bottom: 5%; - display: flex; - flex-direction: column; - justify-content: center; - border-radius: 10px; - opacity: 1.2; - background-color: var(--fallback-background-color); - background-image: url("../images/fondo_expo.png"); - background-repeat: no-repeat; - background-position: 80% 10%; - background-size: cover; -} - -.box-intro > .intro > p { - color: var(--light-text-color); -} - -.box-intro > h1 > img { - width: 200px; -} -.box-intro > .intro > .big-text { - color: var(--light-text-color); - font-size: 30px; -} - -@media (min-width: 17rem) { - .card { - width: 100%; - } -} - -@media (min-width: 22.5rem) { - .box-intro { - flex-direction: row; - } - .box-content { - flex-direction: row; - } - .caption { - font-size: 0.8rem; - } - .card { - width: 100%; - } -} - -@media (min-width: 40rem) { - .content-wrapper .content { - padding: 1.5rem 2rem 2.3rem 2rem; - } - .card { - width: 100%; - } -} - -@media (min-width: 22.5rem) { - .box-intro { - display: block; - padding: 50px; - } - .box-content { - display: block; - padding: 10px; - } - .card { - width: 100%; - } -} - -@media (min-width: 30rem) { - .header .menu .menu-link { - flex: 1 1 33.333%; - } - .card { - width: 100%; - } -} - -@media (min-width: 63rem) { - .header { - flex-direction: row; - background: var(--blue-pink-gradient); - color: var(--light-text-color); - } - - .header .logo-wrapper { - margin: 0; - padding-left: 0.75rem; - padding-right: 6rem; - } - - .header .logo-wrapper:hover { - background-color: var(--hover-opacity); - } - - .header .menu { - justify-content: right; - flex-wrap: nowrap; - } - - .header .menu .menu-link { - flex: none; - padding: 1rem 1.75rem; - } - - .header .menu .menu-link-tickets { - border-left: 1px solid var(--shadow-color); - } - - .box-intro { - display: flex; - } - - .box-intro > h1 > img { - width: 400px; - } - - .box-content { - display: flex; - } - - .box-content > div > img { - width: 150px; - } -} - -/* FOOTER */ -.footer { - display: flex; - flex-direction: column; - flex-wrap: wrap; -} - -.footer .footer-section { - padding: 1rem; -} - -.footer .links { - display: flex; - gap: 0.5rem 1.5rem; - flex-wrap: wrap; - justify-content: center; -} - -.footer .links .li { - padding: 0.5rem 1rem; -} -.footer .links .li:hover { - color: var(--dark-text-color); -} - -.footer .social { - text-align: center; - padding-bottom: 1.5rem; -} - -.footer .social .social-link { - padding: 0 0.5rem; -} - -.social-link:hover { - color: var(--social-media-hover); -} - -@media (min-width: 22.5rem) { - .footer { - flex-direction: row; - align-items: center; - background: var(--purple-orange-gradient); - color: var(--light-text-color); - } - - .footer .footer-section { - padding: 1.3rem 1.5rem; - } - - .footer .links { - flex: 1; - justify-content: left; - } - - .footer .social { - display: flex; - align-items: flex-end; - justify-content: right; - font-size: 0.8rem; - } - .caption { - font-size: 0.8rem; - } - .card { - width: 100%; - } -} -/* -Código de conducta -*/ -.examples { - font-size: 16px; - color: var(--warning); -} - -.text-white { - color: white; -} - -/* -Ediciones Anteriores -*/ - -.wrapper { - display: grid; - grid-template-columns: repeat(3, 1fr); - grid-gap: 20px; -} - -.card { - border: 1px solid var(--gray-3); - overflow: hidden; - text-align: center; - transition: all 0.2s ease-in-out; - background-color: var(--background-color); -} - -.card__image-container { - position: relative; - padding-top: 100%; /* sets the height of the container equal to its width */ - overflow: hidden; -} - -.card__image-container img { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - margin: auto; - width: 100%; - height: 100%; - object-fit: contain; -} - -.card__content { - padding: 10px; -} - -@media (max-width: 768px) { - .wrapper { - grid-template-columns: 1fr; - } -} - -/* -Gradiente para menú ticket -*/ -.menu-link-tickets:hover { - background: var(--blue-pink-gradient); - background-size: 100% 100%; - animation: gradient 15s ease infinite; - color: var(--light-text-color); -} - -/* -Background image -*/ - -.highlight-box { - display: inline-block; -} -.highlight-box:before { - content: " "; - display: block; - height: 90%; - width: 100%; - margin-left: -3px; - margin-right: -3px; - position: absolute; - background: var(--highlight-color); - transform: rotate(3deg); - top: -1px; - left: -1px; - border-radius: 20% 25% 20% 24%; - padding: 10px 3px 3px 10px; -} - -.brochure { - width: 500px; -} -/* -Sección de fotos polaroid -*/ - -.polaroid { - background: var(--background-color); - padding: 1rem; - width: 200px; - box-shadow: 0 0.2rem 1.2rem var(--shadow-color); -} - -.polaroid > img { - max-width: 100%; - height: auto; -} - -.item { - display: inline-block; - margin-top: 2rem; - filter: grayscale(100%); -} -.item .polaroid:before { - content: ""; - position: absolute; - z-index: -1; - transition: all 0.35s; -} -.item:nth-of-type(4n + 1) { - transform: scale(0.8, 0.8) rotate(5deg); - transition: all 0.35s; -} -.item:nth-of-type(4n + 1) .polaroid:before { - transform: rotate(6deg); - height: 20%; - width: 47%; - bottom: 30px; - right: 12px; - box-shadow: 0 2.1rem 2rem var(--shadow-color-dark); -} -.item:nth-of-type(4n + 2) { - transform: scale(0.8, 0.8) rotate(-5deg); - transition: all 0.35s; -} -.item:nth-of-type(4n + 2) .polaroid:before { - transform: rotate(-6deg); - height: 20%; - width: 47%; - bottom: 30px; - left: 12px; - box-shadow: 0 2.1rem 2rem var(--shadow-color-dark); -} -.item:nth-of-type(4n + 4) { - transform: scale(0.8, 0.8) rotate(3deg); - transition: all 0.35s; -} -.item:nth-of-type(4n + 4) .polaroid:before { - transform: rotate(4deg); - height: 20%; - width: 47%; - bottom: 30px; - right: 12px; - box-shadow: 0 2.1rem 2rem var(--shadow-color); -} -.item:nth-of-type(4n + 3) { - transform: scale(0.8, 0.8) rotate(-3deg); - transition: all 0.35s; -} -.item:nth-of-type(4n + 3) .polaroid:before { - transform: rotate(-4deg); - height: 20%; - width: 47%; - bottom: 30px; - left: 12px; - box-shadow: 0 2.1rem 2rem var(--shadow-color); -} -.item:hover { - filter: none; - transform: scale(2.8, 2.8) rotate(0deg) !important; - transition: all 0.35s; - position: relative; - z-index: 1; -} -.item:hover .polaroid:before { - content: ""; - z-index: -1; - position: absolute; - - transform: rotate(0deg); - height: 90%; - width: 90%; - bottom: 0%; - right: 5%; - box-shadow: 0 1rem 3rem var(--shadow-color); - transition: all 0.35s; -} - -.row { - display: flex; - flex-wrap: wrap; - padding: 0 4px; -} - -/* Create four equal columns that sits next to each other */ -.column { - flex: 25%; - max-width: 25%; - padding: 0 4px; -} - -.column img { - margin-top: 8px; - vertical-align: middle; - width: 100%; -} - -/* Responsive layout - makes a two column-layout instead of four columns */ -@media screen and (max-width: 800px) { - .column { - flex: 50%; - max-width: 50%; - } -} - -/* Responsive layout - makes the two columns stack on top of each other instead of next to each other */ -@media screen and (max-width: 600px) { - .column { - flex: 100%; - max-width: 100%; - } -} - -.linea-tiempo { - position: relative; - width: 500px; - max-width: 100%; - font-family: Arial; -} - -.linea-tiempo::before { - content: ""; - position: absolute; - width: 3px; - background-color: var(--timeline); - left: 50%; - height: 100%; - border-radius: 10px; -} - -.momento { - position: relative; - width: 45%; - box-sizing: border-box; -} - -.momento:nth-child(even) { - left: 55%; -} - -.momento::after { - content: ""; - position: absolute; - top: calc(50% + 10px); - right: calc(-11.11% - 11.5px); - height: 20px; - width: 20px; - background-color: var(--timeline); - border-radius: 50%; -} - -.momento:nth-child(even)::after { - left: calc(-11.11% - 8.5px); -} - -.momento h3 { - font-size: 14px; - text-align: center; - color: var(--dark-text-color); -} - -.momento .descripcion { - background-color: var(--accent-color); - border-radius: 10px; - padding: 10px; - line-height: 22px; - color: var(--dark-text-color); - font-size: 14px; -} - -.momento .descripcion::after { - content: ""; - position: absolute; - right: -10px; - top: calc(50% + 10px); - height: 0; - width: 0; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - border-left: 12px solid var(--accent-color); -} - -.momento:nth-child(even) .descripcion { - background-color: var(--accent-color); - color: var(--dark-text-color); -} - -.momento:nth-child(even) .descripcion::after { - left: -10px; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - border-right: 12px solid var(--accent-color); - border-left: none; -} - -/* Patrocinios */ -.plans-table-scroller { - overflow-x: auto; -} - -.plans-table { - background-color: var(--background-color); - width: 100%; - font-size: 0.8rem; - text-align: center; - margin-top: 3rem; - margin-bottom: 1px; - border-collapse: collapse; -} - -.plans-table th, -.plans-table td { - padding: 0.7rem 0.5rem; -} - -.plans-table thead tr { - background-color: var(--purple-color); - border: 1px solid var(--purple-color); - color: var(--light-text-color); - font-weight: bold; -} -.plans-table thead tr th .plan-image { - display: none; -} - -.plans-table tbody tr { - border: 1px solid #161c3d69; -} -.plans-table tbody tr td.benefit-title { - text-align: left; - min-width: 8rem; -} -.plans-table tbody tr td.discount { - background-color: var(--accent-color); -} -.plans-table tbody tr td.has-benefit { - background-color: var(--benefit-color); -} - -@media screen and (min-width: 32rem) { - .plans-table { - font-size: 0.9rem; - } - .card { - width: 100%; - } -} - -@media screen and (min-width: 50rem) { - .plans-table { - font-size: 1rem; - } - - .plans-table th, - .plans-table td { - padding: 0.7rem 0.9rem; - } - - .plans-table thead tr th .plan-image { - display: inline-block; - width: 7rem; - } - .plans-table thead tr th .plan-title { - display: none; - } - .card { - width: 100%; - } -} - -/* Organización*/ -.list-item { - flex-wrap: nowrap !important; - padding: 1.5rem !important; -} - -.list-item-image { - margin-left: 0.5rem; - margin-right: 2rem; -} - -.list-item-image .image { - margin: 0; - height: 4rem; - width: 4rem; -} - -.image img { - display: block; - height: auto; - width: 100%; -} - -.image img.is-rounded { - border-radius: 99999px; -} - -.list-item-content { - flex-direction: column; - gap: 1rem; - line-height: 0.8; - padding: 0; -} - -.list-item-info { - display: flex; - flex-direction: column; - flex: 1; -} - -.list-item-description { - font-size: 0.9rem; - color: var(--dark-text-color); -} - -.social-buttons { - display: flex; - align-items: center; - flex-wrap: wrap; - gap: 0.7rem; -} - -.social-button { - background-color: var(--purple-color); - color: var(--light-text-color); - border-color: 1px solid var(--gray-1); - border-radius: 4px; - box-shadow: none; - display: inline-flex; - border-width: 1px; - cursor: pointer; - justify-content: center; - text-align: center; - white-space: nowrap; - padding: 0.8em 1em 0.8em 1em; -} - -.tag { - display: inline-block; - background-color: var(--python-tag); - border-radius: 5px; - padding: 0.4rem; - margin-bottom: 0.3rem; - color: var(--light-text-color); -} - -.org-is-info { - background-color: var(--info-tag); -} - -.job-is-info { - background-color: var(--python-tag); -} - -.job-button { - padding: 0.5rem; -} - -.job-tag { - color: #4a4a4a; - background-color: whitesmoke; -} - -@media screen and (min-width: 40rem) { - .list-item-content { - flex-direction: row; - gap: 2rem; - } -} - -/* Viaje */ - -img.logo-agencia-viajes { - display: block; - margin-left: auto; - margin-right: auto; - width: 200px; - margin-top: 1rem; - margin-bottom: 1rem; -} - -a.boton-reserva { - margin-top: 1rem; - margin-bottom: 1rem; -} - -.languages { - font-size: 1.1rem; -} - -.languages ul > li { - display: inline; - float: right; - margin-right: 20px; -} - -.languages ul > li > a { - color: gray; -} - - -.languages ul > li.lang-active > a { - color: var(--orange-color); -} - - -/* For the FAQ section */ -details[open] summary ~ * { - animation: open 0.2s ease-in-out; -} - -@keyframes open { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -details summary::-webkit-details-marker { - display: none; -} - -details summary { - width: 100%; - padding: 0.5rem 0; - border-top: 1px solid var(--purple-color); - position: relative; - cursor: pointer; - font-size: 1.25rem; - font-weight: 300; - list-style: none; -} - -details summary:after { - content: "+"; - color: black; - position: absolute; - font-size: 1.75rem; - line-height: 0; - margin-top: 0.75rem; - right: 0; - font-weight: 300; - transform-origin: center; - transition: 200ms linear; - color: var(--purple-color); -} - -details[open] summary:after { - transform: rotate(45deg); - font-size: 2rem; -} - -details summary { - outline: 0; - font-weight: 400; -} - -details p { - font-size: 1rem; - margin: 0 0 1rem; - padding-top: 1rem; -} - - - - -/* Sponsor cards */ -.card { - display: grid; - /*grid-template-rows: max-content 100px;*/ - box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); -} - -.card img { - object-fit: cover; - width: 100%; - height: 100%; -} - -/* sponsor special */ -.special-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(180px, 10%)); - grid-gap: 20px; -} - -/* Timanfaya */ -.timanfaya-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(180px, 10%)); - grid-gap: 20px; -} - -/* Teneguía */ -.teneguia-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 20%)); - grid-gap: 20px; -} - -/* Tamadaba */ -.tamadaba-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(245px, 30%)); - grid-gap: 20px; -} - -/* Teide */ -.teide-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(250px, 40%)); - grid-gap: 20px; -} - - - - -@media (max-width: 600px) { - .special-grid { grid-template-columns: repeat(2, 1fr); } - .timanfaya-grid { grid-template-columns: repeat(2, 1fr); } - .teneguia-grid { grid-template-columns: repeat(2, 1fr); } - .tamadaba-grid { grid-template-columns: repeat(1, 1fr); } - .teide-grid { grid-template-columns: repeat(1, 1fr); } -} - -.title-badge { - display: inline-block; - font-size: 1.5rem; - margin-top: 2%; -} - -.title-badge img { - vertical-align: middle; - width: 20%; -} - -.sponsor-figure { - margin: 5px; -} - -.special { - margin: 0; -} - -/*keynotter*/ - -.keynoter { - position: relative; - margin-bottom: 60px; -} - - -.keynoter__img { - - border-radius: 25px; - height: 250px; - width: 250px; - right: 78%; - top: 10%; - position: absolute; - border-radius: 50%; -} - - -.keynoter__img>img { - max-width: 100%; - max-height: 100%; - - border-radius: 50%; - border: 10px solid rebeccapurple; - box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); -} - -.keynoter__content { - padding-left: 25%; - width: 95%; - max-width: 800px; - margin: auto; - background: #fff; - box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); - padding-top: 5%; - padding-left: 15%; - padding-right: 5%; - border-radius: 25px; - height: 300px; - background-image: url("../images/burbuja_landing.png"); - background-repeat: no-repeat; - background-position: left; -} - -.keynoter__content>h2 { - text-align: center; - font-size: 30px; -} - -.social>a { - font-size: large; -} - -@media(max-width: 1200px) { - - .keynoter { - margin-bottom: 100px; - } - - .keynoter__img { - border-radius: 25px; - height: 250px; - width: 250px; - position: absolute; - border-radius: 50%; - display: flex; - top: 0%; - left: 50%; - transform: translate(-50%, -50%); - } - - - - - .keynoter__content { - max-width: 800px; - margin-top: 20%; - background: #fff; - box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); - padding-top: 130px; - padding-left: 5%; - padding-right: 5%; - padding-bottom: 5%; - height: auto; - border-radius: 25px; - background-image: url("../images/burbuja_landing.png"); - background-repeat: no-repeat; - background-position: left; - } - - .keynoter__content>h2 { - text-align: center; - } - - .social>a { - font-size: large; - } - -} - - -@media(max-width: 600px) { - .keynoter { - margin-bottom: 90px; - } - - .keynoter__img { - - height: 200px; - width: 200px; - - } - - .keynoter__img>img { - - margin: 10%; - } - - .keynoter__content { - padding-top: 18%; - margin-top: 20%; - - } -} - -.agotado { - background-color: gray !important; -} +:root { + --white: #fff; + --black: #000; + --black-02: rgba(0, 0, 0, 0.2); + --black-04: rgba(0, 0, 0, 0.4); + --gray-1: #2b2b2b; + --gray-2: #757575; + --gray-3: #ccc; + --purple-dark: #5202c5; + --purple-mid: #8800c4; + --purple-light: #9c06de; + --purple-opacity-07: rgb(8 4 38 / 7%); + --purple-opactiy-12: rgb(8 4 38 / 12%); + --orange-light: #f991a1; + --orange-mid: #e78f3c; + --orange-dark: #fa7109; + --red: #d63114; + --blue: #1d4bc9; + --yellow: #ffd500; + --yellow-dark: #f8a800; + --pink: #c91d84; + --fallback-background-color: #5362ff; + + --background-color: var(--white); + --light-text-color: var(--white); + --dark-text-color: var(--black); + --text-color: var(--gray-1); + --purple-color: var(--purple-mid); + --timeline: var(--purple-dark); + --hover-opacity: var(--purple-opacity-07); + --selected-opacity: var(--purple-opactiy-12); + --social-media-hover: var(--black); + --accent-color: var(--orange-light); + --python-tag: var(--blue); + --info-tag: var(--gray-2); + --highlight-color: var(--yellow); + --benefit-color: var(--yellow-dark); + --warning: var(--red); + --shadow-color: var(--black-02); + --shadow-color-dark: var(--black-04); + --purple-gradient: linear-gradient( + 45deg, + var(--purple-mid), + var(--purple-light) + ); + --orange-gradient: linear-gradient( + 135deg, + var(--orange-dark) 0%, + var(--red) 100% + ); + --purple-orange-gradient: linear-gradient( + 135deg, + var(--purple-mid) 0%, + var(--orange-dark) 100% + ); + --yellow-orange-gradient: linear-gradient( + -45deg, + var(--yellow), + var(--orange-mid) + ); + --blue-pink-gradient: linear-gradient( + 135deg, + var(--blue) 0%, + var(--pink) 100% + ); + --orange-color: #f96f09; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +body, +h1, +h2, +h3, +h4, +p { + margin: 0; +} + +h4 { + color: var(--accent-color); +} + +a { + text-decoration: none; + color: var(--purple-color); + font-weight: bold; +} + +h2 { + color: var(--purple-color); +} + +body { + min-height: 100vh; + display: flex; + flex-direction: column; + background-color: var(--background-color); + font-family: Raleway, Arial, Helvetica, sans-serif; + color: var(--dark-text-color); + line-height: 1.5; +} + +.highlight { + color: var(--purple-color); +} + +/* HEADER */ +.header { + display: flex; + flex-direction: column; + background: var(--blue-pink-gradient); + color: var(--light-text-color); +} + +.header .logo-wrapper { + display: flex; + justify-content: center; + margin: 1rem 0; +} + +.header .logo { + height: 5rem; +} + +.header .menu { + display: flex; + flex: 1; + flex-wrap: wrap; +} + +.header .menu .menu-link { + display: flex; + flex: 1 1 50%; + padding: 1rem; + align-items: center; + justify-content: center; + text-align: center; + color: white; + font-weight: normal; +} + +.header .menu .menu-link:hover { + background-color: var(--hover-opacity); +} + +.header .menu .menu-link.menu-link-active { + background-color: var(--selected-opacity); +} + + +/* Estilos del menú burger */ +.menu-icon { + display: none; /* Oculta el ícono del menú en resoluciones grandes */ +} + +.menu { + display: none; /* Oculta el menú en resoluciones grandes */ +} + +#menu-toggle { +display: none; +} + + +@media only screen and (max-width: 768px) { + .menu-icon { + display: inline-block; + cursor: pointer; + font-size: 20px; + padding: 10px; + } + + .header .menu { + display: none; + } + .menu { + display: none; + } + + #menu-toggle:checked ~ .menu { + display: block; + } + + .menu ul { + display: block; + } + + .menu li { + display: block; + } + + .menu li a { + padding: 10px 20px; + } +} + + + + + +/* MAIN */ +.subtitle { + color: var(--dark-text-color); +} +.news-box { + background: var(--orange-gradient); + color: var(--light-text-color); + padding: 30px; + margin-top: 5%; + margin-bottom: 5%; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 10px; +} +.news-title { + font-weight: bold; + padding-bottom: 20px; +} + +.news-box .news-content p { + color: var(--light-text-color); +} + +.box-addons { + border-radius: 10px; + background-color: var(--background-color); +} + +.box-addons > h2 { + justify-content: center; + text-align: center; + padding-top: 3%; +} + +.box-content { + padding: 5px; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 10px; + background-color: var(--background-color); +} +.box-content > div > img { + width: 200px; +} + +.card { + display: block; + box-shadow: 0 4px 8px 0 var(--shadow-color); + transition: 0.3s; + width: 40%; + padding: 10px; + margin: 10px; +} +.card > div > img { + width: 200px; +} +.card_image { + height: 50%; + margin-top: 40px; +} + +.card:hover { + box-shadow: 0 8px 16px 0 var(--shadow-color); +} + +.container { + padding: 2px 16px; +} + +.caption { + font-size: 1.8rem; + text-align: center; + line-height: 2em; +} + +/* CONTENT */ +.content-wrapper { + display: flex; + flex: 1; + justify-content: center; +} + +.content-wrapper .content { + padding: 1.8rem 1.2rem 2.6rem 1.2rem; + width: 100%; + max-width: 70rem; +} + +.content-wrapper .content h1 { + font-size: 1.8rem; + font-weight: 400; + margin-bottom: 1rem; +} + +.button { + background: var(--purple-gradient); + border: none; + color: var(--light-text-color); + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 1rem; + padding: 1rem 2.7rem; + border-radius: 2px; +} +.button:hover, +.button:focus { + opacity: 0.9; +} + +.center { + margin: auto; + width: 50%; + text-align: center; +} + +.center-buttons { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 1rem; +} + +.button-container { + display: flex; + justify-content: center; + align-items: center; +} + +.button-becas { + padding: 10px 20px; + margin: 5px; + background-color: #9524dc; + color: white; + border: none; + border-radius: 5px; + font-size: 16px; + cursor: pointer; +} + +section.center { + width: 100vw; +} + +section > iframe { + width: 100vw; +} + +.important-title { + background-color: #f6e7ae; + margin-top: 10px; + margin-bottom: 10px; + width: 80%; +} + +.content-wrapper .content p { + margin-top: 1rem; + margin-bottom: 1rem; + /* color: var(--text-color); */ +} +.box-intro { + color: var(--light-text-color); + font-weight: bold; + padding: 50px; + margin-top: 5%; + margin-bottom: 5%; + display: flex; + flex-direction: column; + justify-content: center; + border-radius: 10px; + opacity: 1.2; + background-color: var(--fallback-background-color); + background-image: url("../images/fondo_expo.png"); + background-repeat: no-repeat; + background-position: 80% 10%; + background-size: cover; +} + +.box-intro > .intro > p { + color: var(--light-text-color); +} + +.box-intro > h1 > img { + width: 200px; +} +.box-intro > .intro > .big-text { + color: var(--light-text-color); + font-size: 30px; +} + +@media (min-width: 17rem) { + .card { + width: 100%; + } +} + +@media (min-width: 22.5rem) { + .box-intro { + flex-direction: row; + } + .box-content { + flex-direction: row; + } + .caption { + font-size: 0.8rem; + } + .card { + width: 100%; + } +} + +@media (min-width: 40rem) { + .content-wrapper .content { + padding: 1.5rem 2rem 2.3rem 2rem; + } + .card { + width: 100%; + } +} + +@media (min-width: 22.5rem) { + .box-intro { + display: block; + padding: 50px; + } + .box-content { + display: block; + padding: 10px; + } + .card { + width: 100%; + } +} + +@media (min-width: 30rem) { + .header .menu .menu-link { + flex: 1 1 33.333%; + } + .card { + width: 100%; + } +} + +@media (min-width: 63rem) { + .header { + flex-direction: row; + background: var(--blue-pink-gradient); + color: var(--light-text-color); + } + + .header .logo-wrapper { + margin: 0; + padding-left: 0.75rem; + padding-right: 6rem; + } + + .header .logo-wrapper:hover { + background-color: var(--hover-opacity); + } + + .header .menu { + justify-content: right; + flex-wrap: nowrap; + } + + .header .menu .menu-link { + flex: none; + padding: 1rem 1.75rem; + } + + .header .menu .menu-link-tickets { + border-left: 1px solid var(--shadow-color); + } + + .box-intro { + display: flex; + } + + .box-intro > h1 > img { + width: 400px; + } + + .box-content { + display: flex; + } + + .box-content > div > img { + width: 150px; + } +} + +/* FOOTER */ +.footer { + display: flex; + flex-direction: column; + flex-wrap: wrap; +} + +.footer .footer-section { + padding: 1rem; +} + +.footer .links { + display: flex; + gap: 0.5rem 1.5rem; + flex-wrap: wrap; + justify-content: center; +} + +.footer .links .li { + padding: 0.5rem 1rem; +} +.footer .links .li:hover { + color: var(--dark-text-color); +} + +.footer .social { + text-align: center; + padding-bottom: 1.5rem; +} + +.footer .social .social-link { + padding: 0 0.5rem; +} + +.social-link:hover { + color: var(--social-media-hover); +} + +@media (min-width: 22.5rem) { + .footer { + flex-direction: row; + align-items: center; + background: var(--purple-orange-gradient); + color: var(--light-text-color); + } + + .footer .footer-section { + padding: 1.3rem 1.5rem; + } + + .footer .links { + flex: 1; + justify-content: left; + } + + .footer .social { + display: flex; + align-items: flex-end; + justify-content: right; + font-size: 0.8rem; + } + .caption { + font-size: 0.8rem; + } + .card { + width: 100%; + } +} +/* +Código de conducta +*/ +.examples { + font-size: 16px; + color: var(--warning); +} + +.text-white { + color: white; +} + +/* +Ediciones Anteriores +*/ + +.wrapper { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 20px; +} + +.card { + border: 1px solid var(--gray-3); + overflow: hidden; + text-align: center; + transition: all 0.2s ease-in-out; + background-color: var(--background-color); +} + +.card__image-container { + position: relative; + padding-top: 100%; /* sets the height of the container equal to its width */ + overflow: hidden; +} + +.card__image-container img { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: auto; + width: 100%; + height: 100%; + object-fit: contain; +} + +.card__content { + padding: 10px; +} + +@media (max-width: 768px) { + .wrapper { + grid-template-columns: 1fr; + } +} + +/* +Gradiente para menú ticket +*/ +.menu-link-tickets:hover { + background: var(--blue-pink-gradient); + background-size: 100% 100%; + animation: gradient 15s ease infinite; + color: var(--light-text-color); +} + +/* +Background image +*/ + +.highlight-box { + display: inline-block; +} +.highlight-box:before { + content: " "; + display: block; + height: 90%; + width: 100%; + margin-left: -3px; + margin-right: -3px; + position: absolute; + background: var(--highlight-color); + transform: rotate(3deg); + top: -1px; + left: -1px; + border-radius: 20% 25% 20% 24%; + padding: 10px 3px 3px 10px; +} + +.brochure { + width: 500px; +} +/* +Sección de fotos polaroid +*/ + +.polaroid { + background: var(--background-color); + padding: 1rem; + width: 200px; + box-shadow: 0 0.2rem 1.2rem var(--shadow-color); +} + +.polaroid > img { + max-width: 100%; + height: auto; +} + +.item { + display: inline-block; + margin-top: 2rem; + filter: grayscale(100%); +} +.item .polaroid:before { + content: ""; + position: absolute; + z-index: -1; + transition: all 0.35s; +} +.item:nth-of-type(4n + 1) { + transform: scale(0.8, 0.8) rotate(5deg); + transition: all 0.35s; +} +.item:nth-of-type(4n + 1) .polaroid:before { + transform: rotate(6deg); + height: 20%; + width: 47%; + bottom: 30px; + right: 12px; + box-shadow: 0 2.1rem 2rem var(--shadow-color-dark); +} +.item:nth-of-type(4n + 2) { + transform: scale(0.8, 0.8) rotate(-5deg); + transition: all 0.35s; +} +.item:nth-of-type(4n + 2) .polaroid:before { + transform: rotate(-6deg); + height: 20%; + width: 47%; + bottom: 30px; + left: 12px; + box-shadow: 0 2.1rem 2rem var(--shadow-color-dark); +} +.item:nth-of-type(4n + 4) { + transform: scale(0.8, 0.8) rotate(3deg); + transition: all 0.35s; +} +.item:nth-of-type(4n + 4) .polaroid:before { + transform: rotate(4deg); + height: 20%; + width: 47%; + bottom: 30px; + right: 12px; + box-shadow: 0 2.1rem 2rem var(--shadow-color); +} +.item:nth-of-type(4n + 3) { + transform: scale(0.8, 0.8) rotate(-3deg); + transition: all 0.35s; +} +.item:nth-of-type(4n + 3) .polaroid:before { + transform: rotate(-4deg); + height: 20%; + width: 47%; + bottom: 30px; + left: 12px; + box-shadow: 0 2.1rem 2rem var(--shadow-color); +} +.item:hover { + filter: none; + transform: scale(2.8, 2.8) rotate(0deg) !important; + transition: all 0.35s; + position: relative; + z-index: 1; +} +.item:hover .polaroid:before { + content: ""; + z-index: -1; + position: absolute; + + transform: rotate(0deg); + height: 90%; + width: 90%; + bottom: 0%; + right: 5%; + box-shadow: 0 1rem 3rem var(--shadow-color); + transition: all 0.35s; +} + +.row { + display: flex; + flex-wrap: wrap; + padding: 0 4px; +} + +/* Create four equal columns that sits next to each other */ +.column { + flex: 25%; + max-width: 25%; + padding: 0 4px; +} + +.column img { + margin-top: 8px; + vertical-align: middle; + width: 100%; +} + +/* Responsive layout - makes a two column-layout instead of four columns */ +@media screen and (max-width: 800px) { + .column { + flex: 50%; + max-width: 50%; + } +} + +/* Responsive layout - makes the two columns stack on top of each other instead of next to each other */ +@media screen and (max-width: 600px) { + .column { + flex: 100%; + max-width: 100%; + } +} + +.linea-tiempo { + position: relative; + width: 500px; + max-width: 100%; + font-family: Arial; +} + +.linea-tiempo::before { + content: ""; + position: absolute; + width: 3px; + background-color: var(--timeline); + left: 50%; + height: 100%; + border-radius: 10px; +} + +.momento { + position: relative; + width: 45%; + box-sizing: border-box; +} + +.momento:nth-child(even) { + left: 55%; +} + +.momento::after { + content: ""; + position: absolute; + top: calc(50% + 10px); + right: calc(-11.11% - 11.5px); + height: 20px; + width: 20px; + background-color: var(--timeline); + border-radius: 50%; +} + +.momento:nth-child(even)::after { + left: calc(-11.11% - 8.5px); +} + +.momento h3 { + font-size: 14px; + text-align: center; + color: var(--dark-text-color); +} + +.momento .descripcion { + background-color: var(--accent-color); + border-radius: 10px; + padding: 10px; + line-height: 22px; + color: var(--dark-text-color); + font-size: 14px; +} + +.momento .descripcion::after { + content: ""; + position: absolute; + right: -10px; + top: calc(50% + 10px); + height: 0; + width: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-left: 12px solid var(--accent-color); +} + +.momento:nth-child(even) .descripcion { + background-color: var(--accent-color); + color: var(--dark-text-color); +} + +.momento:nth-child(even) .descripcion::after { + left: -10px; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 12px solid var(--accent-color); + border-left: none; +} + +/* Patrocinios */ +.plans-table-scroller { + overflow-x: auto; +} + +.plans-table { + background-color: var(--background-color); + width: 100%; + font-size: 0.8rem; + text-align: center; + margin-top: 3rem; + margin-bottom: 1px; + border-collapse: collapse; +} + +.plans-table th, +.plans-table td { + padding: 0.7rem 0.5rem; +} + +.plans-table thead tr { + background-color: var(--purple-color); + border: 1px solid var(--purple-color); + color: var(--light-text-color); + font-weight: bold; +} +.plans-table thead tr th .plan-image { + display: none; +} + +.plans-table tbody tr { + border: 1px solid #161c3d69; +} +.plans-table tbody tr td.benefit-title { + text-align: left; + min-width: 8rem; +} +.plans-table tbody tr td.discount { + background-color: var(--accent-color); +} +.plans-table tbody tr td.has-benefit { + background-color: var(--benefit-color); +} + +@media screen and (min-width: 32rem) { + .plans-table { + font-size: 0.9rem; + } + .card { + width: 100%; + } +} + +@media screen and (min-width: 50rem) { + .plans-table { + font-size: 1rem; + } + + .plans-table th, + .plans-table td { + padding: 0.7rem 0.9rem; + } + + .plans-table thead tr th .plan-image { + display: inline-block; + width: 7rem; + } + .plans-table thead tr th .plan-title { + display: none; + } + .card { + width: 100%; + } +} + +/* Organización*/ +.list-item { + flex-wrap: nowrap !important; + padding: 1.5rem !important; +} + +.list-item-image { + margin-left: 0.5rem; + margin-right: 2rem; +} + +.list-item-image .image { + margin: 0; + height: 4rem; + width: 4rem; +} + +.image img { + display: block; + height: auto; + width: 100%; +} + +.image img.is-rounded { + border-radius: 99999px; +} + +.list-item-content { + flex-direction: column; + gap: 1rem; + line-height: 0.8; + padding: 0; +} + +.list-item-info { + display: flex; + flex-direction: column; + flex: 1; +} + +.list-item-description { + font-size: 0.9rem; + color: var(--dark-text-color); +} + +.social-buttons { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 0.7rem; +} + +.social-button { + background-color: var(--purple-color); + color: var(--light-text-color); + border-color: 1px solid var(--gray-1); + border-radius: 4px; + box-shadow: none; + display: inline-flex; + border-width: 1px; + cursor: pointer; + justify-content: center; + text-align: center; + white-space: nowrap; + padding: 0.8em 1em 0.8em 1em; +} + +.tag { + display: inline-block; + background-color: var(--python-tag); + border-radius: 5px; + padding: 0.4rem; + margin-bottom: 0.3rem; + color: var(--light-text-color); +} + +.org-is-info { + background-color: var(--info-tag); +} + +.job-is-info { + background-color: var(--python-tag); +} + +.job-button { + padding: 0.5rem; +} + +.job-tag { + color: #4a4a4a; + background-color: whitesmoke; +} + +@media screen and (min-width: 40rem) { + .list-item-content { + flex-direction: row; + gap: 2rem; + } +} + +/* Viaje */ + +img.logo-agencia-viajes { + display: block; + margin-left: auto; + margin-right: auto; + width: 200px; + margin-top: 1rem; + margin-bottom: 1rem; +} + +a.boton-reserva { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.languages { + font-size: 1.1rem; +} + +.languages ul > li { + display: inline; + float: right; + margin-right: 20px; +} + +.languages ul > li > a { + color: gray; +} + + +.languages ul > li.lang-active > a { + color: var(--orange-color); +} + + +/* For the FAQ section */ +details[open] summary ~ * { + animation: open 0.2s ease-in-out; +} + +@keyframes open { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +details summary::-webkit-details-marker { + display: none; +} + +details summary { + width: 100%; + padding: 0.5rem 0; + border-top: 1px solid var(--purple-color); + position: relative; + cursor: pointer; + font-size: 1.25rem; + font-weight: 300; + list-style: none; +} + +details summary:after { + content: "+"; + color: black; + position: absolute; + font-size: 1.75rem; + line-height: 0; + margin-top: 0.75rem; + right: 0; + font-weight: 300; + transform-origin: center; + transition: 200ms linear; + color: var(--purple-color); +} + +details[open] summary:after { + transform: rotate(45deg); + font-size: 2rem; +} + +details summary { + outline: 0; + font-weight: 400; +} + +details p { + font-size: 1rem; + margin: 0 0 1rem; + padding-top: 1rem; +} + + + + +/* Sponsor cards */ +.card { + display: grid; + /*grid-template-rows: max-content 100px;*/ + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); +} + +.card img { + object-fit: cover; + width: 100%; + height: 100%; +} + +/* sponsor special */ +.special-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(180px, 10%)); + grid-gap: 20px; +} + +/* Timanfaya */ +.timanfaya-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(180px, 10%)); + grid-gap: 20px; +} + +/* Teneguía */ +.teneguia-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 20%)); + grid-gap: 20px; +} + +/* Tamadaba */ +.tamadaba-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(245px, 30%)); + grid-gap: 20px; +} + +/* Teide */ +.teide-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 40%)); + grid-gap: 20px; +} + + + + +@media (max-width: 600px) { + .special-grid { grid-template-columns: repeat(2, 1fr); } + .timanfaya-grid { grid-template-columns: repeat(2, 1fr); } + .teneguia-grid { grid-template-columns: repeat(2, 1fr); } + .tamadaba-grid { grid-template-columns: repeat(1, 1fr); } + .teide-grid { grid-template-columns: repeat(1, 1fr); } +} + +.title-badge { + display: inline-block; + font-size: 1.5rem; + margin-top: 2%; +} + +.title-badge img { + vertical-align: middle; + width: 20%; +} + +.sponsor-figure { + margin: 5px; +} + +.special { + margin: 0; +} + +/*keynotter*/ + +.keynoter { + position: relative; + margin-bottom: 60px; +} + + +.keynoter__img { + + border-radius: 25px; + height: 250px; + width: 250px; + right: 78%; + top: 10%; + position: absolute; + border-radius: 50%; +} + + +.keynoter__img>img { + max-width: 100%; + max-height: 100%; + + border-radius: 50%; + border: 10px solid rebeccapurple; + box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); +} + +.keynoter__content { + padding-left: 25%; + width: 95%; + max-width: 800px; + margin: auto; + background: #fff; + box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); + padding-top: 5%; + padding-left: 15%; + padding-right: 5%; + border-radius: 25px; + height: 300px; + background-image: url("../images/burbuja_landing.png"); + background-repeat: no-repeat; + background-position: left; +} + +.keynoter__content>h2 { + text-align: center; + font-size: 30px; +} + +.social>a { + font-size: large; +} + +@media(max-width: 1200px) { + + .keynoter { + margin-bottom: 100px; + } + + .keynoter__img { + border-radius: 25px; + height: 250px; + width: 250px; + position: absolute; + border-radius: 50%; + display: flex; + top: 0%; + left: 50%; + transform: translate(-50%, -50%); + } + + + + + .keynoter__content { + max-width: 800px; + margin-top: 20%; + background: #fff; + box-shadow: 0px 14px 80px rgba(34, 35, 58, 0.2); + padding-top: 130px; + padding-left: 5%; + padding-right: 5%; + padding-bottom: 5%; + height: auto; + border-radius: 25px; + background-image: url("../images/burbuja_landing.png"); + background-repeat: no-repeat; + background-position: left; + } + + .keynoter__content>h2 { + text-align: center; + } + + .social>a { + font-size: large; + } + +} + + +@media(max-width: 600px) { + .keynoter { + margin-bottom: 90px; + } + + .keynoter__img { + + height: 200px; + width: 200px; + + } + + .keynoter__img>img { + + margin: 10%; + } + + .keynoter__content { + padding-top: 18%; + margin-top: 20%; + + } +} + +.agotado { + background-color: gray !important; +} diff --git a/theme/pycones23/templates/CNAME b/theme/pycones23/templates/CNAME index 56f4ac6..926a284 100644 --- a/theme/pycones23/templates/CNAME +++ b/theme/pycones23/templates/CNAME @@ -1 +1 @@ -2023.es.pycon.org +2023.es.pycon.org diff --git a/theme/pycones23/templates/article.html b/theme/pycones23/templates/article.html index 82ea0e6..fd4e454 100644 --- a/theme/pycones23/templates/article.html +++ b/theme/pycones23/templates/article.html @@ -1,16 +1,16 @@ -{% extends 'base.html' %} - -{% block content %} -{% if article.slug == "organizacion" %} -{{ article.content }} -{% include 'lista-organizacion.html' %} -{% elif article.slug == "patrocinios" %} -{{ article.content }} -{% include 'tabla-patrocinios.html' %} -{% elif article.slug == "ofertas" %} -{{ article.content }} -{% include 'lista-ofertas.html' %} -{% else %} -{{ article.content }} -{% endif %} -{% endblock %} +{% extends 'base.html' %} + +{% block content %} +{% if article.slug == "organizacion" %} +{{ article.content }} +{% include 'lista-organizacion.html' %} +{% elif article.slug == "patrocinios" %} +{{ article.content }} +{% include 'tabla-patrocinios.html' %} +{% elif article.slug == "ofertas" %} +{{ article.content }} +{% include 'lista-ofertas.html' %} +{% else %} +{{ article.content }} +{% endif %} +{% endblock %} diff --git a/theme/pycones23/templates/base.html b/theme/pycones23/templates/base.html index 93a72ae..f1e0f8e 100644 --- a/theme/pycones23/templates/base.html +++ b/theme/pycones23/templates/base.html @@ -1,72 +1,72 @@ - - - - - - - - - - - - PyConEs Canarias 2023 - - - - -
- - - - - {% include "navbar.html" %} -
- -
- -
    - {% if lang_siteurls %} - {% for lang, url in lang_siteurls.items() %} - {% set _url = extra_siteurls.get(lang, SITEURL) + "/" + output_file | replace("index.html", "") %} - {% if '/en/en/' in _url | string %} - {% set _url = _url | replace ('/en/en/', '/en/') %} - {% endif %} - {{ lang | lookup_lang_name }} - {% endfor %} - {% endif %} -
- -
- -
-
{% block content %} {% endblock content %}
-
- -
- {% include "footer-links.html" %} {% include "social-media.html" %} -
- - + + + + + + + + + + + + PyConEs Canarias 2023 + + + + +
+ + + + + {% include "navbar.html" %} +
+ +
+ +
    + {% if lang_siteurls %} + {% for lang, url in lang_siteurls.items() %} + {% set _url = extra_siteurls.get(lang, SITEURL) + "/" + output_file | replace("index.html", "") %} + {% if '/en/en/' in _url | string %} + {% set _url = _url | replace ('/en/en/', '/en/') %} + {% endif %} + {{ lang | lookup_lang_name }} + {% endfor %} + {% endif %} +
+ +
+ +
+
{% block content %} {% endblock content %}
+
+ +
+ {% include "footer-links.html" %} {% include "social-media.html" %} +
+ + diff --git a/theme/pycones23/templates/ediciones_anteriores.html b/theme/pycones23/templates/ediciones_anteriores.html index e78a73a..faed7e6 100644 --- a/theme/pycones23/templates/ediciones_anteriores.html +++ b/theme/pycones23/templates/ediciones_anteriores.html @@ -1,29 +1,29 @@ -{% extends 'base.html' %} - - - -{% block content %} - -

- Ediciones anteriores -

- - -
- {% for edition in PAST_EDITIONS %} - - {% endfor %} -
- - - -{% endblock content %} +{% extends 'base.html' %} + + + +{% block content %} + +

+ Ediciones anteriores +

+ + +
+ {% for edition in PAST_EDITIONS %} + + {% endfor %} +
+ + + +{% endblock content %} diff --git a/theme/pycones23/templates/footer-links.html b/theme/pycones23/templates/footer-links.html index dd6c7dd..355e14b 100644 --- a/theme/pycones23/templates/footer-links.html +++ b/theme/pycones23/templates/footer-links.html @@ -1,5 +1,5 @@ - + diff --git a/theme/pycones23/templates/index.html b/theme/pycones23/templates/index.html index 022dc57..2a96d89 100644 --- a/theme/pycones23/templates/index.html +++ b/theme/pycones23/templates/index.html @@ -1,164 +1,164 @@ -{% extends 'base.html' %} - -{% block content %} - -
-

- PyConES Canarias 2023 -

-
-

- Os damos la bienvenida a la PyConES, la conferencia de Python más - importante de España. Un evento que reunirá a cientos de entusiastas - del lenguaje de programación Python, con una agenda increíble en la - mejor localización posible. -

-

- Si quieres formar parte de nuestros patrocinadores para hacer esta - conferencia aún mas impresionante puedes disponer de espacio propio - dentro del evento. -

- - 6, 7 y 8 de octubre - -
-
- -

Keynoters

- - - -{% for item in KEYNOTERS %} - -
-
- - -
-
-

{{item['name']}}

-

{{item['description']['es']}}

- -
- - -
-
-{% endfor %} - - - - - - -

Noticias

- -{% for noticia in NOTICIAS %} -
-

{{ noticia['es'].titulo }} {{ noticia['es'].fecha }}

-

- {{ noticia['es'].contenido }} -

-
-{% endfor %} - - -

Cronograma del evento

-

- A continuación podrás ver algunos de los hitos más importantes de la - conferencia. En caso de que la fecha exacta no esté disponible, se - confirmará desde que podamos. -

-
- {% for item in CRONOGRAMA %} -
-

{{ item['fecha'] }}

-
- {{ item['desc'] }} -
-
- {% endfor %} -
- -
-

Patrocinios

-

- Gracias a las empresas que colaboran con la PyConES podemos ofrecer el mejor - evento y experiencia posible. Somos una conferencia con un bajo coste de - entrada capaz de ofrecer una experiencia de 3 días incluyendo regalos, - almuerzos, comidas y meriendas. - Con la ayuda de estas empresas conseguimos hacer un evento diverso - e inclusivo enfocado en cuidar la comunidad de Python. -

- {% for level, sponsors in SPONSORS.items() %} - {% if sponsors %} -
- Nivel {{ level | title }} -
-
- {% for name, values in sponsors.items() %} - - {% endfor %} -
- {% endif %} - {% endfor %} -
- 🏫 Patrocinio Especial -
-
- - - - - - - - - - -
-
-{% endblock content %} +{% extends 'base.html' %} + +{% block content %} + +
+

+ PyConES Canarias 2023 +

+
+

+ Os damos la bienvenida a la PyConES, la conferencia de Python más + importante de España. Un evento que reunirá a cientos de entusiastas + del lenguaje de programación Python, con una agenda increíble en la + mejor localización posible. +

+

+ Si quieres formar parte de nuestros patrocinadores para hacer esta + conferencia aún mas impresionante puedes disponer de espacio propio + dentro del evento. +

+ + 6, 7 y 8 de octubre + +
+
+ +

Keynoters

+ + + +{% for item in KEYNOTERS %} + +
+
+ + +
+
+

{{item['name']}}

+

{{item['description']['es']}}

+ +
+ + +
+
+{% endfor %} + + + + + + +

Noticias

+ +{% for noticia in NOTICIAS %} +
+

{{ noticia['es'].titulo }} {{ noticia['es'].fecha }}

+

+ {{ noticia['es'].contenido }} +

+
+{% endfor %} + + +

Cronograma del evento

+

+ A continuación podrás ver algunos de los hitos más importantes de la + conferencia. En caso de que la fecha exacta no esté disponible, se + confirmará desde que podamos. +

+
+ {% for item in CRONOGRAMA %} +
+

{{ item['fecha'] }}

+
+ {{ item['desc'] }} +
+
+ {% endfor %} +
+ +
+

Patrocinios

+

+ Gracias a las empresas que colaboran con la PyConES podemos ofrecer el mejor + evento y experiencia posible. Somos una conferencia con un bajo coste de + entrada capaz de ofrecer una experiencia de 3 días incluyendo regalos, + almuerzos, comidas y meriendas. + Con la ayuda de estas empresas conseguimos hacer un evento diverso + e inclusivo enfocado en cuidar la comunidad de Python. +

+ {% for level, sponsors in SPONSORS.items() %} + {% if sponsors %} +
+ Nivel {{ level | title }} +
+
+ {% for name, values in sponsors.items() %} + + {% endfor %} +
+ {% endif %} + {% endfor %} +
+ 🏫 Patrocinio Especial +
+
+ + + + + + + + + + +
+
+{% endblock content %} diff --git a/theme/pycones23/templates/navbar.html b/theme/pycones23/templates/navbar.html index 503110c..2bb1157 100644 --- a/theme/pycones23/templates/navbar.html +++ b/theme/pycones23/templates/navbar.html @@ -1,18 +1,18 @@ - - - - + + + + diff --git a/theme/pycones23/templates/page.html b/theme/pycones23/templates/page.html index ededa6a..dc70b70 100644 --- a/theme/pycones23/templates/page.html +++ b/theme/pycones23/templates/page.html @@ -1,17 +1,17 @@ -{% extends "base.html" %} - -{% block content %} -{{ page.title|striptags|e }} {% if page.subtitle %} - {{ page.subtitle|striptags|e }} {% endif %} - {{ super() }} -
-
-
-
- {{ page.title }} -
-
- {{ page.content }} -
-
-
-
-{% endblock content %} +{% extends "base.html" %} + +{% block content %} +{{ page.title|striptags|e }} {% if page.subtitle %} - {{ page.subtitle|striptags|e }} {% endif %} - {{ super() }} +
+
+
+
+ {{ page.title }} +
+
+ {{ page.content }} +
+
+
+
+{% endblock content %} diff --git a/theme/pycones23/templates/principal.html b/theme/pycones23/templates/principal.html index e428b9d..3070348 100644 --- a/theme/pycones23/templates/principal.html +++ b/theme/pycones23/templates/principal.html @@ -1,3 +1,3 @@ -{% extends "base.html" %} - - +{% extends "base.html" %} + + diff --git a/theme/pycones23/templates/social-media.html b/theme/pycones23/templates/social-media.html index 3cb64ed..196e75b 100644 --- a/theme/pycones23/templates/social-media.html +++ b/theme/pycones23/templates/social-media.html @@ -1,25 +1,25 @@ - -