Commits

Pàgines adaptables: de la spec a producció en un dia

Grilling de 14 rondes, set tracer bullets desplegats i calibratge amb el material real de la n2: el motor ja tria la maquetació de cada article i es corregeix sol quan no hi cap.

· auto-magazine · milestone

El dia va començar amb un grilling de 14 rondes i 45 decisions sobre la feature que tenia al cap: que el motor trïi la maquetació de cada article segons el seu contingut, la verifiqui mesurant el render i es corregeixi si no hi cap. La idea central: la Pàgina adaptable és una entitat nova, no una Plantilla més. Unes regles d'encaix (paraules del cos, nombre d'imatges comptant la destacada, orientació d'aquesta), un rang de pàgines promès i un CSS propi amb scope automàtic.

Primer mesurar, després decidir

Vaig mesurar cada decisió que tenia una alternativa tècnica abans de preguntar-la. Les named pages trencaven el flux continu, així que les variants no poden portar @page propi. El CSS nesting sí funciona amb WeasyPrint 70, cosa que va aixecar una limitació que ja havia comunicat. Page.anchors és públic i fa la mesura d'extensió trivial. I una d'aquestes mesures va destapar una contradicció entre dues decisions ja preses: amb les variants precarregades amb rang obert i una correcció que es quedava la primera que encaixés, la primera de la llista s'hauria endut tots els articles. La sortida: en corregir guanya el rang més concret, i el rang obert és el comodí final.

La spec va sortir com a issue #7 del tracker, amb set tickets penjats com a sub-issues i dependències natives de GitHub. La frontera era el #8: per allà es podia començar.

Set tracer bullets en un dia

La primera (#8) va deixar la taula, la secció a Configuració i quatre variants precarregades, amb la per defecte al final com a reserva: les seves regles són obertes i fixes, perquè si no, algun article es quedaria sense destinació. La segona (#9) va posar el motor en marxa: calcula les senyals de cada article, tria la primera variant que encaixa i injecta el seu CSS després del full d'estil mestre, amb el nesting fent el scope automàtic. La tercera (#10) va afegir la mesura per article entre les seves anelles pròpies i la correcció, fins a dos cops, avisant si el rang no es compleix. Amb aquestes tres vaig actualitzar producció i vaig reconstruir el contenidor.

Després van venir el CRUD complet (#12), amb el nom com a identitat fixa de la variant i el borrat a Neteja; la previsualització com a funció pura i la fixació manual que guanya al motor (#11); i l'export a InDesign fidel al PDF (#13), que arrossegava un error del script .jsx: guardava els estils per rol i dos articles amb el mateix rol sortien amb el mateix estil. Ara s'identifiquen per la seva definició. El tancament (#14) va ser el recorregut complet amb el material real de l'edició n2, no amb material de prova.

Calibrar amb el material real

Els tres articles de la n2 fan 174, 318 i 395 paraules i ocupen 1,43, 2,29 i 2,20 pàgines. El tall de 250 paraules es confirma. El de 800 no el respeta cap material i Larga passa a 500. I la capacitat de referència del research (500-700 paraules per pàgina) queda refutada amb fotos: la mesura real és de 150-200. Al codi s'hi ha quedat la mesura, no la xifra de paper.

Panell i cost

Les Plantilles lliures ja són elegibles com a peça de cada article, i el panell mostra en una etiqueta què hi ha assignat; de pas va sortir un atribut hidden que no ocultava res per culpa d'un display: flex, corregit amb la regla estàndard. I vaig mesurar el cost del bucle de correcció sobre el número real: 0,71 s sense correccions, 1,45 s amb les dues, i cada render extra costa uns 0,37 s. La suite va tancar el dia en 255 tests en verd.