execonvert 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +79 -0
- package/THIRD_PARTY_NOTICES.md +19 -0
- package/dist/cli/app/public/exelearning/app/common/common_i18n.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.ca.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.de.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.en.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.eo.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.es.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.eu.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.gl.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.it.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.pt.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.ro.js +4 -1
- package/dist/cli/app/public/exelearning/app/common/i18n/common_i18n.va.js +4 -1
- package/dist/cli/app/public/exelearning/bundles/common.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/content-css.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/idevices.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/libs.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/manifest.json +76 -75
- package/dist/cli/app/public/exelearning/bundles/themes/base.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/themes/flux.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/themes/neo.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/themes/nova.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/themes/universal.zip +0 -0
- package/dist/cli/app/public/exelearning/bundles/themes/zen.zip +0 -0
- package/dist/cli/app/public/exelearning/exporters.bundle.js +7250 -353
- package/dist/cli/app/public/exelearning/importers.bundle.js +693 -163
- package/dist/cli/app/public/exelearning/runtime-source.json +6 -6
- package/dist/cli/app/public/info/cli.html +105 -8
- package/dist/cli/cli/execonvert.js +47 -7
- package/dist/cli/cli/updates.js +315 -0
- package/dist/cli/src/docx-import.js +8 -49
- package/dist/cli/src/vendor/omml2mathml/LICENSE +201 -0
- package/dist/cli/src/vendor/omml2mathml/dom.js +17 -0
- package/dist/cli/src/vendor/omml2mathml/index.js +744 -0
- package/dist/cli/src/vendor/omml2mathml/operators.js +1144 -0
- package/package.json +13 -3
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,40 @@ Categorías usadas: **Añadido**, **Cambiado**, **Corregido**, **Eliminado**.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.5.1] - 2026-09-05
|
|
13
|
+
|
|
14
|
+
### Cambiado
|
|
15
|
+
- La conversión de fórmulas OMML de `.docx` ya no depende del paquete
|
|
16
|
+
`omml2mathml`, abandonado desde 2017. Se incorpora una copia en
|
|
17
|
+
`src/vendor/omml2mathml/` (Apache-2.0) cuya única modificación funcional es
|
|
18
|
+
crear el documento de salida con `@xmldom/xmldom` en lugar de `get-dom`.
|
|
19
|
+
Con ello desaparecen del árbol `jsdom@9`, `request`, `har-validator`, `abab`,
|
|
20
|
+
`uuid@3`, `content-type-parser` y `whatwg-encoding`: instalar el paquete pasa
|
|
21
|
+
de mostrar siete avisos de dependencias obsoletas a uno solo, y las alertas de
|
|
22
|
+
seguridad en dependencias de producción bajan de 15 a 7, sin ninguna crítica.
|
|
23
|
+
La conversión se ha comprobado contra los 178 casos de prueba del proyecto
|
|
24
|
+
original.
|
|
25
|
+
|
|
26
|
+
## [0.5.0] - 2026-09-05
|
|
27
|
+
|
|
28
|
+
### Añadido
|
|
29
|
+
- Comprobación diaria de actualizaciones de eXeConvert en la CLI interactiva,
|
|
30
|
+
desactivable mediante `--no-update-check` o `EXECONVERT_NO_UPDATE_CHECK=1`.
|
|
31
|
+
No interfiere con tuberías, CI, JSON ni conversiones sin conexión.
|
|
32
|
+
- `execonvert update --check` y `execonvert update`: consulta de versiones,
|
|
33
|
+
actualización mediante npm o descarga verificada de instaladores nativos.
|
|
34
|
+
- Identificación del canal de instalación y de la arquitectura en los paquetes
|
|
35
|
+
nativos, con nombres explícitos de arquitectura para macOS y Windows.
|
|
36
|
+
- Comprobación semanal de nuevas versiones de eXeLearning en GitHub Actions:
|
|
37
|
+
prueba las conversiones y genera un parche para revisión, sin publicarlo.
|
|
38
|
+
- Pruebas del actualizador y de las conversiones de CLI y navegador con un
|
|
39
|
+
proyecto sintético que incluye páginas, imagen, fórmulas y traducciones.
|
|
40
|
+
|
|
41
|
+
### Cambiado
|
|
42
|
+
- Runtime embebido de eXeLearning actualizado de **v4.0.1** a **v4.0.3**,
|
|
43
|
+
incluidos los importadores, exportadores, temas, iDevices y traducciones
|
|
44
|
+
compartidos por la web y la CLI.
|
|
45
|
+
|
|
12
46
|
## [0.4.2] - 2026-06-25
|
|
13
47
|
|
|
14
48
|
### Corregido
|
package/README.md
CHANGED
|
@@ -103,6 +103,85 @@ Estado actual de la CLI:
|
|
|
103
103
|
- soportado: `.elp -> .docx`
|
|
104
104
|
- soportado: `.elp -> .pdf`
|
|
105
105
|
|
|
106
|
+
## Actualizaciones de la CLI
|
|
107
|
+
|
|
108
|
+
La CLI comprueba nuevas versiones estables de **eXeConvert** en GitHub como
|
|
109
|
+
máximo una vez al día cuando se usa en una terminal interactiva. El aviso sale
|
|
110
|
+
por `stderr`. No comprueba automáticamente en tuberías, CI, con `--json`, ni al
|
|
111
|
+
pedir ayuda o la versión. Los errores de red no afectan a las conversiones y
|
|
112
|
+
la consulta se cancela cuando termina la operación.
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
execonvert update --check # Consultar sin descargar
|
|
116
|
+
execonvert update --check --json # Resultado estructurado
|
|
117
|
+
execonvert update # Actualizar npm o descargar el instalador
|
|
118
|
+
execonvert update --out-dir ./descargas # Elegir carpeta para instaladores
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
- **npm:** instala la versión estable anunciada en GitHub usando npm, en el
|
|
122
|
+
ámbito global o en el proyecto local donde está instalada esta copia. En un
|
|
123
|
+
proyecto local, npm puede actualizar `package.json` y el archivo de bloqueo.
|
|
124
|
+
Si npm todavía no tiene esa versión o faltan permisos, muestra el error.
|
|
125
|
+
- **Debian, Windows y macOS:** descarga el instalador de su canal y arquitectura
|
|
126
|
+
y muestra dónde está para instalarlo mediante el sistema. No pide privilegios
|
|
127
|
+
ni ejecuta automáticamente el instalador.
|
|
128
|
+
- **AppImage:** descarga la nueva versión, le da permiso de ejecución y conserva
|
|
129
|
+
la anterior. Hay que usar el nuevo archivo o actualizar el enlace habitual.
|
|
130
|
+
- **Repositorio de desarrollo:** muestra la versión disponible; la actualización
|
|
131
|
+
del código se hace mediante Git y una nueva compilación.
|
|
132
|
+
|
|
133
|
+
Las descargas de instaladores comprueban tamaño y SHA-256 antes de guardarse con
|
|
134
|
+
su nombre definitivo. Si la publicación aún no tiene un instalador compatible,
|
|
135
|
+
se muestra un aviso. Las nuevas publicaciones identifican la arquitectura en
|
|
136
|
+
los paquetes de macOS y Windows. Los antiguos `.pkg` sin arquitectura explícita
|
|
137
|
+
se descargan manualmente desde la página de versiones.
|
|
138
|
+
|
|
139
|
+
Por defecto, los instaladores se guardan en la caché del usuario, bajo
|
|
140
|
+
`execonvert/downloads/<versión>`. El estado de la consulta diaria se guarda en
|
|
141
|
+
`execonvert/update-check.json` dentro de `$XDG_CACHE_HOME` o `~/.cache` en Linux,
|
|
142
|
+
`~/Library/Caches` en macOS y `%LOCALAPPDATA%` en Windows.
|
|
143
|
+
|
|
144
|
+
Para desactivar las consultas automáticas en una ejecución:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
execonvert proyecto.elpx proyecto.md --no-update-check
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Para desactivarlas de forma persistente, configura la variable de entorno
|
|
151
|
+
`EXECONVERT_NO_UPDATE_CHECK=1`. La consulta explícita `update --check` sigue
|
|
152
|
+
funcionando. La consulta solo solicita metadatos públicos de versiones;
|
|
153
|
+
no envía los documentos del usuario.
|
|
154
|
+
|
|
155
|
+
## Compatibilidad con nuevas versiones de eXeLearning
|
|
156
|
+
|
|
157
|
+
El comando `update` conserva la combinación de eXeConvert y eXeLearning probada
|
|
158
|
+
en cada publicación. Los componentes de eXeLearning se actualizan en el
|
|
159
|
+
repositorio mediante `npm run sync:exe`.
|
|
160
|
+
|
|
161
|
+
El workflow **Check eXeLearning compatibility** comprueba cada lunes a las
|
|
162
|
+
06:25 UTC si hay una versión estable nueva; también se puede lanzar manualmente.
|
|
163
|
+
Cuando la encuentra, sincroniza los componentes, comprueba los tipos, ejecuta
|
|
164
|
+
las pruebas del actualizador, compila web y CLI y prueba las conversiones.
|
|
165
|
+
Si todo pasa, adjunta un artefacto `tested-exelearning-update` con un parche
|
|
166
|
+
binario y la procedencia del runtime. El parche se revisa y aplica con
|
|
167
|
+
`git apply exelearning-update.patch` sobre la revisión usada por el workflow.
|
|
168
|
+
No hace push, no crea releases y no publica cambios automáticamente.
|
|
169
|
+
|
|
170
|
+
Las pruebas usan un `.elp` sintético con dos páginas, una imagen, fórmulas LaTeX
|
|
171
|
+
y contenido en español. Comprueban `.elp → .elpx`, las exportaciones a Markdown,
|
|
172
|
+
DOCX y PDF, la reimportación de Markdown/DOCX y la vista previa web en Chromium.
|
|
173
|
+
Para ejecutarlas localmente:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
npm run test:updates
|
|
177
|
+
npm run build:all
|
|
178
|
+
npm run test:cli
|
|
179
|
+
npm run test:runtime
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
El workflow **Test CLI and conversions** ejecuta las pruebas del actualizador
|
|
183
|
+
en Linux, Windows y macOS; las conversiones y el navegador se comprueban en Linux.
|
|
184
|
+
|
|
106
185
|
## Organización del código
|
|
107
186
|
|
|
108
187
|
La web y la CLI están separadas como dos frontends distintos sobre el mismo núcleo de conversión:
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -27,6 +27,25 @@ Included resources in this repository:
|
|
|
27
27
|
- `app/public/exelearning/bundles/manifest.json`
|
|
28
28
|
- Supporting resource bundles required by the reused eXeLearning browser import/export runtime.
|
|
29
29
|
|
|
30
|
+
## Vendored copy of omml2mathml
|
|
31
|
+
|
|
32
|
+
- Source project: https://github.com/scienceai/omml2mathml
|
|
33
|
+
- Project license: Apache-2.0 (see `src/vendor/omml2mathml/LICENSE`)
|
|
34
|
+
|
|
35
|
+
Included in this repository:
|
|
36
|
+
|
|
37
|
+
- `src/vendor/omml2mathml/index.js`
|
|
38
|
+
- `src/vendor/omml2mathml/operators.js`
|
|
39
|
+
- Copied verbatim from omml2mathml 1.3.0, converted from CommonJS to ES
|
|
40
|
+
modules, and with the `get-dom` import replaced by `./dom.js`.
|
|
41
|
+
- `src/vendor/omml2mathml/dom.js`
|
|
42
|
+
- Written for this project. It supplies the empty document the converter
|
|
43
|
+
builds the MathML tree on, using `@xmldom/xmldom` instead of `get-dom`,
|
|
44
|
+
which pulled in jsdom 9 and its unmaintained dependency chain.
|
|
45
|
+
|
|
46
|
+
The library has been unmaintained since 2017, so there is no upstream release
|
|
47
|
+
to update to; the copy is kept here to convert OMML formulas from `.docx`.
|
|
48
|
+
|
|
30
49
|
## Additional license notes
|
|
31
50
|
|
|
32
51
|
- `app/public/idevices/text/text.js` contains a header pointing to:
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": c_("Local mode: Due to browser security policy, you will need to select the folder from which you opened this file. On a web server this will not be necessary."),
|
|
47
47
|
"proprietaryLicense": c_("Proprietary license"),
|
|
48
48
|
"notAppropriate": c_("Not appropriate"),
|
|
49
|
-
"publicDomain": c_("Public domain")
|
|
49
|
+
"publicDomain": c_("Public domain"),
|
|
50
|
+
"attachment": c_("Attachment"),
|
|
51
|
+
"noFilesAttached": c_("No files attached."),
|
|
52
|
+
"fileUnavailable": c_("File unavailable")
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Mode local: a causa de la política de seguretat del navegador, hauràs de seleccionar la carpeta des de la qual vas obrir aquest fitxer. En un servidor web això no serà necessari.",
|
|
47
47
|
"proprietaryLicense": "Llicència propietària",
|
|
48
48
|
"notAppropriate": "No apropiada",
|
|
49
|
-
"publicDomain": "Domini públic"
|
|
49
|
+
"publicDomain": "Domini públic",
|
|
50
|
+
"attachment": "Adjunt",
|
|
51
|
+
"noFilesAttached": "No hi ha cap fitxer adjunt.",
|
|
52
|
+
"fileUnavailable": "Fitxer no disponible"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Lokaler Modus: Aufgrund der Sicherheitsrichtlinien des Browsers müssen Sie den Ordner auswählen, aus dem Sie diese Datei geöffnet haben. Bei einem Webserver ist dies nicht erforderlich.",
|
|
47
47
|
"proprietaryLicense": "Proprietäre Lizenz",
|
|
48
48
|
"notAppropriate": "Nicht zutreffend",
|
|
49
|
-
"publicDomain": "Gemeinfrei"
|
|
49
|
+
"publicDomain": "Gemeinfrei",
|
|
50
|
+
"attachment": "Anhang",
|
|
51
|
+
"noFilesAttached": "Keine Dateien angehängt.",
|
|
52
|
+
"fileUnavailable": "Datei nicht verfügbar"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Local mode: Due to browser security policy, you will need to select the folder from which you opened this file. On a web server this will not be necessary.",
|
|
47
47
|
"proprietaryLicense": "Proprietary license",
|
|
48
48
|
"notAppropriate": "Not appropriate",
|
|
49
|
-
"publicDomain": "Public domain"
|
|
49
|
+
"publicDomain": "Public domain",
|
|
50
|
+
"attachment": "Attachment",
|
|
51
|
+
"noFilesAttached": "No files attached.",
|
|
52
|
+
"fileUnavailable": "File unavailable"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Loka modo: pro la sekurecopolitiko de la retumilo, vi devos elekti la dosierujon, de kiu vi malfermis ĉi tiun dosieron. En retservilo tio ne estos necese.",
|
|
47
47
|
"proprietaryLicense": "Propra licenco",
|
|
48
48
|
"notAppropriate": "Ne konvena",
|
|
49
|
-
"publicDomain": "Publika domajno"
|
|
49
|
+
"publicDomain": "Publika domajno",
|
|
50
|
+
"attachment": "Aldonaĵo",
|
|
51
|
+
"noFilesAttached": "Neniu dosiero aldonita.",
|
|
52
|
+
"fileUnavailable": "Dosiero ne disponebla"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Modo local: debido a la política de seguridad del navegador, tendrás que seleccionar la carpeta desde la que abriste este archivo. En un servidor web esto no será necesario.",
|
|
47
47
|
"proprietaryLicense": "Licencia propietaria",
|
|
48
48
|
"notAppropriate": "No procede",
|
|
49
|
-
"publicDomain": "Dominio público"
|
|
49
|
+
"publicDomain": "Dominio público",
|
|
50
|
+
"attachment": "Adjunto",
|
|
51
|
+
"noFilesAttached": "No hay archivos adjuntos.",
|
|
52
|
+
"fileUnavailable": "Archivo no disponible"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Modu lokala: nabigatzailearen segurtasun-politika dela eta, fitxategi hau irekitzeko erabili duzun karpeta aukeratu beharko duzu. Web zerbitzari batean hau ez da beharrezkoa izango.",
|
|
47
47
|
"proprietaryLicense": "Jabetzaren lizentzia",
|
|
48
48
|
"notAppropriate": "Ez dagokio",
|
|
49
|
-
"publicDomain": "Domeinu publikoa"
|
|
49
|
+
"publicDomain": "Domeinu publikoa",
|
|
50
|
+
"attachment": "Eranskina",
|
|
51
|
+
"noFilesAttached": "Ez dago fitxategi erantsirik.",
|
|
52
|
+
"fileUnavailable": "Fitxategia ez dago erabilgarri"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Modo local: debido á política de seguranza do navegador, terás que seleccionar o cartafol desde o que abriches este ficheiro. Nun servidor web isto non será necesario.",
|
|
47
47
|
"proprietaryLicense": "Licenza propietaria",
|
|
48
48
|
"notAppropriate": "Non axeitado",
|
|
49
|
-
"publicDomain": "Dominio público"
|
|
49
|
+
"publicDomain": "Dominio público",
|
|
50
|
+
"attachment": "Anexo",
|
|
51
|
+
"noFilesAttached": "Non hai ficheiros anexos.",
|
|
52
|
+
"fileUnavailable": "Ficheiro non dispoñible"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Modalità locale: a causa della politica di sicurezza del browser, dovrai selezionare la cartella da cui hai aperto questo file. Su un server web non sarà necessario.",
|
|
47
47
|
"proprietaryLicense": "Licenza d'uso",
|
|
48
48
|
"notAppropriate": "Non applicabile",
|
|
49
|
-
"publicDomain": "Dominio pubblico"
|
|
49
|
+
"publicDomain": "Dominio pubblico",
|
|
50
|
+
"attachment": "Allegato",
|
|
51
|
+
"noFilesAttached": "Nessun file allegato.",
|
|
52
|
+
"fileUnavailable": "File non disponibile"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Modo local: devido à política de segurança do navegador, você precisará selecionar a pasta de onde abriu este arquivo. Em um servidor web, isso não será necessário.",
|
|
47
47
|
"proprietaryLicense": "Licença proprietária",
|
|
48
48
|
"notAppropriate": "Não apropriada",
|
|
49
|
-
"publicDomain": "Domínio público"
|
|
49
|
+
"publicDomain": "Domínio público",
|
|
50
|
+
"attachment": "Anexo",
|
|
51
|
+
"noFilesAttached": "Nenhum arquivo anexado.",
|
|
52
|
+
"fileUnavailable": "Arquivo indisponível"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Mod local: Din cauza politicii de securitate a browserului, va trebui să selectați folderul din care ați deschis acest fișier. Pe un server web, acest lucru nu va fi necesar.",
|
|
47
47
|
"proprietaryLicense": "Licență proprietară",
|
|
48
48
|
"notAppropriate": "Nu este adecvată",
|
|
49
|
-
"publicDomain": "Domeniu public"
|
|
49
|
+
"publicDomain": "Domeniu public",
|
|
50
|
+
"attachment": "Atașament",
|
|
51
|
+
"noFilesAttached": "Niciun fișier atașat.",
|
|
52
|
+
"fileUnavailable": "Fișier indisponibil"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
@@ -46,7 +46,10 @@ $exe_i18n = {
|
|
|
46
46
|
"elpxFileProtocolWarning": "Mode local: a causa de la política de seguretat del navegador, hauràs de seleccionar la carpeta des de la qual vas obrir aquest arxiu. En un servidor web això no serà necessari.",
|
|
47
47
|
"proprietaryLicense": "Llicència propietària",
|
|
48
48
|
"notAppropriate": "No apropiada",
|
|
49
|
-
"publicDomain": "Domini públic"
|
|
49
|
+
"publicDomain": "Domini públic",
|
|
50
|
+
"attachment": "Adjunt",
|
|
51
|
+
"noFilesAttached": "No hi ha cap fitxer adjunt.",
|
|
52
|
+
"fileUnavailable": "Fitxer no disponible"
|
|
50
53
|
};
|
|
51
54
|
// The following line should only be used if the ELP contains a hangman game:
|
|
52
55
|
$exe_i18n.exeGames = {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,110 +1,111 @@
|
|
|
1
1
|
{
|
|
2
2
|
"buildVersion": "v0.0.0-alpha",
|
|
3
|
-
"builtAt": "2026-
|
|
3
|
+
"builtAt": "2026-08-06T11:49:55.217Z",
|
|
4
4
|
"themes": {
|
|
5
|
-
"
|
|
6
|
-
"files":
|
|
7
|
-
"size":
|
|
8
|
-
"hash": "
|
|
5
|
+
"base": {
|
|
6
|
+
"files": 56,
|
|
7
|
+
"size": 80989,
|
|
8
|
+
"hash": "e8ce68ed6628fa7a1913422f3ad9adadf395e708a38a0f84bd644b37de70b76a"
|
|
9
9
|
},
|
|
10
10
|
"nova": {
|
|
11
11
|
"files": 74,
|
|
12
|
-
"size":
|
|
13
|
-
"hash": "
|
|
12
|
+
"size": 141010,
|
|
13
|
+
"hash": "7008fc03a970da6ec2a5926af79317fcc4e5f93ecbc193afe650743390912e91"
|
|
14
14
|
},
|
|
15
|
-
"
|
|
16
|
-
"files":
|
|
17
|
-
"size":
|
|
18
|
-
"hash": "
|
|
15
|
+
"flux": {
|
|
16
|
+
"files": 76,
|
|
17
|
+
"size": 209684,
|
|
18
|
+
"hash": "972d71b1de28b2a888131ce173ff26a1825cfd027b9f380f9d7d3fc1d77b3bc3"
|
|
19
|
+
},
|
|
20
|
+
"universal": {
|
|
21
|
+
"files": 93,
|
|
22
|
+
"size": 139371,
|
|
23
|
+
"hash": "1f1ca9b301ffa365fae3cfbfba35839f5857c37802a9f172af7efc9c6c6aefef"
|
|
19
24
|
},
|
|
20
25
|
"zen": {
|
|
21
26
|
"files": 80,
|
|
22
|
-
"size":
|
|
23
|
-
"hash": "
|
|
24
|
-
},
|
|
25
|
-
"base": {
|
|
26
|
-
"files": 56,
|
|
27
|
-
"size": 81002,
|
|
28
|
-
"hash": "cfd14a9bf08e12a490bd4feb525a33ce48a4879418023c1fb653a5fa2bd13c40"
|
|
27
|
+
"size": 1172600,
|
|
28
|
+
"hash": "97f6f23e376b464e79ee0e6e864f4339e001198880d4359d070317aea9dbf30e"
|
|
29
29
|
},
|
|
30
|
-
"
|
|
31
|
-
"files":
|
|
32
|
-
"size":
|
|
33
|
-
"hash": "
|
|
30
|
+
"neo": {
|
|
31
|
+
"files": 87,
|
|
32
|
+
"size": 815158,
|
|
33
|
+
"hash": "8823c4a0aed446ab0a61788d823c12a8a9fc9bb992c1c131830a9c3824b47f57"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"idevices": {
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
37
|
+
"word-search": 25,
|
|
38
|
+
"crossword": 23,
|
|
39
|
+
"file-attachment": 6,
|
|
40
|
+
"scrambled-list": 14,
|
|
41
|
+
"select-media-files": 26,
|
|
42
|
+
"beforeafter": 18,
|
|
43
|
+
"form": 13,
|
|
44
|
+
"discover": 26,
|
|
45
|
+
"image-gallery": 7,
|
|
46
|
+
"text": 5,
|
|
47
|
+
"relate": 22,
|
|
48
|
+
"sort": 26,
|
|
49
|
+
"identify": 24,
|
|
41
50
|
"az-quiz-game": 31,
|
|
51
|
+
"udl-content": 9,
|
|
52
|
+
"checklist": 10,
|
|
53
|
+
"markdown-text": 4,
|
|
54
|
+
"download-source-file": 5,
|
|
55
|
+
"3dmol": 31,
|
|
56
|
+
"flipcards": 22,
|
|
57
|
+
"mathproblems": 18,
|
|
58
|
+
"lomloe": 3,
|
|
59
|
+
"interactive-video": 9,
|
|
60
|
+
"progress-report": 11,
|
|
61
|
+
"challenge": 62,
|
|
62
|
+
"electrical-circuits": 23,
|
|
42
63
|
"padlock": 13,
|
|
43
64
|
"example": 4,
|
|
65
|
+
"magnifier": 9,
|
|
66
|
+
"hidden-image": 15,
|
|
67
|
+
"geogebra-activity": 7,
|
|
68
|
+
"complete": 17,
|
|
44
69
|
"trivial": 42,
|
|
45
|
-
"
|
|
46
|
-
"udl-content": 9,
|
|
47
|
-
"magnifier": 8,
|
|
48
|
-
"relate": 22,
|
|
49
|
-
"image-gallery": 7,
|
|
50
|
-
"3dmol": 31,
|
|
51
|
-
"puzzle": 26,
|
|
70
|
+
"quick-questions-multiple-choice": 28,
|
|
52
71
|
"external-website": 3,
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"progress-report": 11,
|
|
58
|
-
"discover": 26,
|
|
72
|
+
"classify": 22,
|
|
73
|
+
"casestudy": 5,
|
|
74
|
+
"guess": 31,
|
|
75
|
+
"quick-questions-video": 27,
|
|
59
76
|
"slide": 4,
|
|
60
|
-
"lomloe": 3,
|
|
61
|
-
"text": 5,
|
|
62
|
-
"geogebra-activity": 7,
|
|
63
77
|
"periodic-table": 14,
|
|
64
|
-
"crossword": 23,
|
|
65
|
-
"markdown-text": 4,
|
|
66
|
-
"checklist": 10,
|
|
67
|
-
"mathematicaloperations": 18,
|
|
68
|
-
"download-source-file": 5,
|
|
69
78
|
"quick-questions": 26,
|
|
70
79
|
"digcompedu": 4,
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"casestudy": 5,
|
|
81
|
-
"select-media-files": 26,
|
|
82
|
-
"complete": 17,
|
|
83
|
-
"word-search": 25,
|
|
84
|
-
"quick-questions-multiple-choice": 28,
|
|
85
|
-
"scrambled-list": 14,
|
|
86
|
-
"sort": 26,
|
|
87
|
-
"map": 158
|
|
80
|
+
"puzzle": 26,
|
|
81
|
+
"dragdrop": 18,
|
|
82
|
+
"adaptative-quiz": 14,
|
|
83
|
+
"trueorfalse": 19,
|
|
84
|
+
"map": 158,
|
|
85
|
+
"three-d-viewer": 10,
|
|
86
|
+
"rubric": 5,
|
|
87
|
+
"mathematicaloperations": 18,
|
|
88
|
+
"three-sixty-viewer": 6
|
|
88
89
|
},
|
|
89
90
|
"idevicesBundle": {
|
|
90
|
-
"count":
|
|
91
|
-
"files":
|
|
92
|
-
"size":
|
|
93
|
-
"hash": "
|
|
91
|
+
"count": 52,
|
|
92
|
+
"files": 1018,
|
|
93
|
+
"size": 4153645,
|
|
94
|
+
"hash": "b264144ca156a59a50f762d064ba5353b3136a92afe13b31f5ebec09a47d9b54"
|
|
94
95
|
},
|
|
95
96
|
"libs": {
|
|
96
97
|
"files": 9,
|
|
97
|
-
"size":
|
|
98
|
-
"hash": "
|
|
98
|
+
"size": 313157,
|
|
99
|
+
"hash": "959c03673e458af8b502a7b335c9a3073e923441896233df833a326d5336ddd3"
|
|
99
100
|
},
|
|
100
101
|
"common": {
|
|
101
|
-
"files":
|
|
102
|
-
"size":
|
|
103
|
-
"hash": "
|
|
102
|
+
"files": 133,
|
|
103
|
+
"size": 2731770,
|
|
104
|
+
"hash": "ced8ba388aab4061ebac5b1d6cea5ea709af015bea25a37d5f90cedcfa02db2d"
|
|
104
105
|
},
|
|
105
106
|
"contentCss": {
|
|
106
107
|
"files": 4,
|
|
107
|
-
"size":
|
|
108
|
-
"hash": "
|
|
108
|
+
"size": 45491,
|
|
109
|
+
"hash": "6113f93a438647d347a38e0a9d16575a42be0488bfa48a48dc6f95113d26c80a"
|
|
109
110
|
}
|
|
110
111
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|