🖥️📱 La clase se ve bien — en las dos apps
La app de escritorio mostraba el README de cada clase pasándolo crudo a QTextBrowser.setMarkdown(): bloques de código sin color, tablas del temario colapsadas a texto corrido, líneas de 200 caracteres de lado a lado y —en tema oscuro— el contenido con la paleta del tema claro. La misma clase se veía bien en GitHub Pages y mal en la app. Esta versión unifica las dos superficies detrás de un único renderizador, y además arregla dos problemas propios de la app Android.
📸 Capturas de las dos apps: https://vladimiracunadev-create.github.io/python-data-science-program/app/
🖥️ App de escritorio (Windows)
- Renderizador compartido (
app/class_html.py): una sola conversión markdown → HTML para la app y para GitHub Pages. La app la consume consetHtml(); el generador del sitio, para las 232 páginas. - Resaltado de sintaxis con Pygments en la clase y en las celdas del notebook.
- Cabecera de clase fija (número, título completo, parte, celdas), columna de lectura acotada, zoom de texto
Ctrl +/−/0persistido y tema oscuro real en el contenido, no solo en el marco. - Botón 🌐 Ver en la web → la misma clase en el portal.
- Icono del producto en el
.exe, en el instalador y en la ventana.
📱 App Android
- Icono del producto: se instalaba con el robot verde genérico del template de Expo.
- Bundle JS regenerado: el
index.android.bundlecommiteado era de abril y no contenía el currículo. Un build lo empaquetaba tal cual, así que el APK se habría instalado con el catálogo vacío otra vez (el fallo dev3.8.0). Regenerado y verificado dentro del APK: 232 clases yCURRICULUM_VERSION = v3.11.0. versionCode 42·versionName 3.11.0.
🔧 Correcciones
- 36 enlaces rotos en las páginas publicadas: el HTML commiteado de
site/clases/había quedado obsoleto y la navegación "clase siguiente" apuntaba a carpetas renombradas. Nuevoscripts/check_links.py, que corre en CI. - Listas pegadas al párrafo anterior (
Recursos:+- itemsin línea en blanco) se renderizaban como un renglón corrido con guiones sueltos — en la app y en el sitio. - Etiqueta duplicada en el árbol (
Parte 0 — Parte 0 — …), con test de regresión. - El portal anunciaba
v3.8.1; sincronizado, y los enlaces de descarga pasan areleases/latest.
📦 Artefactos
| Archivo | Tamaño | Qué es |
|---|---|---|
PythonDSProgram_windows_portable_v3.11.0.zip |
274 MB | App Windows Qt nativa. Descomprimir y ejecutar PythonDSProgram.exe — sin instalación, sin Python, sin navegador. |
PythonDSProgram_android_v3.11.0_debug.apk |
138 MB | APK debug (Expo SDK 51 · versionCode 42). Instalación directa; habilitar "fuentes desconocidas". |
SHA256SUMS_v3.11.0.txt |
— | Verificación de integridad (sha256sum -c). |
El release no incluye instalador Inno Setup
.exe(no hay Inno Setup en el entorno de build). El ZIP portable es el artefacto autónomo;installer/setup.issya queda configurado con el icono del producto.
Changelog completo: CHANGELOG.md