hiparquia.dog — sitio F0-lite: Astro estático, cero JS, candado del protocolo en código
This commit is contained in:
@@ -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())}")
|
||||
Reference in New Issue
Block a user