Renovación del índice:
- Cambiamos la arquitectura del índice, utilizando directamente una base de datos SQLite para su guardado, y codificando los datos en sus tablas para optimizar espacio y velocidad de acceso.
- Reestructuramos la forma de trabajar con páginas reales y los redirects de wikipedia, de forma que los resultados mostrados siempre apuntan a la página más útil, mostrando en los resultados una buena descripción de la misma.
Cómo mostramos y procesamos las imágenes:
- Incluimos ahora todos los SVG pero ya no más como archivos externos sino integrados en el HTML de cada página
- Cambiamos la forma de procesar las imágenes, ahora utilizamos Pillow para limpiar y redimensionar, pngquant para compactar los PNGs.
Mejoras en la experiencia de les usuaries finales:
- Optimizamos el soporte para la ejecución de la CDPedia en entornos Windows
- Pulimos la forma de mostrar enlaces (internos y externos) y otros elementos de las páginas finales (reproductores de sonido, etc.)
- Construimos la página inicial de la CDPedia utilizando lo último que esté armado en la Wikipedia origen.
- Incluimos las páginas de estilo actualizadas al momento de la generación de la imagen de CDPedia.
- Actualizamos el tutorial de Python agregado en la CDPedia a la última versión, ahora también incluyendo toda la documentación de Python en castellano.
- Renovamos la página web del proyecto para poder internacionalizarla, ahora muestra los distintos lenguajes de CDPedia, en distintos idiomas.
Mejoras en la producción de las imágenes de CDPedia:
- Ahora podemos elegir páginas puntuales de pruebas que sirven para evaluar la calidad de la imagen generada.
- Paralelizamos todas las descargas del proyecto con una nueva estructura que comunica correctamente el progreso y pendientes.
- Generalizamos y mejoramos estructuras que permiten la generación de CDPedias en otros idiomas además del castellano.
- Actualizamos a LZMA el compresor utilizado para las estructuras de bloques finales. De esta forma se ahorra aproximadamente 20% de espacio respecto al compresor anterior ( bzip2), por lo que podemos incluir más artículos.
Modernización del proyecto:
- Migramos a Python 3, soportando desde Python 3.5 en adelante para tener en cuenta computadoras clientes no tan actualizadas.
- Corregimos toda la batería de tests, y agregamos verificadores de estilo y estructura de los archivos, yendo a una infraestructura basada en pytest localmente y Github Actions como CI.
- Evitamos que las dependencias de ejecución del proyecto estuvieran estáticamente integradas y ahora utilizamos el estado de arte de cada una al momento de generación de la imagen de CDPedia.
- Aplicamos buenas prácticas de desarrollo modernizando todo el código (usamos logging en vez de prints, docstrings y comentarios en inglés, estilo según PEP8, etc.)