Fuentes del Sitio Web de PyCon Colombia 2020
Este es el repositorio del sitio web de la PyCon Colombia 2020 servido por Github, y construido utilizando lektor. Diseño original por Edwin Jerez (El Hijo) .
🧰 Requerimientos
🔀 Flujo de trabajo
Hay 2 ramas de git, develop
y production
.
⤴️ Develop
Es la rama por defecto y se despliega a través de gh-pages con Lektor a https://pyconcolombia.github.io/website-develop/ (en http://develop.pycon.co)
⤴️ Production
Después de que se han ejecutado las pruebas de calidad (QA), los cambios
realizados en la rama develop
se unen con la rama production
y son
desplegados a través de gh-pages con Lektor a
https://pyconcolombia.github.io/website-2020/
(pronto en http://www.pycon.co)
🛠 Desarrollo local
✅ (Prerequisito) Instalar Yarn o Npm
1. 😎 Usando Docker (La forma sencilla)
Instalación
Prerequisitos
Correr servicios (Se puede usar yarn o npm)
- Levantar servicios de web y preprocesador de webpack.
yarn docker:up:dev
Con lo anterior ya estamos listos para abrir http://localhost:5000
y empezar a codear!
Todos los comandos disponibles
- A continuación se describe brevemente todos los comandos disponibles para mayor control y debugging.
yarn docker:up:clean # Mocha tests
yarn docker:up:clean # Limpiar entorno (Esto limpia node_modules y carpeta dist)
yarn docker:up:dev # Correr servicios en modo desarrollo
yarn docker:up:prod # Correr servicios en modo producción - Esto compila los assets listos para subir al servidor
yarn docker:logs:website # Ver logs del contenedor web donde está lektor
yarn docker:logs:webpack # Ver logs del contenedor de webpack donde se preprocesan los archivos fuente de la carpeta assets.
yarn docker:restart # Reiniciar todos los servicios
yarn docker:restart:website # Reiniciar servicio se website (lektor)
yarn docker:restart:webpack # Reiniciar servicio de webpack
yarn docker:stop # Parar todos los servicios
yarn docker:stop:website # Parar servicio se website (lektor)
yarn docker:stop:webpack # Parar servicio de webpack
2. Sin Docker
✅ (Opcional) Entorno Virtual
-
Instalar virtualenv
-
⚠️ ️ Requiere previa instalación de Python⚠️ -
⚠️ ️ Requiere previa instalación de Node⚠️
Entorno virtual de python
- Crear entorno
$ virtualenv <nombre_entorno>
- Activar entorno virtual
Windows
$ <nombre_entorno>\Scripts\activate
Linux
$ source <nombre_entorno>/bin/activate
✅ Instala Lektor
- Usando pip:
$ pip install -U Lektor unidecode
- Usando conda:
$ conda install lektor unidecode -c conda-forge
plugins
locales
✅ Instala (reinstala) los $ lektor plugins reinstall
✅ Corre el servidor local
$ lektor server --no-prune
Instala paquetes de npm relativos a preprocesadores de webpack + babel
Instalar paquetes
yarn install
✅ Compilar assets
En modo desarrollo
yarn build:dev
En modo producción
yarn build:prod
⁉️ Problemas comunes
- 🔴 Si en algun momento luego de instalar python3 y crear tu virtualenv. haces
lektor server --no-prune
y ves este error:
RuntimeError: Click will abort further execution because Python 3 was configured to use ASCIas encoding for the environment. Consult http://click.pocoo.org/python3/for mitigation steps.
Haz esto adentro de tu virtualenv:
export LC_ALL=en_us.UTF-8
export LANG=en_us.UTF-8
🚀 Despliegue
Gracias a Lektor Bot (Plugin de lektor conectado a Github), podemos desplegar nuestra web estática en diferentes repositorios (en la rama seleccionada en configuración - gh-pages
en nuestro caso).
La configuración de dichos repositorios se encuentra en pyconcolombia.lektorproject
Integración y despliegue continuo
Este repositorio cuenta con servicio de integración continua mediante TravisCI.
Cada vez que se hace un commit a develop
o production
el servicio despliega la página
siguiendo la configuración ubicada en el archivo .travis.yml
✔️ Desarrollo
$ lektor deploy
Se desplegará el contenido de la rama develop
en develop.pycon.co
✔️✔️ Producción
$ lektor deploy production
Se desplegará el contenido de la rama production
en pycon.co
🛠️ Herramientasy servicios complementarios
Cloudfare
La página utiliza Cloudfare como servicio de cache y manejo de dominios y reglas de direccionamiento.
Google Analytics
Las estadísticas de visitas del sitio web utiliza Google Analytics.
Google Search Console
Los servicios de búsqueda y optimización utilizan la Google Search Console
💪 Colaboradores
Gonzalo Peña |
Alejandro E. Rendon |
Sergio Alexander F. |
Jonathan Vallejo Muñoz |
---|