Skip to content

Commit 0bb424b

Browse files
committed
refactor: la carta de servicios usa el registro compartido de tecnologías
`sections/Services` mantenía su propia copia del registro y ya había divergido: no conocía `tailwind`, así que un logotipo podía salir en las páginas de plantilla y faltar en el inicio. Pasa a usar `data/tech.ts`, que ya consumían la bitácora y las páginas de plantilla. El comentario de `data/tech.ts` deja de anunciar la copia pendiente y dice que es la única fuente, para que no vuelva a duplicarse. Verificado comparando el HTML construido antes y después del cambio: los 16 logotipos del inicio salen idénticos, mismo orden y mismos archivos. En navegador, ninguna imagen rota y el chip conserva su formato.
1 parent 218ecf3 commit 0bb424b

4 files changed

Lines changed: 16 additions & 37 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,3 +768,9 @@ Todos los cambios notables en este proyecto serán documentados en este archivo
768768
### Corregido
769769

770770
- **Los logotipos del stack no seguían el formato del sitio**: se pintaban como píldoras con el nombre escrito al lado, cuando en el resto del sitio —la bitácora y la carta de servicios— un logotipo es un chip cuadrado de 2.5rem con fondo arena y el nombre en un globo que solo aparece al pasar el cursor. Se copia esa variante en vez de inventar una tercera. Comprobado propiedad a propiedad contra el chip de la bitácora: idénticos en las nueve que definen la pieza.
771+
772+
## [0.31.4] - 2026-08-01
773+
774+
### Técnico
775+
776+
- **`sections/Services` deja de tener su propio registro de tecnologías** y usa el compartido de `data/tech.ts`, que ya consumían la bitácora y las páginas de plantilla. La copia había divergido —no conocía `tailwind`—, así que un mismo logotipo podía salir en una página y faltar en otra. El comentario de `data/tech.ts` pasa a decir que es la única fuente, para que no vuelva a copiarse. Verificado comparando el HTML construido antes y después: los 16 logotipos del inicio salen idénticos, mismo orden y mismos archivos.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ctg-code",
3-
"version": "0.31.3",
3+
"version": "0.31.4",
44
"dependencies": {
55
"@astrojs/sitemap": "^3.7.3",
66
"@fontsource-variable/inter": "^5.2.8",

src/components/sections/Services/Services.astro

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,44 +17,19 @@ import { locales, localizedPath } from "../../../data/i18n";
1717
import "./Services.css";
1818
1919
/**
20-
* Logotipos del stack. Se importan con `?url` —y se pintan con <img>— a
20+
* Registro de tecnologías compartido. Esta sección mantenía su propia copia y
21+
* ya había divergido —no conocía `tailwind`—, así que un mismo logotipo podía
22+
* salir aquí y no en las páginas de plantilla.
23+
*
24+
* Los logotipos se importan allí con `?url` —y se pintan con <img>— a
2125
* PROPÓSITO, no por comodidad: incrustarlos en línea rompería el diseño.
2226
* postgresql, rest-api y rust traen su propia hoja `<style>` con clases
2327
* genéricas (.st0, .st1) y python define degradados con ids `A`/`B`; al
2428
* convivir en un mismo documento esas clases e ids son globales y se pisan
2529
* entre sí. Dentro de un <img> cada SVG es un documento aparte y no se
2630
* contamina con los demás.
2731
*/
28-
import astroUrl from "../../../assets/astro.svg?url";
29-
import cssUrl from "../../../assets/css.svg?url";
30-
import fastapiUrl from "../../../assets/fastapi.svg?url";
31-
import htmxUrl from "../../../assets/htmx.svg?url";
32-
import javascriptUrl from "../../../assets/javascript.svg?url";
33-
import jinjaUrl from "../../../assets/jinja.svg?url";
34-
import postgresqlUrl from "../../../assets/postgresql.svg?url";
35-
import pythonUrl from "../../../assets/python.svg?url";
36-
import restApiUrl from "../../../assets/rest-api.svg?url";
37-
import rustUrl from "../../../assets/rust.svg?url";
38-
import typescriptUrl from "../../../assets/typescript.svg?url";
39-
40-
/**
41-
* Registro de tecnologías: clave → logotipo y nombre de marca. Los locales
42-
* solo guardan las CLAVES (ver data/i18n.ts); los nombres viven aquí porque
43-
* son marcas registradas y no se traducen.
44-
*/
45-
const TECH: Record<string, { src: string; name: string }> = {
46-
astro: { src: astroUrl, name: "Astro" },
47-
css: { src: cssUrl, name: "CSS" },
48-
fastapi: { src: fastapiUrl, name: "FastAPI" },
49-
htmx: { src: htmxUrl, name: "htmx" },
50-
javascript: { src: javascriptUrl, name: "JavaScript" },
51-
jinja: { src: jinjaUrl, name: "Jinja" },
52-
postgresql: { src: postgresqlUrl, name: "PostgreSQL" },
53-
python: { src: pythonUrl, name: "Python" },
54-
"rest-api": { src: restApiUrl, name: "REST API" },
55-
rust: { src: rustUrl, name: "Rust" },
56-
typescript: { src: typescriptUrl, name: "TypeScript" },
57-
};
32+
import { TECH } from "../../../data/tech";
5833
5934
/** Resuelve las claves de un servicio, descartando en silencio las que no
6035
* existan en el registro (así una clave mal escrita no rompe la página). */

src/data/tech.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
* Registro de tecnologías: clave estable → logotipo y nombre de marca.
33
*
44
* Vive aquí y no dentro de un componente porque lo consumen varios: la
5-
* bitácora (vía `StackList`) y las páginas de plantilla.
6-
*
7-
* `sections/Services` mantiene todavía su propia copia, y ya divergía —no
8-
* conoce `tailwind`—. Migrarla es trivial pero cambia una página del inicio,
9-
* así que se deja para su propio commit.
5+
* bitácora (vía `StackList`), las páginas de plantilla y `sections/Services`.
6+
* Es la única fuente: no hagas copias locales — la que había en `Services`
7+
* acabó divergiendo y no conocía `tailwind`.
108
*
119
* Los nombres NO se traducen: son marcas. Por eso el registro no vive en los
1210
* locales, y por eso los locales guardan la CLAVE (`astro`) y no el texto.

0 commit comments

Comments
 (0)