create-openclass-uniminuto 1.6.2 → 1.6.5

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.
@@ -1,612 +1,654 @@
1
- # Open Class UNIMINUTO · Slidev
1
+ # Open Class UNIMINUTO Template
2
2
 
3
- Proyecto generado con `create-openclass-uniminuto` o creado desde la plantilla `openclass-uniminuto-template`.
3
+ Plantilla base para construir presentaciones académicas tipo **Open Class** con Slidev, tema institucional UNIMINUTO, semanas independientes, portal principal, exportación a PDF/PPTX y despliegue automático en GitHub Pages.
4
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**.
5
+ Esta plantilla está pensada para cursos universitarios organizados por semanas. Cada semana se desarrolla como una presentación Slidev independiente, pero todas se integran en un portal principal generado automáticamente.
6
6
 
7
7
  ---
8
8
 
9
- ## Crear el curso dentro de un repositorio ya creado en GitHub
9
+ ## 1. ¿Qué contiene esta plantilla?
10
10
 
11
- Si primero creaste el repositorio en GitHub, clónalo y aplica la plantilla desde npm dentro de la carpeta del repositorio:
11
+ La estructura general del proyecto es:
12
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
13
+ ```text
14
+ .
15
+ ├─ .github/
16
+ │ └─ workflows/
17
+ │ └─ deploy.yml
18
+ ├─ openclass.config.json
19
+ ├─ package.json
20
+ ├─ slides.md
21
+ ├─ plantillas/
22
+ │ ├─ launcher.md
23
+ │ └─ semana.md
24
+ ├─ public/
25
+ │ ├─ favicon.png
26
+ │ ├─ fondos/
27
+ │ ├─ imagenes/
28
+ │ ├─ descargas/
29
+ │ └─ videos/
30
+ ├─ scripts/
31
+ │ ├─ generar-desde-config.mjs
32
+ │ ├─ semana.mjs
33
+ │ ├─ decks.mjs
34
+ │ ├─ build-site.mjs
35
+ │ ├─ export-downloads.mjs
36
+ │ ├─ preparar-github-pages.mjs
37
+ │ ├─ publicar.mjs
38
+ │ └─ nuevo-curso.mjs
39
+ ├─ semanas/
40
+ └─ theme/
41
+ └─ uniminuto/
20
42
  ```
21
43
 
22
- Si el repositorio ya tenía archivos iniciales y deseas reemplazarlos por los de la plantilla:
44
+ ---
23
45
 
24
- ```bash
25
- npm create openclass-uniminuto@latest . -- --iot --force
46
+ ## 2. Recursos visuales obligatorios
47
+
48
+ El tema institucional requiere estos archivos:
49
+
50
+ ```text
51
+ public/fondos/slide-01-portada.png
52
+ public/fondos/slide-05-template.png
53
+ public/fondos/slide-06-cierre.png
54
+ public/imagenes/avion.png
55
+ public/imagenes/favicon.png
56
+ public/favicon.png
26
57
  ```
27
58
 
28
- La sincronización con GitHub se hace después con Git:
59
+ `public/favicon.png` se usa como favicon del navegador.
29
60
 
30
- ```bash
31
- git add -A
32
- git commit -m "Configura Open Class"
33
- git push
61
+ `public/imagenes/favicon.png` puede usarse como imagen institucional dentro de las diapositivas.
62
+
63
+ Las imágenes académicas propias de cada curso deben ubicarse preferiblemente en:
64
+
65
+ ```text
66
+ public/imagenes/
34
67
  ```
35
68
 
36
69
  ---
37
70
 
38
- ## 1. Primer uso
71
+ ## 3. Concepto general de funcionamiento
39
72
 
40
- Instala dependencias:
73
+ La fuente principal de configuración es:
41
74
 
42
- ```bash
43
- npm install
75
+ ```text
76
+ openclass.config.json
44
77
  ```
45
78
 
46
- Configura el curso desde consola:
79
+ Desde ese archivo se definen:
47
80
 
48
- ```bash
49
- npm run nuevo
50
- ```
81
+ * Nombre corto del curso.
82
+ * Nombre completo del curso.
83
+ * Descripción general.
84
+ * Número total de semanas.
85
+ * Semanas activas.
86
+ * Título, fecha, tema y actividad de cada semana.
51
87
 
52
- Genera la primera semana:
88
+ Las semanas activas se controlan en:
53
89
 
54
- ```bash
55
- npm run semana -- 1
90
+ ```json
91
+ "generation": {
92
+ "activeWeeks": [1, 2, 3]
93
+ }
56
94
  ```
57
95
 
58
- Ejecuta el portal principal:
96
+ Solo las semanas incluidas en `activeWeeks` aparecen en el portal, se exportan y se construyen para GitHub Pages.
59
97
 
60
- ```bash
61
- npm run dev
62
- ```
98
+ ---
99
+
100
+ ## 4. Archivos principales
63
101
 
64
- Una semana específica se abre con:
102
+ ### `slides.md`
103
+
104
+ Portal principal del curso. Se genera automáticamente con:
65
105
 
66
106
  ```bash
67
- npm run dev:s1
68
- npm run dev:s2
69
- npm run dev:s3
107
+ npm run config
70
108
  ```
71
109
 
72
- También puedes abrir todas las semanas activas en varios puertos:
110
+ No se recomienda editarlo manualmente, porque puede ser reemplazado por el generador.
73
111
 
74
- ```bash
75
- npm run dev:all
112
+ ### `curso_semanaN.md`
113
+
114
+ Archivo lanzador de cada semana. Incluye la configuración global de Slidev y referencia el contenido real desde `semanas/`.
115
+
116
+ Ejemplo:
117
+
118
+ ```text
119
+ demo_semana1.md
76
120
  ```
77
121
 
78
- ---
122
+ ### `semanas/curso_semanaN.md`
79
123
 
80
- ## 2. Tres formas de crear este curso
124
+ Contenido académico real de la semana.
81
125
 
82
- ### Opción A · Desde npm
126
+ Ejemplo:
83
127
 
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
128
+ ```text
129
+ semanas/demo_semana1.md
90
130
  ```
91
131
 
92
- ### Opción B · Desde GitHub Template
132
+ Este archivo no se sobrescribe por defecto. Eso permite conservar el contenido diseñado por el docente.
93
133
 
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.
134
+ ### `plantillas/semana.md`
99
135
 
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
136
+ Plantilla base usada al crear una semana nueva. Debe incluir ejemplos de todos los layouts disponibles para que funcione como catálogo inicial.
137
+
138
+ ### `plantillas/launcher.md`
139
+
140
+ Plantilla del archivo lanzador raíz de cada semana.
141
+
142
+ ---
143
+
144
+ ## 5. Caso de uso 1: crear un curso desde GitHub Template
145
+
146
+ Este caso se recomienda cuando se quiere iniciar un curso directamente desde GitHub.
147
+
148
+ ### Paso 1. Crear repositorio desde la plantilla
149
+
150
+ En GitHub:
151
+
152
+ ```text
153
+ Use this template → Create a new repository
107
154
  ```
108
155
 
109
- ### Opción C · Repo creado en GitHub y curso generado en local
156
+ Nombre sugerido:
110
157
 
111
- Esta opción combina GitHub y npm.
158
+ ```text
159
+ openclass-nombrecurso
160
+ ```
112
161
 
113
- #### Si el repositorio fue creado desde plantilla
162
+ Ejemplos:
114
163
 
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
164
+ ```text
165
+ openclass-iot
166
+ openclass-bigdata
167
+ openclass-gestionseguridad
122
168
  ```
123
169
 
124
- Luego:
170
+ ### Paso 2. Clonar el repositorio
125
171
 
126
172
  ```bash
127
- git add -A
128
- git commit -m "Generar semana 1"
129
- git push
173
+ git clone https://github.com/TU_USUARIO/openclass-nombrecurso.git
174
+ cd openclass-nombrecurso
130
175
  ```
131
176
 
132
- #### Si el repositorio está vacío
177
+ ### Paso 3. Instalar dependencias
133
178
 
134
179
  ```bash
135
- npm create openclass-uniminuto@latest openclass-iot -- --iot
136
- cd openclass-iot
137
180
  npm install
138
- npm run semana -- 1
139
- npm run dev
140
181
  ```
141
182
 
142
- Después conecta el remoto:
183
+ ### Paso 4. Editar `openclass.config.json`
143
184
 
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
185
+ Cambiar:
186
+
187
+ ```json
188
+ {
189
+ "course": {
190
+ "shortName": "nombrecurso",
191
+ "fullName": "Nombre completo del curso",
192
+ "year": "2026",
193
+ "description": "Descripción general del curso.",
194
+ "openClassLabel": "Open Class"
195
+ }
196
+ }
151
197
  ```
152
198
 
153
- ---
199
+ ### Paso 5. Generar estructura del curso
154
200
 
155
- ## 3. Generar semanas una a una
201
+ ```bash
202
+ npm run config
203
+ ```
156
204
 
157
- El curso siempre se organiza en **8 semanas**. Puedes generarlas progresivamente.
205
+ ### Paso 6. Activar semanas
158
206
 
159
207
  ```bash
160
208
  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"
209
+ npm run semana -- 2
210
+ npm run semana -- 3
163
211
  ```
164
212
 
165
- El comando `semana` actualiza automáticamente:
213
+ ### Paso 7. Probar localmente
166
214
 
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
215
+ ```bash
216
+ npm run dev
174
217
  ```
175
218
 
176
- El contenido ya editado dentro de `semanas/*.md` se conserva. Solo se sobrescribe si usas:
219
+ Para una semana específica:
177
220
 
178
221
  ```bash
179
- npm run semana -- 4 --force-content
222
+ npm run dev:s1
180
223
  ```
181
224
 
182
- Para activar únicamente una semana ya existente:
225
+ ### Paso 8. Construir para GitHub Pages
183
226
 
184
227
  ```bash
185
- npm run semana -- 4 --only
228
+ npm run pages:build
186
229
  ```
187
230
 
188
- ---
231
+ ### Paso 9. Publicar
189
232
 
190
- ## 4. Editar contenido académico
233
+ ```bash
234
+ git add -A
235
+ git commit -m "Publicación inicial Open Class"
236
+ git push
237
+ ```
191
238
 
192
- El contenido real de cada presentación está en:
239
+ En GitHub:
193
240
 
194
241
  ```text
195
- semanas/
242
+ Settings → Pages → Build and deployment → Source: GitHub Actions
196
243
  ```
197
244
 
198
- Ejemplo:
245
+ ---
199
246
 
200
- ```text
201
- semanas/iot_semana1.md
202
- semanas/iot_semana2.md
203
- semanas/iot_semana3.md
204
- ```
247
+ ## 6. Caso de uso 2: crear un curso con npm
205
248
 
206
- Los archivos de la raíz como `iot_semana1.md` funcionan como lanzadores. Normalmente no debes editarlos manualmente.
249
+ Este caso se recomienda cuando se quiere crear el curso desde consola usando el generador publicado en npm.
207
250
 
208
- Un lanzador raíz tiene una estructura como esta:
251
+ ### Paso 1. Crear carpeta del curso
209
252
 
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
- ---
253
+ ```bash
254
+ mkdir openclass-nombrecurso
255
+ cd openclass-nombrecurso
222
256
  ```
223
257
 
224
- ---
258
+ ### Paso 2. Ejecutar el generador
225
259
 
226
- ## 5. Recursos del curso
260
+ ```bash
261
+ npm create openclass-uniminuto@latest .
262
+ ```
227
263
 
228
- Usa estas carpetas:
264
+ ### Paso 3. Instalar dependencias
229
265
 
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
266
+ ```bash
267
+ npm install
235
268
  ```
236
269
 
237
- Recomendaciones:
270
+ ### Paso 4. Configurar el curso
238
271
 
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`.
272
+ Puedes editar manualmente:
242
273
 
243
- Ejemplo:
274
+ ```text
275
+ openclass.config.json
276
+ ```
244
277
 
245
- ```html
246
- <img src="/imagenes/iot-semana1-arquitectura.png" alt="Arquitectura IoT" />
278
+ o ejecutar:
279
+
280
+ ```bash
281
+ npm run nuevo
247
282
  ```
248
283
 
249
- Evita rutas demasiado largas o generadas a partir de prompts completos.
284
+ ### Paso 5. Generar curso
250
285
 
251
- ---
286
+ ```bash
287
+ npm run config
288
+ ```
252
289
 
253
- ## 6. Detección automática de semanas
290
+ ### Paso 6. Probar y construir
254
291
 
255
- El proyecto detecta automáticamente las presentaciones semanales disponibles a partir de los lanzadores ubicados en la raíz.
292
+ ```bash
293
+ npm run dev
294
+ npm run pages:build
295
+ ```
256
296
 
257
- Ejemplo:
297
+ ### Paso 7. Crear repositorio remoto
258
298
 
259
- ```text
260
- iot_semana1.md
261
- iot_semana2.md
262
- gestionseguridad_semana7.md
263
- bigdata_semana4.md
299
+ ```bash
300
+ git init
301
+ git branch -M main
302
+ git remote add origin https://github.com/TU_USUARIO/openclass-nombrecurso.git
303
+ git add -A
304
+ git commit -m "Publicación inicial Open Class"
305
+ git push -u origin main
264
306
  ```
265
307
 
266
- Cada archivo raíz debe apuntar al contenido real ubicado en `semanas/`.
308
+ ---
267
309
 
268
- El archivo `scripts/decks.mjs` detecta estos lanzadores y construye automáticamente el portal principal y todas las semanas activas.
310
+ ## 7. Caso de uso 3: crear desde GitHub Template y sincronizar con npm
269
311
 
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:
312
+ Este caso se recomienda cuando ya existe un repositorio creado desde la plantilla de GitHub, pero se quiere actualizar después con la versión más reciente publicada en npm.
271
313
 
272
- ```text
273
- curso_semanaN.md
274
- ```
314
+ ### Paso 1. Crear el repositorio desde GitHub Template
275
315
 
276
- Ejemplos válidos:
316
+ Usar:
277
317
 
278
318
  ```text
279
- bigdata_semana1.md
280
- iot_semana5.md
281
- gestionseguridad_semana7.md
282
- percepcioncomputacional_semana8.md
319
+ Use this template → Create a new repository
283
320
  ```
284
321
 
285
- Ejemplos que no se incluyen automáticamente:
322
+ ### Paso 2. Clonar localmente
286
323
 
287
- ```text
288
- demo_semana1.md
289
- semana1.md
290
- presentacion.md
324
+ ```bash
325
+ git clone https://github.com/TU_USUARIO/openclass-nombrecurso.git
326
+ cd openclass-nombrecurso
291
327
  ```
292
328
 
293
- ---
329
+ ### Paso 3. Instalar dependencias
294
330
 
295
- ## 7. Construcción local
331
+ ```bash
332
+ npm install
333
+ ```
296
334
 
297
- Construir el portal y las semanas activas:
335
+ ### Paso 4. Actualizar infraestructura desde npm
298
336
 
299
337
  ```bash
300
- npm run pages:build
338
+ npm create openclass-uniminuto@latest . -- --update-theme
301
339
  ```
302
340
 
303
- Este comando ejecuta:
341
+ Este comando debe actualizar:
304
342
 
305
- ```text
306
- npm run export:downloads
307
- npm run build:all
308
- ```
343
+ * Tema institucional.
344
+ * Layouts.
345
+ * Componentes.
346
+ * Scripts.
347
+ * Plantillas.
348
+ * Workflow de GitHub Pages.
309
349
 
310
- Por tanto, genera:
350
+ No debe sobrescribir el contenido académico existente en:
311
351
 
312
352
  ```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
353
+ semanas/
318
354
  ```
319
355
 
320
- Previsualizar la versión estática:
356
+ ### Paso 5. Regenerar configuración
321
357
 
322
358
  ```bash
323
- npm run pages:preview
359
+ npm run config
324
360
  ```
325
361
 
326
- Revisar configuración para GitHub Pages:
362
+ ### Paso 6. Validar GitHub Pages
327
363
 
328
364
  ```bash
329
365
  npm run pages:check
366
+ npm run pages:build
330
367
  ```
331
368
 
332
- También puedes probar directamente la carpeta `dist` con:
369
+ ### Paso 7. Publicar cambios
333
370
 
334
371
  ```bash
335
- npx serve dist
372
+ git add -A
373
+ git commit -m "Actualiza infraestructura Open Class"
374
+ git push
336
375
  ```
337
376
 
338
377
  ---
339
378
 
340
- ## 8. Publicar en GitHub Pages
379
+ ## 8. Comandos principales
341
380
 
342
- Este proyecto ya incluye:
381
+ ### Generar portal, lanzadores, scripts y decks
343
382
 
344
- ```text
345
- .github/workflows/deploy.yml
383
+ ```bash
384
+ npm run config
346
385
  ```
347
386
 
348
- El workflow construye el sitio y publica la carpeta `dist` en GitHub Pages.
387
+ ### Activar una semana
349
388
 
350
- En GitHub configura:
351
-
352
- ```text
353
- Settings → Pages → Build and deployment → Source → GitHub Actions
389
+ ```bash
390
+ npm run semana -- 4
354
391
  ```
355
392
 
356
- Luego sube cambios:
393
+ ### Activar una semana y cambiar metadatos
357
394
 
358
395
  ```bash
359
- git add -A
360
- git commit -m "Actualizar Open Class"
361
- git push
396
+ npm run semana -- 4 --title "Título de la semana" --date "Junio 20 de 2026"
362
397
  ```
363
398
 
364
- Cada `push` a `main` construirá y publicará el sitio automáticamente.
365
-
366
- La URL esperada será:
399
+ ### Forzar sobrescritura del contenido de una semana
367
400
 
368
- ```text
369
- https://herrerawilliamh.github.io/NOMBRE-DEL-REPOSITORIO/
401
+ ```bash
402
+ npm run semana -- 4 --force-content
370
403
  ```
371
404
 
372
- Ejemplo:
405
+ Usar con cuidado, porque puede reemplazar el archivo en:
373
406
 
374
407
  ```text
375
- https://herrerawilliamh.github.io/openclass-iot/
408
+ semanas/
376
409
  ```
377
410
 
378
- Las semanas quedarán disponibles en rutas como:
411
+ ### Ver portal principal
379
412
 
380
- ```text
381
- https://herrerawilliamh.github.io/openclass-iot/semanas/iot_semana1/
382
- https://herrerawilliamh.github.io/openclass-iot/semanas/iot_semana2/
413
+ ```bash
414
+ npm run dev
383
415
  ```
384
416
 
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:
417
+ ### Ver una semana específica
390
418
 
391
419
  ```bash
392
- npm create openclass-uniminuto@latest . -- --update-theme
420
+ npm run dev:s1
393
421
  ```
394
422
 
395
- Este comando actualiza recursos seguros como:
423
+ ### Exportar PDF y PPTX
396
424
 
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
425
+ ```bash
426
+ npm run export:downloads
410
427
  ```
411
428
 
412
- No debería sobrescribir:
429
+ ### Construir sitio completo
413
430
 
414
- ```text
415
- slides.md
416
- openclass.config.json
417
- semanas/*.md
418
- public/imagenes propias del curso
431
+ ```bash
432
+ npm run build:all
419
433
  ```
420
434
 
421
- Después de actualizar, revisa:
435
+ ### Construir para GitHub Pages
422
436
 
423
437
  ```bash
424
- git status
425
438
  npm run pages:build
426
439
  ```
427
440
 
428
- Si todo funciona:
441
+ ### Publicar cambios en GitHub
429
442
 
430
443
  ```bash
431
- git add -A
432
- git commit -m "Actualizar tema institucional Open Class"
433
- git push
444
+ npm run publicar
434
445
  ```
435
446
 
436
447
  ---
437
448
 
438
- ## 10. Flujo semanal sugerido
439
-
440
- Semana 1:
449
+ ## 9. Flujo recomendado para crear una nueva semana
441
450
 
442
451
  ```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
452
+ npm run semana -- 5
447
453
  ```
448
454
 
449
- Semana 2:
455
+ Luego editar:
450
456
 
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
457
+ ```text
458
+ semanas/nombrecurso_semana5.md
456
459
  ```
457
460
 
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
461
+ Agregar imágenes en:
480
462
 
481
463
  ```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
464
+ public/imagenes/
493
465
  ```
494
466
 
495
- ---
467
+ Probar:
496
468
 
497
- ## 13. Recomendaciones antes de publicar
469
+ ```bash
470
+ npm run dev:s5
471
+ ```
498
472
 
499
- Antes de hacer `git push`, revisa:
473
+ Construir:
500
474
 
501
475
  ```bash
502
- git status
503
476
  npm run pages:build
504
477
  ```
505
478
 
506
- Confirma que existan las semanas generadas:
479
+ Publicar:
507
480
 
508
481
  ```bash
509
- ls dist/semanas
482
+ npm run publicar
510
483
  ```
511
484
 
512
- En Windows PowerShell:
485
+ ---
486
+
487
+ ## 10. Layouts disponibles
513
488
 
514
- ```powershell
515
- Get-ChildItem .\dist\semanas | Select-Object Name
516
- ```
489
+ Los layouts disponibles en el tema son:
517
490
 
518
- Confirma que una semana específica exista:
491
+ ```text
492
+ slide-01-portada
493
+ slide-02-titulo
494
+ slide-03-imagen-izquierda
495
+ slide-04-imagen-derecha
496
+ slide-05-titulo-superior-texto-derecha
497
+ slide-06-titulo-superior-texto-izquierda
498
+ slide-07-multimedia-con-titulo
499
+ slide-08-titulo-texto
500
+ slide-09-objetivos
501
+ slide-10-titulo-dos-columnas
502
+ slide-11-dos-titulos-dos-columnas
503
+ slide-12-cierre
504
+ slide-codigo
505
+ ```
506
+
507
+ La plantilla:
519
508
 
520
- ```powershell
521
- Test-Path .\dist\semanas\curso_semana1\index.html
509
+ ```text
510
+ plantillas/semana.md
522
511
  ```
523
512
 
524
- Si responde `True`, esa semana fue generada correctamente.
513
+ incluye ejemplos de uso para cada layout.
525
514
 
526
515
  ---
527
516
 
528
- ## 14. Problemas comunes
517
+ ## 11. Recomendaciones de edición
529
518
 
530
- ### La semana abre localmente, pero no aparece en GitHub Pages
531
-
532
- Verifica que exista el lanzador raíz:
519
+ No editar manualmente estos archivos salvo que estés modificando la infraestructura:
533
520
 
534
521
  ```text
522
+ slides.md
523
+ scripts/decks.mjs
535
524
  curso_semanaN.md
525
+ package.json
526
+ ```
527
+
528
+ Estos archivos pueden regenerarse con:
529
+
530
+ ```bash
531
+ npm run config
536
532
  ```
537
533
 
538
- y que apunte al archivo real:
534
+ Editar principalmente:
539
535
 
540
536
  ```text
537
+ openclass.config.json
541
538
  semanas/curso_semanaN.md
539
+ public/imagenes/
540
+ ```
541
+
542
+ ---
543
+
544
+ ## 12. Despliegue con GitHub Pages
545
+
546
+ El workflow está en:
547
+
548
+ ```text
549
+ .github/workflows/deploy.yml
542
550
  ```
543
551
 
544
- Luego ejecuta:
552
+ Cada vez que se hace `push` a `main`, GitHub Actions ejecuta:
545
553
 
546
554
  ```bash
547
555
  npm run pages:build
548
556
  ```
549
557
 
550
- ### Error con imágenes
551
-
552
- Si aparece un error como:
558
+ El sitio generado queda en:
553
559
 
554
560
  ```text
555
- Failed to resolve import "/imagenes/..."
561
+ dist/
556
562
  ```
557
563
 
558
- revisa que el archivo exista en:
564
+ y se publica automáticamente con GitHub Pages.
565
+
566
+ ---
567
+
568
+ ## 13. Solución de problemas frecuentes
569
+
570
+ ### Error en `scripts/decks.mjs`
571
+
572
+ Si aparece un error similar a:
559
573
 
560
574
  ```text
561
- public/imagenes/
575
+ SyntaxError: Invalid regular expression: missing /
562
576
  ```
563
577
 
564
- y que la ruta usada en la diapositiva tenga extensión correcta.
578
+ revisar que la función `withBase()` tenga esta línea:
565
579
 
566
- Ejemplo válido:
580
+ ```js
581
+ return `${SITE_BASE}${value.replace(/^[/]+/, "")}`;
582
+ ```
567
583
 
568
- ```html
569
- <img src="/imagenes/semana701.png" alt="Imagen de apoyo" />
584
+ ### No aparece una semana en el portal
585
+
586
+ Revisar que esté activa en:
587
+
588
+ ```json
589
+ "activeWeeks": [1, 2, 3]
590
+ ```
591
+
592
+ También se puede activar con:
593
+
594
+ ```bash
595
+ npm run semana -- N
570
596
  ```
571
597
 
572
- ### GitHub Pages no publica
598
+ ### No se ven imágenes
573
599
 
574
- Revisa:
600
+ Revisar que estén en:
575
601
 
576
602
  ```text
577
- Settings → Pages → Source → GitHub Actions
578
- Actions → Deploy Open Class to GitHub Pages
603
+ public/imagenes/
579
604
  ```
580
605
 
581
- También puedes ejecutar:
606
+ y que se referencien así:
582
607
 
583
- ```bash
584
- npm run pages:check
608
+ ```html
609
+ <img src="/imagenes/nombre.png" alt="Descripción de la imagen" />
585
610
  ```
586
611
 
587
- ### Warnings de build
612
+ ### No se ven los fondos institucionales
588
613
 
589
- Algunos mensajes informativos no bloquean la publicación si el build termina con:
614
+ Verificar que existan:
590
615
 
591
616
  ```text
592
- ✓ built
593
- ✓ dist/.nojekyll creado para GitHub Pages.
617
+ public/fondos/slide-01-portada.png
618
+ public/fondos/slide-05-template.png
619
+ public/fondos/slide-06-cierre.png
594
620
  ```
595
621
 
596
622
  ---
597
623
 
598
- ## 15. Actualizar este proyecto desde el generador local
624
+ ## 14. Flujo de mantenimiento del template
625
+
626
+ Cuando se mejore el template base:
627
+
628
+ ```bash
629
+ git add -A
630
+ git commit -m "Mejora plantilla Open Class"
631
+ git push
632
+ ```
599
633
 
600
- Durante desarrollo del generador, también puedes aplicar la actualización de tema desde una copia local:
634
+ Luego copiar la plantilla actualizada al paquete generador:
601
635
 
602
636
  ```bash
603
- node ../create-openclass-uniminuto/bin/create-openclass-uniminuto.mjs . --update-theme
637
+ robocopy D:\OpenClass\openclass-uniminuto-template D:\OpenClass\create-openclass-uniminuto\template /E /XD .git node_modules dist .slidev /XF openclass-template.zip
604
638
  ```
605
639
 
606
- En Windows, desde una carpeta de curso ubicada dentro de `D:\OpenClass`:
640
+ Publicar nueva versión del paquete:
607
641
 
608
- ```powershell
609
- node ..\create-openclass-uniminuto\bin\create-openclass-uniminuto.mjs . --update-theme
642
+ ```bash
643
+ cd D:\OpenClass\create-openclass-uniminuto
644
+ npm version patch
645
+ npm publish --access public
610
646
  ```
611
647
 
612
- Esto es útil para probar cambios antes de publicar una nueva versión npm.
648
+ Actualizar cursos existentes:
649
+
650
+ ```bash
651
+ npm create openclass-uniminuto@latest . -- --update-theme
652
+ npm run config
653
+ npm run pages:build
654
+ ```