4.7 KiB
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.
git pushRedeploymanual en Coolify- Verificar contra producción, con dos comprobaciones que no mienten: que cambió el
last-modifiedy 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 aink.y dejar redirecciones. ask.(AnythingLLM) y la tienda son F1/F2 — nada de esto los bloquea.