hiparquia.dog — sitio F0-lite: Astro estático, cero JS, candado del protocolo en código

This commit is contained in:
2026-08-05 11:10:53 -06:00
commit 974823b9bb
23 changed files with 5294 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
"""Deriva la fuente que se embarca a partir del maestro.
El maestro (src/fuentes/) trae los cuatro ejes de Commissioner. El sitio solo usa
el peso — nunca FLAR, VOLM ni slnt —, así que los tres se fijan en 0 y desaparecen
del binario. El repertorio de caracteres NO se toca: 230 glifos, el subconjunto
latino entero, porque 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.
"""
from fontTools.ttLib import TTFont
from fontTools.varLib.instancer import instantiateVariableFont
import os
MAESTRO = "src/fuentes/Commissioner-latin.woff2"
SALIDA = "public/Commissioner-wght.woff2"
f = instantiateVariableFont(TTFont(MAESTRO),
{"FLAR": 0, "VOLM": 0, "slnt": 0, "wght": (100, 900)},
inplace=True, updateFontNames=False, optimize=True)
f.flavor = "woff2"
f.save(SALIDA)
a, b = os.path.getsize(MAESTRO), os.path.getsize(SALIDA)
g = TTFont(SALIDA)
print(f"maestro {a:,} B → embarcable {b:,} B ({(b-a)/a*100:+.1f} %)")
print(f"ejes: {[(x.axisTag, x.minValue, x.maxValue) for x in g['fvar'].axes]} · glifos: {len(g.getBestCmap())}")