xonecode 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/web/dist/assets/{index-D8kdTP0Z.css → index-CWAPXNAO.css} +1 -1
- package/apps/web/dist/assets/{index-a1EvXQj9.js → index-KJGPIrNa.js} +50 -50
- package/apps/web/dist/assets/{php-qXN69lAY.js → php-KZMIPXrN.js} +1 -1
- package/apps/web/dist/assets/{ruby-Cxx7RgZA.js → ruby-jf5bWc_X.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/core/tareasDelPlan.js +31 -5
- package/dist/core/tareasDelPlan.js.map +1 -1
- package/package.json +1 -1
package/apps/web/dist/index.html
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
<!-- El icono oficial, servido por Vite desde `iconos/`. Es el mismo fichero que la
|
|
8
8
|
marca de la barra superior: dos copias del logo acaban siendo dos logos. -->
|
|
9
9
|
<link rel="icon" type="image/png" href="./iconos/xonecode.png" />
|
|
10
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
10
|
+
<script type="module" crossorigin src="./assets/index-KJGPIrNa.js"></script>
|
|
11
|
+
<link rel="stylesheet" crossorigin href="./assets/index-CWAPXNAO.css">
|
|
12
12
|
</head>
|
|
13
13
|
<!-- Sin el atributo aquí: el oscuro es SOLO del splash (el registro de entorno y
|
|
14
14
|
modelo), no de la consola entera — `App.tsx` lo pone y lo quita él mismo, en el
|
|
@@ -16,8 +16,15 @@
|
|
|
16
16
|
* «en curso» o un «hecha» son palabras del plan, y traducirlas sería decidir por él.
|
|
17
17
|
* - Un fichero sin ninguna sección con forma de tarea no es un plan vacío: `tareas` va vacío y
|
|
18
18
|
* quien lo pinta enseña el texto entero.
|
|
19
|
+
* - La cabecera se reconoce también en la forma que el modelo escribe a veces fuera del formato,
|
|
20
|
+
* `## T1 — Título` (nivel 2, prefijo `T`): visto en un plan real que la pestaña pintaba como
|
|
21
|
+
* «sin tareas» con siete dentro. El número se conserva TAL CUAL (`T1`), porque es lo que
|
|
22
|
+
* citan sus «Bloqueada por». Con ese prefijo solo cuenta como dependencia un número que lo
|
|
23
|
+
* lleve: «T2 (resuelta la PENDIENTE 3)» es T2, no T2 y 3.
|
|
19
24
|
*/
|
|
20
|
-
const CABECERA_DE_TAREA =
|
|
25
|
+
const CABECERA_DE_TAREA = /^#{2,3}\s+(T?\d{1,3})\s*[—–-]\s*(.+?)\s*$/;
|
|
26
|
+
/** «Ninguna …» o «nada»: la forma de decir que puede empezar ya. */
|
|
27
|
+
export const SIN_DEPENDENCIAS = /^(ninguna|nada)\b/i;
|
|
21
28
|
const ESTADO = /^\*\*Estado:\*\*\s*(.+?)\s*$/i;
|
|
22
29
|
const BLOQUEADA = /^\*\*Bloqueada por:\*\*\s*(.+?)\s*$/i;
|
|
23
30
|
const CASILLA = /^\s*[-*]\s+\[( |x|X)\]\s+/;
|
|
@@ -25,7 +32,9 @@ const CASILLA = /^\s*[-*]\s+\[( |x|X)\]\s+/;
|
|
|
25
32
|
* Los números de tarea que nombra una línea «Bloqueada por». Un rango `01–07` (con guion,
|
|
26
33
|
* raya o «a») se expande con el ancho del primero; «Ninguna» no nombra ninguno.
|
|
27
34
|
*/
|
|
28
|
-
export function dependenciasDe(linea) {
|
|
35
|
+
export function dependenciasDe(linea, conPrefijo = /\bT\d/.test(linea)) {
|
|
36
|
+
if (conPrefijo)
|
|
37
|
+
return dependenciasConPrefijo(linea);
|
|
29
38
|
const salida = [];
|
|
30
39
|
const rango = /\b(\d{1,3})\s*(?:[–—-]|\ba\b)\s*(\d{1,3})\b/g;
|
|
31
40
|
let resto = linea;
|
|
@@ -42,6 +51,22 @@ export function dependenciasDe(linea) {
|
|
|
42
51
|
salida.push(m[1]);
|
|
43
52
|
return [...new Set(salida)];
|
|
44
53
|
}
|
|
54
|
+
/** Las de un plan que numera `T1`, `T2`…: solo los números con prefijo, y `T1–T3` como rango. */
|
|
55
|
+
function dependenciasConPrefijo(linea) {
|
|
56
|
+
const salida = [];
|
|
57
|
+
let resto = linea;
|
|
58
|
+
for (const m of linea.matchAll(/\bT(\d{1,3})\s*(?:[–—-]|\ba\b)\s*T(\d{1,3})\b/g)) {
|
|
59
|
+
const desde = Number(m[1]);
|
|
60
|
+
const hasta = Number(m[2]);
|
|
61
|
+
if (hasta >= desde && hasta - desde < 100)
|
|
62
|
+
for (let n = desde; n <= hasta; n++)
|
|
63
|
+
salida.push(`T${n}`);
|
|
64
|
+
resto = resto.replace(m[0], " ");
|
|
65
|
+
}
|
|
66
|
+
for (const m of resto.matchAll(/\bT(\d{1,3})\b/g))
|
|
67
|
+
salida.push(`T${m[1]}`);
|
|
68
|
+
return [...new Set(salida)];
|
|
69
|
+
}
|
|
45
70
|
export function leerTareasDelPlan(texto) {
|
|
46
71
|
const lineas = texto.replace(/\r\n/g, "\n").split("\n");
|
|
47
72
|
const titulo = lineas.find((l) => /^#\s+/.test(l))?.replace(/^#\s+/, "").trim();
|
|
@@ -68,14 +93,15 @@ export function leerTareasDelPlan(texto) {
|
|
|
68
93
|
hechos++;
|
|
69
94
|
}
|
|
70
95
|
}
|
|
71
|
-
// «Ninguna …» es la forma del formato de decir que puede empezar ya: no nombra tareas aunque
|
|
96
|
+
// «Ninguna …» (o «nada») es la forma del formato de decir que puede empezar ya: no nombra tareas aunque
|
|
72
97
|
// la prosa de detrás lleve un número (una ruta, una línea de un fichero).
|
|
73
|
-
const nombra = bloqueadaPorTexto !== undefined &&
|
|
98
|
+
const nombra = bloqueadaPorTexto !== undefined && !SIN_DEPENDENCIAS.test(bloqueadaPorTexto);
|
|
74
99
|
tareas.push({
|
|
75
100
|
numero: actual.numero,
|
|
76
101
|
titulo: actual.titulo,
|
|
77
102
|
...(estado === undefined ? {} : { estado }),
|
|
78
|
-
|
|
103
|
+
// La numeración la fija la TAREA: en un plan de `T1`, «PENDIENTE 5» no es la tarea 5.
|
|
104
|
+
bloqueadaPor: nombra ? dependenciasDe(bloqueadaPorTexto, actual.numero.startsWith("T")) : [],
|
|
79
105
|
...(bloqueadaPorTexto === undefined ? {} : { bloqueadaPorTexto }),
|
|
80
106
|
criterios: { hechos, total },
|
|
81
107
|
cuerpo: actual.lineas.join("\n").trim(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tareasDelPlan.js","sourceRoot":"","sources":["../../src/core/tareasDelPlan.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tareasDelPlan.js","sourceRoot":"","sources":["../../src/core/tareasDelPlan.ts"],"names":[],"mappings":"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"}
|