Files
hiparquia/LEEME.md
T

107 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```js
.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.