Files

4.7 KiB
Raw Permalink Blame History

hiparquia.dog — la casa

El sitio que las piezas prometen. Cada carrusel termina diciendo «la ficha completa vive en la casa» y cada pin lleva hiparquia.dog impreso; esto es la casa.

Fase F0-lite del 9-1. La arquitectura dice que el corpus vive en Directus y las fichas en ink.hiparquia.dog. Directus todavía no está en pie, así que el corpus son archivos markdown y las fichas cuelgan de la raíz. El esquema es el mismo contrato: cuando Directus exista se cambia el loader de src/content.config.ts y nada más — las páginas no se enteran.

Qué hay

src/content/fichas/*.md      el corpus. Una ficha pública por texto
src/content.config.ts        el esquema + EL CANDADO del protocolo
src/pages/index.astro        el manifiesto y el índice
src/pages/ficha/[slug].astro la ficha, con su schema.org
src/layouts/Base.astro       cabeza, og:, tipografía
src/styles/global.css        dos tintas y nada más
src/fuentes/                 el MAESTRO de Commissioner (4 ejes, no se embarca)
scripts/fuente.py            deriva la fuente embarcable
scripts/og.mjs               fabrica las tarjetas al compartir
scripts/verificar.mjs        los seis escenarios adversos

El candado, en código

.filter(f => f.data.semaforo === 'verde' || f.data.semaforo === 'propio')

Está en el índice y en getStaticPaths. Una ficha en ámbar o rojo no aparece en la lista y su página no se construye: no existe la URL. El 9-1 §2 dice que el protocolo deja de ser documento y se vuelve software; esto es esa línea.

Nada se mueve

Ni una animación. La única transición del sitio es el color de un enlace bajo el cursor, 120 ms lineal — retroalimentación, no gesto. La pregunta de ioon-gesto §0.5 es ¿qué se pierde si esto no se mueve?, y en un archivo de fichas la respuesta es: nada.

No hay font-weight ni letter-spacing en ningún :hover. Ensanchan el elemento y empujan a sus vecinos. Medido: el ancho del enlace no cambia, delta 0.00 px.

Las dos fuentes de Commissioner, y por qué son dos

ejes peso dónde
maestro wght slnt FLAR VOLM 95,144 B src/fuentes/ — no se embarca
embarcable solo wght 100–900 36,400 B public/ — se deriva

−61.7 % sin tocar un solo carácter. El sitio nunca usa slnt, FLAR ni VOLM, así que los tres se fijan en 0 y desaparecen del binario. Los 230 glifos del subconjunto latino se quedan enteros: el corpus va a crecer con textos que todavía no existen, y recortar por los caracteres de hoy rompería los de mañana.

Es la misma partición que en los SVG: un maestro que lo conserva todo y un embarcable que solo lleva lo que la pieza usa.

Qué se versiona y qué no

Se rastrea la fuente, no la salida — pero solo cuando la salida se puede volver a fabricar donde hace falta.

  • La fuente embarcable NO se versiona. Se deriva dentro del propio Dockerfile; fontTools cabe en la imagen de construcción sin engordarla.
  • Las tarjetas og SÍ se versionan. Fabricarlas necesita Chromium, y meterlo en la imagen de construcción cuesta más de 300 MB para tres PNG que cambian una vez por ficha. Es una excepción con razón escrita, no un descuido. Se regeneran con npm run tarjetas.

Las tarjetas al compartir

serclin.mx no tiene og:image, y por eso su enlace viaja desnudo por WhatsApp. Aquí van desde el primer día: 1200×630, una por ficha más la de la casa. WhatsApp y Facebook no ejecutan JavaScript — leen las etiquetas og: y nada más.

Cómo se corre

npm install
npm run build:completo    # fuente + tarjetas + astro build
npm run verificar         # los seis escenarios, contra dist/ servido en 127.0.0.1
npm run dev

Cómo se despliega

El paso 2 no es opcional (ioon-verificar §1.1): mientras Coolify no esté expuesto por Traefik con HTTPS, GitHub no tiene por dónde entregar el webhook. Un fix bien escrito estuvo 68 días sin salir del repositorio de serclin por creer lo contrario.

  1. git push
  2. Redeploy manual en Coolify
  3. Verificar contra producción, con dos comprobaciones que no mienten: que cambió el last-modified y que el HTML servido trae el texto nuevo. En este sitio el CSS va incrustado en el HTML, así que no hay hash de bundle que mirar: se comprueba el HTML.

Antes de nada: hiparquia.dog tiene que resolver. Los dos pines lo llevan impreso y no pueden publicarse hasta entonces.

Pendientes

  • DNS en Cloudflare + TLS por Traefik (9-1 §1).
  • Cuando haya más de ~20 fichas: paginación o índice por autor.
  • Cuando Directus esté en pie: cambiar el loader, mover a ink. y dejar redirecciones.
  • ask. (AnythingLLM) y la tienda son F1/F2 — nada de esto los bloquea.