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.
- package/bin/create-openclass-uniminuto.mjs +138 -2
- package/package.json +2 -2
- package/template/README.md +612 -326
- package/template/package-lock.json +11568 -11568
- package/template/package.json +64 -61
- package/template/public/imagenes/avion.png +0 -0
- package/template/public/imagenes/favicon.png +0 -0
- package/template/scripts/decks.mjs +48 -10
- package/template/scripts/dev-all.mjs +20 -7
- package/template/scripts/generar-desde-config.mjs +348 -511
- package/template/theme/uniminuto/components/AutoFitText.vue +7 -2
- package/template/theme/uniminuto/components/TitleRibbon.vue +222 -0
- package/template/theme/uniminuto/layouts/README.md +99 -0
- package/template/theme/uniminuto/layouts/slide-02-titulo.vue +29 -47
- package/template/theme/uniminuto/layouts/slide-03-imagen-izquierda.vue +43 -69
- package/template/theme/uniminuto/layouts/slide-04-imagen-derecha.vue +49 -75
- package/template/theme/uniminuto/layouts/slide-05-titulo-superior-texto-derecha.vue +34 -66
- package/template/theme/uniminuto/layouts/slide-06-titulo-superior-texto-izquierda.vue +28 -78
- package/template/theme/uniminuto/layouts/slide-07-multimedia-con-titulo.vue +10 -66
- package/template/theme/uniminuto/layouts/slide-08-titulo-texto.vue +24 -53
- package/template/theme/uniminuto/layouts/slide-09-objetivos.vue +26 -53
- package/template/theme/uniminuto/layouts/slide-10-titulo-dos-columnas.vue +27 -59
- package/template/theme/uniminuto/layouts/slide-11-dos-titulos-dos-columnas.vue +32 -65
- package/template/theme/uniminuto/layouts/slide-codigo.vue +16 -113
- package/template/theme/uniminuto/styles/base.css +214 -108
- package/template/public/fondos/slide-02-titulo.png +0 -0
- package/template/public/fondos/slide-03-imagen-izquierda.png +0 -0
- package/template/public/fondos/slide-04-imagen-derecha.png +0 -0
package/template/README.md
CHANGED
|
@@ -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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
npm
|
|
18
|
-
npm
|
|
19
|
-
npm run
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
git
|
|
33
|
-
git
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
npm run semana -- 4 --
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
```text
|
|
195
|
-
semanas/
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
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.
|