Aquí no necesitas tener grandes conocimientos técnicos, solo necesitamos creatividad. Todos los contenidos se escriben usando Markdown y no tienes que pelearte con HTML ni CSS, solo darle rienda suelta a tu imaginación.
Si tienes conocimientos de maquetación web y un poco de gusto estético, puedes ayudar a mejorar aspectos de diseño o usabilidad de la web. En principio estamos usando Bulma Framework, pero siempre se puede cambiar a algo más avanzado si merece la pena.
La web es generada usando Pelican, que nos ahorra hacer trabajo aburrido, tener que usar copy/paste constantemente y otras muchas magias divertidas con Python que poco a poco irás descubriendo.
El proyecto queda estructurado en los siguientes directorios: Divido los directorios en tres categorías.
- Infra, su propósito es preparar el entorno, instalar las dependencias y otras magias.
- UI / UX, contiene el código para darle forma y color a la web, generalmente HTML, CSS.
- Content, contiene artículos y publicaciones en markdown.
- Code, contiene scripts en python para hacer pequeñas magias con Pelican y Python.
Y tendríamos los siguientes directorios:
- .github (infra) Aquí se definen las cosas referentes a la integración continua, (mejor no tocarlo mucho xD)
- compose (infra) Aquí se definen los manifiestos Docker, que preparan todo lo necesario para que funcione en tu localhost.
- content (content) Aquí se alojan los artículos y publicaciones en formato Markdown.
- plugins (code) Plugins de Pelican.
- themes (ui/ux) Código HTML y CSS que pone bonita la web.
- output (auto generado) Aquí se guarda el código de la web compilado, se genera automáticamente, por lo tanto no modifiques manualmente.
Para arrancar este proyecto en local, independientemente del sistema operativo que uses, tienes dos alternativas
Para ello necesitas Docker y docker-compose.
docker-compose up --build
Accede con tu navegador a la url localhost:8080
Debes tener instalado Python >= 3.6 y virtualenv y seguir los siguientes pasos:
- Crear un virtualenv propio para este proyecto y activarlo
virtualenv venv
source ./venv/bin/activate
- Instalar las dependencias Python necesarias
pip install -r requirements.txt
- Iniciar el servidor web en local con el script o con make indicando de forma opcional el puerto deseado (por defecto 8000)
- Opción 1
./develop_server.sh start {PORT}
- Opción 2
make devserver PORT={PORT}
Como sabemos cualquier evento o congreso pasa por diferentes etapas, donde la información a mostrar en la web debe ser diferente. Para facilitar el trabajo contamos con el archivo pelicanconf_flags.py donde el organizador puede habilitar y deshabilitar elementos de la web.
Variable | Descripción |
---|---|
LANDING_MODE | Habilita el modo landing-page de la web, para poder tener una presentación reducida o completa de la web. |
ENABLED_TICKETS | Habilita links a la tienda de las entradas del evento. |
ENABLED_CALL_FOR_PAPERS | Habilita bloque que hace la llamada a los ponentes. |
ENABLED_KEYNOTERS | Habilita bloque que muestra los oradores plenarios del evento. |
ENABLED_SPEAKERS | Habilita pantalla de ponentes. |
ENABLED_SPONSORSHIPS | Habilita bloque con todos los patrocinadores. |
ENABLED_CALL_FOR_SPONSORS | Habilita bloque con llamamiento a patrocinadores |
ENABLED_TIMETABLE | Habilita la vista del calendario del evento. |
ENABLED_BLOG | Habilita la funcionalidad de blog de contenidos de la web. |
ENABLED_SCHEDULE_INFO | Habilita la vista del la información del programa en el sitio principal |
La web cuenta con un sistema de despliegue continuo, de forma que cada cambio (commit) en la rama main
la web se compila y se sube a github pages
, usando GitHub Pages Pelican Build Action.
- Crea un fork de este repositorio en tu cuenta personal de GitHub.
- Puedes visualizar tu clone de la web, si habilitas la opción ghpages en la rama
gh-pages
.
- Para que se visualice correctamente debes crear un
environment secret
llamadoSITEURL
con la url completa de tu copia del sitio web.
- Realiza tus aportaciones, añade los cambios, siempre con un mensaje de commit descriptivo y a poder ser en Inglés.
- Crea un
Pull Request
a este mismo repositorio, asegúrate primero de hacerFetch upstream
y no tener conflictos con el repositorio principal. - Cuando se acepte el PR se te notifica y ya podemos ver tus cambios en la web.
# Haces fork del repositorio y clone localmente.
gh repo fork [email protected]:PythonGranada/pycones-grx.git
# Actualizamos fork con cambios en repositorio principal.
git pull upstream main
# Actualizamos cambios en nuestro fork particular.
git commit -am "commit message"
git push
# Creamos pull request con nuestros cambios
gh pr create
- Git
- GitHub CLI
- Python ^3.6
- pre-commit
- Docker y Docker-Compose
- Editor de código o IDE, Visual Studio Code o WebStorm