create-openclass-uniminuto 1.4.2 → 1.6.2

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.
Files changed (28) hide show
  1. package/bin/create-openclass-uniminuto.mjs +138 -2
  2. package/package.json +2 -2
  3. package/template/README.md +612 -326
  4. package/template/package-lock.json +11568 -11568
  5. package/template/package.json +64 -61
  6. package/template/public/imagenes/avion.png +0 -0
  7. package/template/public/imagenes/favicon.png +0 -0
  8. package/template/scripts/decks.mjs +48 -10
  9. package/template/scripts/dev-all.mjs +20 -7
  10. package/template/scripts/generar-desde-config.mjs +348 -511
  11. package/template/theme/uniminuto/components/AutoFitText.vue +7 -2
  12. package/template/theme/uniminuto/components/TitleRibbon.vue +222 -0
  13. package/template/theme/uniminuto/layouts/README.md +99 -0
  14. package/template/theme/uniminuto/layouts/slide-02-titulo.vue +29 -47
  15. package/template/theme/uniminuto/layouts/slide-03-imagen-izquierda.vue +43 -69
  16. package/template/theme/uniminuto/layouts/slide-04-imagen-derecha.vue +49 -75
  17. package/template/theme/uniminuto/layouts/slide-05-titulo-superior-texto-derecha.vue +34 -66
  18. package/template/theme/uniminuto/layouts/slide-06-titulo-superior-texto-izquierda.vue +28 -78
  19. package/template/theme/uniminuto/layouts/slide-07-multimedia-con-titulo.vue +10 -66
  20. package/template/theme/uniminuto/layouts/slide-08-titulo-texto.vue +24 -53
  21. package/template/theme/uniminuto/layouts/slide-09-objetivos.vue +26 -53
  22. package/template/theme/uniminuto/layouts/slide-10-titulo-dos-columnas.vue +27 -59
  23. package/template/theme/uniminuto/layouts/slide-11-dos-titulos-dos-columnas.vue +32 -65
  24. package/template/theme/uniminuto/layouts/slide-codigo.vue +16 -113
  25. package/template/theme/uniminuto/styles/base.css +214 -108
  26. package/template/public/fondos/slide-02-titulo.png +0 -0
  27. package/template/public/fondos/slide-03-imagen-izquierda.png +0 -0
  28. package/template/public/fondos/slide-04-imagen-derecha.png +0 -0
@@ -1,326 +1,612 @@
1
- # Open Class UNIMINUTO · Slidev
2
-
3
- Proyecto generado con `create-openclass-uniminuto` o creado desde la plantilla `openclass-uniminuto-template`.
4
-
5
- Este curso está diseñado para organizar una Open Class de **8 semanas**, con generación progresiva de cada semana, portal principal, lanzadores individuales, exportación de PDF/PPTX y publicación automática en **GitHub Pages**.
6
-
7
- ---
8
-
9
-
10
- ## Crear el curso dentro de un repositorio ya creado en GitHub
11
-
12
- Si primero creaste el repositorio en GitHub, clónalo y aplica la plantilla desde npm dentro de la carpeta del repositorio:
13
-
14
- ```bash
15
- git clone https://github.com/herrerawilliamh/openclass-iot.git
16
- cd openclass-iot
17
- npm create openclass-uniminuto@latest . -- --iot
18
- npm install
19
- npm run semana -- 1
20
- npm run dev
21
- ```
22
-
23
- Si el repositorio ya tenía archivos iniciales y deseas reemplazarlos por los de la plantilla:
24
-
25
- ```bash
26
- npm create openclass-uniminuto@latest . -- --iot --force
27
- ```
28
-
29
- La sincronización con GitHub se hace después con Git:
30
-
31
- ```bash
32
- git add -A
33
- git commit -m "Configura Open Class"
34
- git push
35
- ```
36
-
37
-
38
- ## 1. Primer uso
39
-
40
- Instala dependencias:
41
-
42
- ```bash
43
- npm install
44
- ```
45
-
46
- Configura el curso desde consola:
47
-
48
- ```bash
49
- npm run nuevo
50
- ```
51
-
52
- Genera la primera semana:
53
-
54
- ```bash
55
- npm run semana -- 1
56
- ```
57
-
58
- Ejecuta el portal principal:
59
-
60
- ```bash
61
- npm run dev
62
- ```
63
-
64
- Una semana específica se abre con:
65
-
66
- ```bash
67
- npm run dev:s1
68
- npm run dev:s2
69
- npm run dev:s3
70
- ```
71
-
72
- ---
73
-
74
- ## 2. Tres formas de crear este curso
75
-
76
- ### Opción A · Desde npm
77
-
78
- ```bash
79
- npm create openclass-uniminuto@latest openclass-iot -- --iot
80
- cd openclass-iot
81
- npm install
82
- npm run semana -- 1
83
- npm run dev
84
- ```
85
-
86
- ### Opción B · Desde GitHub Template
87
-
88
- 1. Entra al repositorio `openclass-uniminuto-template`.
89
- 2. Clic en **Use this template**.
90
- 3. Crea un repositorio nuevo, por ejemplo `openclass-iot`.
91
- 4. Clónalo.
92
- 5. Ejecuta los comandos del curso.
93
-
94
- ```bash
95
- git clone https://github.com/herrerawilliamh/openclass-iot.git
96
- cd openclass-iot
97
- npm install
98
- npm run nuevo
99
- npm run semana -- 1
100
- npm run dev
101
- ```
102
-
103
- ### Opción C · Repo creado en GitHub y curso generado en local
104
-
105
- Esta opción combina GitHub y npm.
106
-
107
- #### Si el repositorio fue creado desde plantilla
108
-
109
- ```bash
110
- git clone https://github.com/herrerawilliamh/openclass-iot.git
111
- cd openclass-iot
112
- npm install
113
- npm run nuevo
114
- npm run semana -- 1
115
- npm run dev
116
- ```
117
-
118
- Luego:
119
-
120
- ```bash
121
- git add -A
122
- git commit -m "Generar semana 1"
123
- git push
124
- ```
125
-
126
- #### Si el repositorio está vacío
127
-
128
- ```bash
129
- npm create openclass-uniminuto@latest openclass-iot -- --iot
130
- cd openclass-iot
131
- npm install
132
- npm run semana -- 1
133
- npm run dev
134
- ```
135
-
136
- Después conecta el remoto:
137
-
138
- ```bash
139
- git init
140
- git branch -M main
141
- git add -A
142
- git commit -m "Publicación inicial Open Class"
143
- git remote add origin https://github.com/herrerawilliamh/openclass-iot.git
144
- git push -u origin main
145
- ```
146
-
147
- ---
148
-
149
- ## 3. Generar semanas una a una
150
-
151
- El curso siempre se organiza en **8 semanas**. Puedes generarlas progresivamente.
152
-
153
- ```bash
154
- npm run semana -- 1
155
- npm run semana -- 2 --title "Título de la semana 2" --date "Junio 15 de 2026"
156
- npm run semana -- 3 --title "Título de la semana 3" --theme "Tema central"
157
- ```
158
-
159
- El comando `semana` actualiza automáticamente:
160
-
161
- ```text
162
- openclass.config.json
163
- slides.md
164
- scripts/decks.mjs
165
- package.json
166
- curso_semanaN.md
167
- semanas/curso_semanaN.md
168
- ```
169
-
170
- El contenido ya editado dentro de `semanas/*.md` se conserva. Solo se sobrescribe si usas:
171
-
172
- ```bash
173
- npm run semana -- 4 --force-content
174
- ```
175
-
176
- Para activar únicamente una semana:
177
-
178
- ```bash
179
- npm run semana -- 4 --only
180
- ```
181
-
182
- ---
183
-
184
- ## 4. Editar contenido académico
185
-
186
- El contenido real de cada presentación está en:
187
-
188
- ```text
189
- semanas/
190
- ```
191
-
192
- Ejemplo:
193
-
194
- ```text
195
- semanas/iot_semana1.md
196
- semanas/iot_semana2.md
197
- semanas/iot_semana3.md
198
- ```
199
-
200
- Los archivos de la raíz como `iot_semana1.md` funcionan como lanzadores. Normalmente no debes editarlos manualmente.
201
-
202
- ---
203
-
204
- ## 5. Recursos del curso
205
-
206
- Usa estas carpetas:
207
-
208
- ```text
209
- public/imagenes/ imágenes del curso
210
- public/videos/ videos y recursos audiovisuales
211
- public/descargas/ PDF, PPTX u otros descargables
212
- public/fondos/ fondos institucionales
213
- ```
214
-
215
- ---
216
-
217
- ## 6. Construcción local
218
-
219
- Construir el portal y las semanas activas:
220
-
221
- ```bash
222
- npm run pages:build
223
- ```
224
-
225
- Previsualizar la versión estática:
226
-
227
- ```bash
228
- npm run pages:preview
229
- ```
230
-
231
- Revisar configuración para GitHub Pages:
232
-
233
- ```bash
234
- npm run pages:check
235
- ```
236
-
237
- ---
238
-
239
- ## 7. Publicar en GitHub Pages
240
-
241
- Este proyecto ya incluye:
242
-
243
- ```text
244
- .github/workflows/deploy.yml
245
- ```
246
-
247
- El workflow construye el sitio y publica la carpeta `dist` en GitHub Pages.
248
-
249
- En GitHub configura:
250
-
251
- ```text
252
- Settings → Pages → Build and deployment → Source → GitHub Actions
253
- ```
254
-
255
- Luego sube cambios:
256
-
257
- ```bash
258
- git add -A
259
- git commit -m "Actualizar Open Class"
260
- git push
261
- ```
262
-
263
- Cada `push` a `main` construirá y publicará el sitio automáticamente.
264
-
265
- La URL esperada será:
266
-
267
- ```text
268
- https://herrerawilliamh.github.io/NOMBRE-DEL-REPOSITORIO/
269
- ```
270
-
271
- Ejemplo:
272
-
273
- ```text
274
- https://herrerawilliamh.github.io/openclass-iot/
275
- ```
276
-
277
- ---
278
-
279
- ## 8. Flujo semanal sugerido
280
-
281
- Semana 1:
282
-
283
- ```bash
284
- npm run semana -- 1 --title "Introducción al curso"
285
- git add -A
286
- git commit -m "Agregar semana 1"
287
- git push
288
- ```
289
-
290
- Semana 2:
291
-
292
- ```bash
293
- npm run semana -- 2 --title "Tema de la semana 2"
294
- git add -A
295
- git commit -m "Agregar semana 2"
296
- git push
297
- ```
298
-
299
- Repite el proceso hasta la semana 8.
300
-
301
- ---
302
-
303
- ## 9. Comandos útiles
304
-
305
- | Comando | Uso |
306
- |---|---|
307
- | `npm run nuevo` | Configura un curso desde consola |
308
- | `npm run semana -- 1` | Genera o activa la semana 1 |
309
- | `npm run dev` | Abre el portal principal |
310
- | `npm run dev:s1` | Abre la semana 1 |
311
- | `npm run pages:check` | Revisa configuración para GitHub Pages |
312
- | `npm run pages:build` | Construye el sitio estático y exporta descargas |
313
- | `npm run pages:preview` | Previsualiza la versión publicada |
314
- | `npm run publicar` | Ejecuta exportaciones y construcción local |
315
-
316
- ---
317
-
318
- ## 10. Archivos clave
319
-
320
- ```text
321
- openclass.config.json configuración general del curso
322
- slides.md portal principal
323
- semanas/ contenido académico real
324
- scripts/decks.mjs listado de presentaciones activas
325
- .github/workflows/deploy.yml despliegue automático en GitHub Pages
326
- ```
1
+ # Open Class UNIMINUTO · Slidev
2
+
3
+ Proyecto generado con `create-openclass-uniminuto` o creado desde la plantilla `openclass-uniminuto-template`.
4
+
5
+ Este curso está diseñado para organizar una Open Class de **8 semanas**, con generación progresiva de cada semana, portal principal, lanzadores individuales, exportación de PDF/PPTX y publicación automática en **GitHub Pages**.
6
+
7
+ ---
8
+
9
+ ## Crear el curso dentro de un repositorio ya creado en GitHub
10
+
11
+ Si primero creaste el repositorio en GitHub, clónalo y aplica la plantilla desde npm dentro de la carpeta del repositorio:
12
+
13
+ ```bash
14
+ git clone https://github.com/herrerawilliamh/openclass-iot.git
15
+ cd openclass-iot
16
+ npm create openclass-uniminuto@latest . -- --iot
17
+ npm install
18
+ npm run semana -- 1
19
+ npm run dev
20
+ ```
21
+
22
+ Si el repositorio ya tenía archivos iniciales y deseas reemplazarlos por los de la plantilla:
23
+
24
+ ```bash
25
+ npm create openclass-uniminuto@latest . -- --iot --force
26
+ ```
27
+
28
+ La sincronización con GitHub se hace después con Git:
29
+
30
+ ```bash
31
+ git add -A
32
+ git commit -m "Configura Open Class"
33
+ git push
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 1. Primer uso
39
+
40
+ Instala dependencias:
41
+
42
+ ```bash
43
+ npm install
44
+ ```
45
+
46
+ Configura el curso desde consola:
47
+
48
+ ```bash
49
+ npm run nuevo
50
+ ```
51
+
52
+ Genera la primera semana:
53
+
54
+ ```bash
55
+ npm run semana -- 1
56
+ ```
57
+
58
+ Ejecuta el portal principal:
59
+
60
+ ```bash
61
+ npm run dev
62
+ ```
63
+
64
+ Una semana específica se abre con:
65
+
66
+ ```bash
67
+ npm run dev:s1
68
+ npm run dev:s2
69
+ npm run dev:s3
70
+ ```
71
+
72
+ También puedes abrir todas las semanas activas en varios puertos:
73
+
74
+ ```bash
75
+ npm run dev:all
76
+ ```
77
+
78
+ ---
79
+
80
+ ## 2. Tres formas de crear este curso
81
+
82
+ ### Opción A · Desde npm
83
+
84
+ ```bash
85
+ npm create openclass-uniminuto@latest openclass-iot -- --iot
86
+ cd openclass-iot
87
+ npm install
88
+ npm run semana -- 1
89
+ npm run dev
90
+ ```
91
+
92
+ ### Opción B · Desde GitHub Template
93
+
94
+ 1. Entra al repositorio `openclass-uniminuto-template`.
95
+ 2. Clic en **Use this template**.
96
+ 3. Crea un repositorio nuevo, por ejemplo `openclass-iot`.
97
+ 4. Clónalo.
98
+ 5. Ejecuta los comandos del curso.
99
+
100
+ ```bash
101
+ git clone https://github.com/herrerawilliamh/openclass-iot.git
102
+ cd openclass-iot
103
+ npm install
104
+ npm run nuevo
105
+ npm run semana -- 1
106
+ npm run dev
107
+ ```
108
+
109
+ ### Opción C · Repo creado en GitHub y curso generado en local
110
+
111
+ Esta opción combina GitHub y npm.
112
+
113
+ #### Si el repositorio fue creado desde plantilla
114
+
115
+ ```bash
116
+ git clone https://github.com/herrerawilliamh/openclass-iot.git
117
+ cd openclass-iot
118
+ npm install
119
+ npm run nuevo
120
+ npm run semana -- 1
121
+ npm run dev
122
+ ```
123
+
124
+ Luego:
125
+
126
+ ```bash
127
+ git add -A
128
+ git commit -m "Generar semana 1"
129
+ git push
130
+ ```
131
+
132
+ #### Si el repositorio está vacío
133
+
134
+ ```bash
135
+ npm create openclass-uniminuto@latest openclass-iot -- --iot
136
+ cd openclass-iot
137
+ npm install
138
+ npm run semana -- 1
139
+ npm run dev
140
+ ```
141
+
142
+ Después conecta el remoto:
143
+
144
+ ```bash
145
+ git init
146
+ git branch -M main
147
+ git add -A
148
+ git commit -m "Publicación inicial Open Class"
149
+ git remote add origin https://github.com/herrerawilliamh/openclass-iot.git
150
+ git push -u origin main
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 3. Generar semanas una a una
156
+
157
+ El curso siempre se organiza en **8 semanas**. Puedes generarlas progresivamente.
158
+
159
+ ```bash
160
+ npm run semana -- 1
161
+ npm run semana -- 2 --title "Título de la semana 2" --date "Junio 15 de 2026"
162
+ npm run semana -- 3 --title "Título de la semana 3" --theme "Tema central"
163
+ ```
164
+
165
+ El comando `semana` actualiza automáticamente:
166
+
167
+ ```text
168
+ openclass.config.json
169
+ slides.md
170
+ scripts/decks.mjs
171
+ package.json
172
+ curso_semanaN.md
173
+ semanas/curso_semanaN.md
174
+ ```
175
+
176
+ El contenido ya editado dentro de `semanas/*.md` se conserva. Solo se sobrescribe si usas:
177
+
178
+ ```bash
179
+ npm run semana -- 4 --force-content
180
+ ```
181
+
182
+ Para activar únicamente una semana ya existente:
183
+
184
+ ```bash
185
+ npm run semana -- 4 --only
186
+ ```
187
+
188
+ ---
189
+
190
+ ## 4. Editar contenido académico
191
+
192
+ El contenido real de cada presentación está en:
193
+
194
+ ```text
195
+ semanas/
196
+ ```
197
+
198
+ Ejemplo:
199
+
200
+ ```text
201
+ semanas/iot_semana1.md
202
+ semanas/iot_semana2.md
203
+ semanas/iot_semana3.md
204
+ ```
205
+
206
+ Los archivos de la raíz como `iot_semana1.md` funcionan como lanzadores. Normalmente no debes editarlos manualmente.
207
+
208
+ Un lanzador raíz tiene una estructura como esta:
209
+
210
+ ```md
211
+ ---
212
+ theme: ./theme/uniminuto
213
+ title: Curso — Semana 1
214
+ favicon: /favicon.png
215
+ codeCopy: true
216
+ transition: fade
217
+ routerMode: hash
218
+ drawings:
219
+ persist: false
220
+ src: ./semanas/curso_semana1.md
221
+ ---
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 5. Recursos del curso
227
+
228
+ Usa estas carpetas:
229
+
230
+ ```text
231
+ public/imagenes/ imágenes del curso
232
+ public/videos/ videos y recursos audiovisuales
233
+ public/descargas/ PDF, PPTX u otros descargables
234
+ public/fondos/ fondos institucionales
235
+ ```
236
+
237
+ Recomendaciones:
238
+
239
+ * Guarda imágenes propias del curso en `public/imagenes/`.
240
+ * Usa nombres cortos, claros y sin espacios.
241
+ * En las diapositivas, referencia imágenes con rutas absolutas desde `public`.
242
+
243
+ Ejemplo:
244
+
245
+ ```html
246
+ <img src="/imagenes/iot-semana1-arquitectura.png" alt="Arquitectura IoT" />
247
+ ```
248
+
249
+ Evita rutas demasiado largas o generadas a partir de prompts completos.
250
+
251
+ ---
252
+
253
+ ## 6. Detección automática de semanas
254
+
255
+ El proyecto detecta automáticamente las presentaciones semanales disponibles a partir de los lanzadores ubicados en la raíz.
256
+
257
+ Ejemplo:
258
+
259
+ ```text
260
+ iot_semana1.md
261
+ iot_semana2.md
262
+ gestionseguridad_semana7.md
263
+ bigdata_semana4.md
264
+ ```
265
+
266
+ Cada archivo raíz debe apuntar al contenido real ubicado en `semanas/`.
267
+
268
+ El archivo `scripts/decks.mjs` detecta estos lanzadores y construye automáticamente el portal principal y todas las semanas activas.
269
+
270
+ Ya no es necesario editar manualmente `scripts/decks.mjs` para activar cada semana, siempre que el lanzador raíz exista y tenga un nombre con este patrón:
271
+
272
+ ```text
273
+ curso_semanaN.md
274
+ ```
275
+
276
+ Ejemplos válidos:
277
+
278
+ ```text
279
+ bigdata_semana1.md
280
+ iot_semana5.md
281
+ gestionseguridad_semana7.md
282
+ percepcioncomputacional_semana8.md
283
+ ```
284
+
285
+ Ejemplos que no se incluyen automáticamente:
286
+
287
+ ```text
288
+ demo_semana1.md
289
+ semana1.md
290
+ presentacion.md
291
+ ```
292
+
293
+ ---
294
+
295
+ ## 7. Construcción local
296
+
297
+ Construir el portal y las semanas activas:
298
+
299
+ ```bash
300
+ npm run pages:build
301
+ ```
302
+
303
+ Este comando ejecuta:
304
+
305
+ ```text
306
+ npm run export:downloads
307
+ npm run build:all
308
+ ```
309
+
310
+ Por tanto, genera:
311
+
312
+ ```text
313
+ dist/ sitio estático final
314
+ dist/semanas/ semanas publicadas
315
+ public/descargas/*.pdf descargas PDF
316
+ public/descargas/*.pptx descargas PPTX
317
+ dist/.nojekyll archivo requerido para GitHub Pages
318
+ ```
319
+
320
+ Previsualizar la versión estática:
321
+
322
+ ```bash
323
+ npm run pages:preview
324
+ ```
325
+
326
+ Revisar configuración para GitHub Pages:
327
+
328
+ ```bash
329
+ npm run pages:check
330
+ ```
331
+
332
+ También puedes probar directamente la carpeta `dist` con:
333
+
334
+ ```bash
335
+ npx serve dist
336
+ ```
337
+
338
+ ---
339
+
340
+ ## 8. Publicar en GitHub Pages
341
+
342
+ Este proyecto ya incluye:
343
+
344
+ ```text
345
+ .github/workflows/deploy.yml
346
+ ```
347
+
348
+ El workflow construye el sitio y publica la carpeta `dist` en GitHub Pages.
349
+
350
+ En GitHub configura:
351
+
352
+ ```text
353
+ Settings → Pages → Build and deployment → Source → GitHub Actions
354
+ ```
355
+
356
+ Luego sube cambios:
357
+
358
+ ```bash
359
+ git add -A
360
+ git commit -m "Actualizar Open Class"
361
+ git push
362
+ ```
363
+
364
+ Cada `push` a `main` construirá y publicará el sitio automáticamente.
365
+
366
+ La URL esperada será:
367
+
368
+ ```text
369
+ https://herrerawilliamh.github.io/NOMBRE-DEL-REPOSITORIO/
370
+ ```
371
+
372
+ Ejemplo:
373
+
374
+ ```text
375
+ https://herrerawilliamh.github.io/openclass-iot/
376
+ ```
377
+
378
+ Las semanas quedarán disponibles en rutas como:
379
+
380
+ ```text
381
+ https://herrerawilliamh.github.io/openclass-iot/semanas/iot_semana1/
382
+ https://herrerawilliamh.github.io/openclass-iot/semanas/iot_semana2/
383
+ ```
384
+
385
+ ---
386
+
387
+ ## 9. Actualizar tema, layouts y scripts en un curso existente
388
+
389
+ Si el curso ya existe y solo quieres actualizar tema, layouts, scripts de build, workflow y documentación base sin tocar el contenido académico de `semanas/`, usa:
390
+
391
+ ```bash
392
+ npm create openclass-uniminuto@latest . -- --update-theme
393
+ ```
394
+
395
+ Este comando actualiza recursos seguros como:
396
+
397
+ ```text
398
+ README.md
399
+ theme/uniminuto/
400
+ scripts/decks.mjs
401
+ scripts/dev-all.mjs
402
+ scripts/build-site.mjs
403
+ scripts/build-incremental.mjs
404
+ scripts/export-downloads.mjs
405
+ scripts/export-incremental.mjs
406
+ scripts/preparar-github-pages.mjs
407
+ scripts/semana.mjs
408
+ .github/workflows/deploy.yml
409
+ public/imagenes/avion.png
410
+ ```
411
+
412
+ No debería sobrescribir:
413
+
414
+ ```text
415
+ slides.md
416
+ openclass.config.json
417
+ semanas/*.md
418
+ public/imagenes propias del curso
419
+ ```
420
+
421
+ Después de actualizar, revisa:
422
+
423
+ ```bash
424
+ git status
425
+ npm run pages:build
426
+ ```
427
+
428
+ Si todo funciona:
429
+
430
+ ```bash
431
+ git add -A
432
+ git commit -m "Actualizar tema institucional Open Class"
433
+ git push
434
+ ```
435
+
436
+ ---
437
+
438
+ ## 10. Flujo semanal sugerido
439
+
440
+ Semana 1:
441
+
442
+ ```bash
443
+ npm run semana -- 1 --title "Introducción al curso"
444
+ git add -A
445
+ git commit -m "Agregar semana 1"
446
+ git push
447
+ ```
448
+
449
+ Semana 2:
450
+
451
+ ```bash
452
+ npm run semana -- 2 --title "Tema de la semana 2"
453
+ git add -A
454
+ git commit -m "Agregar semana 2"
455
+ git push
456
+ ```
457
+
458
+ Repite el proceso hasta la semana 8.
459
+
460
+ ---
461
+
462
+ ## 11. Comandos útiles
463
+
464
+ | Comando | Uso |
465
+ | ------------------------- | ----------------------------------------------- |
466
+ | `npm run nuevo` | Configura un curso desde consola |
467
+ | `npm run semana -- 1` | Genera o activa la semana 1 |
468
+ | `npm run dev` | Abre el portal principal |
469
+ | `npm run dev:s1` | Abre la semana 1 |
470
+ | `npm run dev:all` | Abre portal y semanas activas en varios puertos |
471
+ | `npm run pages:check` | Revisa configuración para GitHub Pages |
472
+ | `npm run pages:build` | Construye el sitio estático y exporta descargas |
473
+ | `npm run pages:preview` | Previsualiza la versión publicada |
474
+ | `npm run publicar` | Ejecuta exportaciones y construcción local |
475
+ | `npm run actualizar:tema` | Actualiza tema/layouts/scripts desde npm |
476
+
477
+ ---
478
+
479
+ ## 12. Archivos clave
480
+
481
+ ```text
482
+ openclass.config.json configuración general del curso
483
+ slides.md portal principal
484
+ semanas/ contenido académico real
485
+ curso_semanaN.md lanzadores raíz de cada semana
486
+ scripts/decks.mjs detección automática de semanas activas
487
+ scripts/build-site.mjs construcción de portal y semanas
488
+ scripts/export-downloads.mjs exportación de PDF/PPTX
489
+ .github/workflows/deploy.yml despliegue automático en GitHub Pages
490
+ theme/uniminuto/ tema institucional UNIMINUTO
491
+ public/imagenes/ imágenes del curso
492
+ public/descargas/ archivos PDF/PPTX exportados
493
+ ```
494
+
495
+ ---
496
+
497
+ ## 13. Recomendaciones antes de publicar
498
+
499
+ Antes de hacer `git push`, revisa:
500
+
501
+ ```bash
502
+ git status
503
+ npm run pages:build
504
+ ```
505
+
506
+ Confirma que existan las semanas generadas:
507
+
508
+ ```bash
509
+ ls dist/semanas
510
+ ```
511
+
512
+ En Windows PowerShell:
513
+
514
+ ```powershell
515
+ Get-ChildItem .\dist\semanas | Select-Object Name
516
+ ```
517
+
518
+ Confirma que una semana específica exista:
519
+
520
+ ```powershell
521
+ Test-Path .\dist\semanas\curso_semana1\index.html
522
+ ```
523
+
524
+ Si responde `True`, esa semana fue generada correctamente.
525
+
526
+ ---
527
+
528
+ ## 14. Problemas comunes
529
+
530
+ ### La semana abre localmente, pero no aparece en GitHub Pages
531
+
532
+ Verifica que exista el lanzador raíz:
533
+
534
+ ```text
535
+ curso_semanaN.md
536
+ ```
537
+
538
+ y que apunte al archivo real:
539
+
540
+ ```text
541
+ semanas/curso_semanaN.md
542
+ ```
543
+
544
+ Luego ejecuta:
545
+
546
+ ```bash
547
+ npm run pages:build
548
+ ```
549
+
550
+ ### Error con imágenes
551
+
552
+ Si aparece un error como:
553
+
554
+ ```text
555
+ Failed to resolve import "/imagenes/..."
556
+ ```
557
+
558
+ revisa que el archivo exista en:
559
+
560
+ ```text
561
+ public/imagenes/
562
+ ```
563
+
564
+ y que la ruta usada en la diapositiva tenga extensión correcta.
565
+
566
+ Ejemplo válido:
567
+
568
+ ```html
569
+ <img src="/imagenes/semana701.png" alt="Imagen de apoyo" />
570
+ ```
571
+
572
+ ### GitHub Pages no publica
573
+
574
+ Revisa:
575
+
576
+ ```text
577
+ Settings → Pages → Source → GitHub Actions
578
+ Actions → Deploy Open Class to GitHub Pages
579
+ ```
580
+
581
+ También puedes ejecutar:
582
+
583
+ ```bash
584
+ npm run pages:check
585
+ ```
586
+
587
+ ### Warnings de build
588
+
589
+ Algunos mensajes informativos no bloquean la publicación si el build termina con:
590
+
591
+ ```text
592
+ ✓ built
593
+ ✓ dist/.nojekyll creado para GitHub Pages.
594
+ ```
595
+
596
+ ---
597
+
598
+ ## 15. Actualizar este proyecto desde el generador local
599
+
600
+ Durante desarrollo del generador, también puedes aplicar la actualización de tema desde una copia local:
601
+
602
+ ```bash
603
+ node ../create-openclass-uniminuto/bin/create-openclass-uniminuto.mjs . --update-theme
604
+ ```
605
+
606
+ En Windows, desde una carpeta de curso ubicada dentro de `D:\OpenClass`:
607
+
608
+ ```powershell
609
+ node ..\create-openclass-uniminuto\bin\create-openclass-uniminuto.mjs . --update-theme
610
+ ```
611
+
612
+ Esto es útil para probar cambios antes de publicar una nueva versión npm.