create-openclass-uniminuto 1.4.0

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 (86) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +480 -0
  3. package/bin/create-openclass-uniminuto.mjs +142 -0
  4. package/package.json +39 -0
  5. package/template/.github/workflows/deploy.yml +64 -0
  6. package/template/README.md +326 -0
  7. package/template/config/openclass.config.iot-desde-openclass-iot.json +77 -0
  8. package/template/config/openclass.config.iot-ejemplo.json +81 -0
  9. package/template/demo_semana1.md +11 -0
  10. package/template/demo_semana2.md +11 -0
  11. package/template/demo_semana3.md +11 -0
  12. package/template/demo_semana4.md +11 -0
  13. package/template/demo_semana5.md +11 -0
  14. package/template/demo_semana6.md +11 -0
  15. package/template/demo_semana7.md +11 -0
  16. package/template/demo_semana8.md +11 -0
  17. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana1.md +12 -0
  18. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana2.md +12 -0
  19. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana3.md +12 -0
  20. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana4.md +12 -0
  21. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana5.md +12 -0
  22. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana6.md +12 -0
  23. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana7.md +12 -0
  24. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana8.md +12 -0
  25. package/template/ejemplos/iot-semanas-1-a-3/raiz/slides.md +154 -0
  26. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana1.md +846 -0
  27. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana2.md +1040 -0
  28. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana3.md +1071 -0
  29. package/template/openclass.config.json +79 -0
  30. package/template/package-lock.json +11568 -0
  31. package/template/package.json +61 -0
  32. package/template/plantillas/launcher.md +11 -0
  33. package/template/plantillas/semana.md +177 -0
  34. package/template/public/descargas/.gitkeep +0 -0
  35. package/template/public/favicon.png +0 -0
  36. package/template/public/fondos/slide-01-portada.png +0 -0
  37. package/template/public/fondos/slide-02-titulo.png +0 -0
  38. package/template/public/fondos/slide-03-imagen-izquierda.png +0 -0
  39. package/template/public/fondos/slide-04-imagen-derecha.png +0 -0
  40. package/template/public/fondos/slide-05-template.png +0 -0
  41. package/template/public/fondos/slide-06-cierre.png +0 -0
  42. package/template/public/imagenes/.gitkeep +0 -0
  43. package/template/public/videos/.gitkeep +0 -0
  44. package/template/scripts/build-incremental.mjs +33 -0
  45. package/template/scripts/build-site.mjs +33 -0
  46. package/template/scripts/decks.mjs +29 -0
  47. package/template/scripts/dev-all.mjs +37 -0
  48. package/template/scripts/export-downloads.mjs +53 -0
  49. package/template/scripts/export-incremental.mjs +49 -0
  50. package/template/scripts/generar-desde-config.mjs +279 -0
  51. package/template/scripts/nuevo-curso.mjs +104 -0
  52. package/template/scripts/preparar-github-pages.mjs +52 -0
  53. package/template/scripts/publicar.mjs +36 -0
  54. package/template/scripts/semana.mjs +122 -0
  55. package/template/scripts/zip-template.mjs +70 -0
  56. package/template/semanas/demo_semana1.md +177 -0
  57. package/template/semanas/demo_semana2.md +177 -0
  58. package/template/semanas/demo_semana3.md +177 -0
  59. package/template/semanas/demo_semana4.md +177 -0
  60. package/template/semanas/demo_semana5.md +177 -0
  61. package/template/semanas/demo_semana6.md +177 -0
  62. package/template/semanas/demo_semana7.md +177 -0
  63. package/template/semanas/demo_semana8.md +177 -0
  64. package/template/setup/shiki.ts +10 -0
  65. package/template/slides.md +65 -0
  66. package/template/snippets/external.ts +12 -0
  67. package/template/theme/uniminuto/README-AutoFit.md +28 -0
  68. package/template/theme/uniminuto/components/AutoFitText.vue +159 -0
  69. package/template/theme/uniminuto/components/Counter.vue +37 -0
  70. package/template/theme/uniminuto/components/FontToggle.vue +42 -0
  71. package/template/theme/uniminuto/layouts/slide-01-portada.vue +119 -0
  72. package/template/theme/uniminuto/layouts/slide-02-titulo.vue +63 -0
  73. package/template/theme/uniminuto/layouts/slide-03-imagen-izquierda.vue +110 -0
  74. package/template/theme/uniminuto/layouts/slide-04-imagen-derecha.vue +110 -0
  75. package/template/theme/uniminuto/layouts/slide-05-titulo-superior-texto-derecha.vue +104 -0
  76. package/template/theme/uniminuto/layouts/slide-06-titulo-superior-texto-izquierda.vue +109 -0
  77. package/template/theme/uniminuto/layouts/slide-07-multimedia-con-titulo.vue +87 -0
  78. package/template/theme/uniminuto/layouts/slide-08-titulo-texto.vue +78 -0
  79. package/template/theme/uniminuto/layouts/slide-09-objetivos.vue +77 -0
  80. package/template/theme/uniminuto/layouts/slide-10-titulo-dos-columnas.vue +89 -0
  81. package/template/theme/uniminuto/layouts/slide-11-dos-titulos-dos-columnas.vue +98 -0
  82. package/template/theme/uniminuto/layouts/slide-12-cierre.vue +27 -0
  83. package/template/theme/uniminuto/layouts/slide-codigo.vue +133 -0
  84. package/template/theme/uniminuto/package.json +13 -0
  85. package/template/theme/uniminuto/styles/base.css +109 -0
  86. package/template/theme/uniminuto/styles/index.ts +11 -0
@@ -0,0 +1,98 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="left-title-wrap">
10
+ <AutoFitText tag="h2" class="column-title" :min="18" :max="36" line-height="1.05">
11
+ <slot name="leftTitle">Agrega un título</slot>
12
+ </AutoFitText>
13
+ </div>
14
+
15
+ <div class="right-title-wrap">
16
+ <AutoFitText tag="h2" class="column-title" :min="18" :max="36" line-height="1.05">
17
+ <slot name="rightTitle">Agrega un título</slot>
18
+ </AutoFitText>
19
+ </div>
20
+
21
+ <div class="left-content">
22
+ <AutoFitText tag="div" class="column-fit" :min="14" :max="28" line-height="1.35">
23
+ <slot name="left" />
24
+ </AutoFitText>
25
+ </div>
26
+
27
+ <div class="right-content">
28
+ <AutoFitText tag="div" class="column-fit" :min="14" :max="28" line-height="1.35">
29
+ <slot name="right" />
30
+ </AutoFitText>
31
+ </div>
32
+ </div>
33
+ </template>
34
+
35
+ <style scoped>
36
+ .slide-layout {
37
+ position: relative;
38
+ width: 100%;
39
+ height: 100%;
40
+ overflow: hidden;
41
+ background: #ffffff;
42
+ }
43
+
44
+ .slide-bg {
45
+ position: absolute;
46
+ inset: 0;
47
+ width: 100%;
48
+ height: 100%;
49
+ object-fit: cover;
50
+ z-index: 1;
51
+ }
52
+
53
+ .left-title-wrap,
54
+ .right-title-wrap {
55
+ position: absolute;
56
+ z-index: 2;
57
+ top: 25.5%;
58
+ height: 6.3%;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ background: #233763;
63
+ color: #ffffff;
64
+ text-align: center;
65
+ padding: 0 1rem;
66
+ box-sizing: border-box;
67
+ }
68
+
69
+ .left-title-wrap { left: 0%; width: 44%; }
70
+ .right-title-wrap { left: 56.5%; width: 43.5%; }
71
+
72
+ .column-title {
73
+ margin: 0 !important;
74
+ color: #ffffff !important;
75
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
76
+ font-weight: 800;
77
+ }
78
+
79
+ .left-content,
80
+ .right-content {
81
+ position: absolute;
82
+ z-index: 2;
83
+ top: 36%;
84
+ width: 36%;
85
+ height: 50%;
86
+ color: #233763 !important;
87
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
88
+ }
89
+
90
+ .left-content { left: 6%; }
91
+ .right-content { left: 56.7%; }
92
+
93
+ .column-fit :deep(*) { color: #233763 !important; }
94
+ .column-fit :deep(p) { margin: 0 0 0.8rem 0; }
95
+ .column-fit :deep(ul) { list-style-type: disc !important; padding-left: 1.5rem; }
96
+ .column-fit :deep(li) { display: list-item !important; margin-bottom: 0.5rem; }
97
+ .column-fit :deep(pre) { font-size: 0.58em; line-height: 1.22; }
98
+ </style>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div class="slide-layout">
3
+ <img
4
+ class="slide-bg"
5
+ src="/fondos/slide-06-cierre.png"
6
+ alt="Fondo cierre"
7
+ />
8
+ </div>
9
+ </template>
10
+
11
+ <style scoped>
12
+ .slide-layout {
13
+ position: relative;
14
+ width: 100%;
15
+ height: 100%;
16
+ overflow: hidden;
17
+ background: #000;
18
+ }
19
+
20
+ .slide-bg {
21
+ position: absolute;
22
+ inset: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ object-fit: cover;
26
+ }
27
+ </style>
@@ -0,0 +1,133 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="title-wrap">
10
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
11
+ <slot name="title">Agrega un título</slot>
12
+ </AutoFitText>
13
+ </div>
14
+
15
+ <div class="code-wrap">
16
+ <slot name="content" />
17
+ </div>
18
+ </div>
19
+ </template>
20
+
21
+ <style scoped>
22
+ .slide-layout {
23
+ position: relative;
24
+ width: 100%;
25
+ height: 100%;
26
+ overflow: hidden;
27
+ background: #ffffff;
28
+ }
29
+
30
+ .slide-bg {
31
+ position: absolute;
32
+ inset: 0;
33
+ width: 100%;
34
+ height: 100%;
35
+ object-fit: cover;
36
+ z-index: 1;
37
+ }
38
+
39
+ .title-wrap {
40
+ position: absolute;
41
+ z-index: 2;
42
+ left: 3.2%;
43
+ top: 2%;
44
+ width: 49%;
45
+ height: 8%;
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: flex-start;
49
+ padding-left: 0.5rem;
50
+ box-sizing: border-box;
51
+ }
52
+
53
+ .title {
54
+ margin: 0 !important;
55
+ color: #ffffff !important;
56
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
57
+ font-weight: 800;
58
+ }
59
+
60
+ .code-wrap {
61
+ position: absolute;
62
+ z-index: 2;
63
+ left: 5%;
64
+ top: 16%;
65
+ width: 86%;
66
+ height: 71%;
67
+ overflow: hidden;
68
+ display: flex;
69
+ flex-direction: column;
70
+ }
71
+
72
+ .code-wrap :deep(div.slidev-code-wrapper),
73
+ .code-wrap :deep(.slidev-code-wrapper) {
74
+ flex: 1;
75
+ min-height: 0;
76
+ display: flex;
77
+ flex-direction: column;
78
+ }
79
+
80
+ .code-wrap :deep(pre),
81
+ .code-wrap :deep(pre.slidev-code),
82
+ .code-wrap :deep(.slidev-code) {
83
+ flex: 1;
84
+ min-height: 0;
85
+ max-height: 100% !important;
86
+ height: 100% !important;
87
+ overflow-y: auto !important;
88
+ overflow-x: auto !important;
89
+ background: #0f172a !important;
90
+ color: #e5e7eb !important;
91
+ border: 2px solid rgba(242, 181, 27, 0.75);
92
+ border-radius: 14px;
93
+ font-size: 0.72rem !important;
94
+ line-height: 1.5 !important;
95
+ padding: 1rem 1.2rem !important;
96
+ box-sizing: border-box;
97
+ scrollbar-width: thin;
98
+ scrollbar-color: rgba(242, 181, 27, 0.5) transparent;
99
+ }
100
+
101
+ .code-wrap :deep(pre::-webkit-scrollbar) {
102
+ width: 6px;
103
+ height: 6px;
104
+ }
105
+
106
+ .code-wrap :deep(pre::-webkit-scrollbar-thumb) {
107
+ background: rgba(242, 181, 27, 0.5);
108
+ border-radius: 3px;
109
+ }
110
+
111
+ .code-wrap :deep(code) {
112
+ background: transparent !important;
113
+ color: inherit !important;
114
+ font-size: inherit !important;
115
+ }
116
+
117
+ .code-wrap :deep(.line-numbers-wrapper) {
118
+ background: #0f172a !important;
119
+ border-color: rgba(242, 181, 27, 0.3) !important;
120
+ }
121
+
122
+ .code-wrap :deep(.slidev-code-copy) {
123
+ color: #e5e7eb !important;
124
+ background: rgba(15, 23, 42, 0.7) !important;
125
+ border-radius: 6px;
126
+ padding: 2px;
127
+ }
128
+
129
+ .code-wrap :deep(.slidev-code-copy:hover) {
130
+ color: #f2b51b !important;
131
+ background: rgba(15, 23, 42, 0.95) !important;
132
+ }
133
+ </style>
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "slidev-theme-uniminuto",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "main": "./styles/index.ts",
6
+ "keywords": [
7
+ "slidev-theme",
8
+ "slidev"
9
+ ],
10
+ "slidev": {
11
+ "colorSchema": "light"
12
+ }
13
+ }
@@ -0,0 +1,109 @@
1
+ /* =========================================================
2
+ Bloques de código institucionales con scroll
3
+ Se activa en la diapositiva con:
4
+ class: codigo-slide
5
+ ========================================================= */
6
+
7
+ .codigo-slide .slidev-code-wrapper {
8
+ width: 100%;
9
+ margin-top: 0.5rem;
10
+ }
11
+
12
+ .codigo-slide pre,
13
+ .codigo-slide pre.slidev-code,
14
+ .codigo-slide .slidev-code {
15
+ max-height: 340px !important;
16
+ overflow: auto !important;
17
+
18
+ background: #0f172a !important;
19
+ color: #e5e7eb !important;
20
+
21
+ border: 2px solid rgba(242, 181, 27, 0.75);
22
+ border-radius: 18px;
23
+
24
+ padding: 1rem 1.2rem !important;
25
+
26
+ font-size: 0.78rem !important;
27
+ line-height: 1.45 !important;
28
+
29
+ box-shadow:
30
+ 0 18px 35px rgba(15, 23, 42, 0.20),
31
+ inset 0 1px 0 rgba(255, 255, 255, 0.08);
32
+ }
33
+
34
+ .codigo-slide pre code,
35
+ .codigo-slide pre.slidev-code code,
36
+ .codigo-slide .slidev-code code {
37
+ font-family:
38
+ "Cascadia Code",
39
+ "Fira Code",
40
+ "JetBrains Mono",
41
+ "Consolas",
42
+ monospace !important;
43
+
44
+ color: #e5e7eb !important;
45
+ }
46
+
47
+ /* Evita que Slidev opaque líneas no resaltadas */
48
+ .codigo-slide pre .line,
49
+ .codigo-slide pre.slidev-code .line,
50
+ .codigo-slide .slidev-code .line {
51
+ opacity: 1 !important;
52
+ filter: none !important;
53
+ min-height: 1.45em;
54
+ }
55
+
56
+ /* Evita que los tokens queden apagados */
57
+ .codigo-slide pre .line span,
58
+ .codigo-slide pre.slidev-code .line span,
59
+ .codigo-slide .slidev-code .line span {
60
+ opacity: 1 !important;
61
+ filter: none !important;
62
+ }
63
+
64
+ /* Comentarios */
65
+ .codigo-slide pre .token.comment,
66
+ .codigo-slide pre .token.prolog,
67
+ .codigo-slide pre .token.doctype,
68
+ .codigo-slide pre .token.cdata {
69
+ color: #94a3b8 !important;
70
+ opacity: 1 !important;
71
+ }
72
+
73
+ /* Números de línea */
74
+ .codigo-slide pre .line-number,
75
+ .codigo-slide pre .line-numbers,
76
+ .codigo-slide pre.slidev-code .line-number,
77
+ .codigo-slide pre.slidev-code .line-numbers {
78
+ color: #cbd5e1 !important;
79
+ opacity: 1 !important;
80
+ }
81
+
82
+ /* Scrollbar */
83
+ .codigo-slide pre::-webkit-scrollbar,
84
+ .codigo-slide pre.slidev-code::-webkit-scrollbar,
85
+ .codigo-slide .slidev-code::-webkit-scrollbar {
86
+ width: 10px;
87
+ height: 10px;
88
+ }
89
+
90
+ .codigo-slide pre::-webkit-scrollbar-track,
91
+ .codigo-slide pre.slidev-code::-webkit-scrollbar-track,
92
+ .codigo-slide .slidev-code::-webkit-scrollbar-track {
93
+ background: #1e293b;
94
+ border-radius: 999px;
95
+ }
96
+
97
+ .codigo-slide pre::-webkit-scrollbar-thumb,
98
+ .codigo-slide pre.slidev-code::-webkit-scrollbar-thumb,
99
+ .codigo-slide .slidev-code::-webkit-scrollbar-thumb {
100
+ background: var(--uni-amarillo);
101
+ border-radius: 999px;
102
+ border: 2px solid #1e293b;
103
+ }
104
+
105
+ .codigo-slide pre::-webkit-scrollbar-thumb:hover,
106
+ .codigo-slide pre.slidev-code::-webkit-scrollbar-thumb:hover,
107
+ .codigo-slide .slidev-code::-webkit-scrollbar-thumb:hover {
108
+ background: #ffcc33;
109
+ }
@@ -0,0 +1,11 @@
1
+ import '@fontsource/merriweather-sans/400.css'
2
+ import '@fontsource/merriweather-sans/700.css'
3
+ import '@fontsource/merriweather-sans/800.css'
4
+
5
+ import '@fontsource/atkinson-hyperlegible/400.css'
6
+ import '@fontsource/atkinson-hyperlegible/700.css'
7
+
8
+ import '@fontsource/opendyslexic/400.css'
9
+ import '@fontsource/opendyslexic/700.css'
10
+
11
+ import './base.css'