perf: reemplazar el bundle de Bootstrap 2 por un reset propio de ~1 KB

Auditoría: ninguna plantilla local usa una sola clase de Bootstrap
(.btn/.navbar/.row/.span*/.modal, cero coincidencias); ops.css ya
redefine todo lo que sí se usa (.container, .badge, code/pre). El
site.scss del tema (que importaba bootstrap.css + bootstrap-responsive.css
+ style.css, ~103 KB) se reemplaza en bootstrap-theme.sh por un reset
mínimo propio que cubre solo lo que ops.css necesita.

site.css pasa de 103.5 KB a 605 B; public/ de 672 KB a 572 KB. Sin
cambio visual (verificado página por página con Playwright) ni de
tiempo de build.
This commit is contained in:
2026-08-15 21:37:57 -06:00
parent 3de89b8dd8
commit a086df8f13
+37 -9
View File
@@ -42,14 +42,42 @@ cp "$SOURCE/theme.toml" "$DEST/theme.toml"
[[ -f "$SOURCE/README.md" ]] && cp "$SOURCE/README.md" "$DEST/UPSTREAM_README.md"
printf '%s\n' "$REF" > "$DEST/.upstream-revision"
# Ninguna plantilla local referencia el JS/iconos/fuentes DOS del tema, y
# static/ se publica tal cual junto al sitio: sin podarlo, ~65% del build
# es peso muerto. compile_sass solo necesita los 3 CSS que importa
# site.scss, así que se mueven fuera de static/ (a vendor/, que Zola no
# copia) y el resto de static/ se descarta.
mkdir -p "$DEST/vendor/css"
mv "$DEST/static/css/bootstrap.css" "$DEST/static/css/bootstrap-responsive.css" "$DEST/static/css/style.css" "$DEST/vendor/css/"
sed -i 's#\.\./static/css/#../vendor/css/#g' "$DEST/sass/site.scss"
# Ninguna plantilla local usa una sola clase de Bootstrap (auditado: cero
# coincidencias de .btn/.navbar/.row/.span*/.modal/etc.), así que el
# site.scss original del tema (que importa el bundle de Bootstrap 2 de
# ~103 KB) se reemplaza por un reset mínimo propio que cubre lo que
# ops.css sí necesita: el fondo negro de <code>/<pre> y unos resets base.
# static/ tampoco lo referencia nada local, así que se descarta entero.
cat > "$DEST/sass/site.scss" <<'SCSS'
// Reset propio: reemplaza el bundle de Bootstrap 2 del tema, que ninguna
// plantilla local usaba (auditado). Cubre solo lo que ops.css necesita.
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding: 0; list-style: none; }
img, svg, video { max-width: 100%; height: auto; display: block; }
table { border-collapse: collapse; width: 100%; }
hr { border: 0; border-top: 1px solid currentColor; }
a { text-decoration: underline; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
code, pre {
padding: 0;
color: #ffffff;
background-color: #000000;
border-radius: 0;
}
pre {
padding: 8.5px;
white-space: pre-wrap;
}
pre code {
padding: 0;
color: inherit;
background-color: transparent;
}
SCSS
rm -rf "$DEST/static"
mkdir -p "$DEST/static"
@@ -57,5 +85,5 @@ cat <<MSG
Tema zola.386 preparado en themes/zola.386
Revisión fijada: $REF
Se conservaron Sass y archivos estáticos; las plantillas locales modernas tienen precedencia.
static/ podado a solo lo necesario para compile_sass (sin JS/iconos/fuentes sin referenciar).
site.scss reemplazado por un reset propio (~1 KB) en vez del bundle de Bootstrap 2 (~103 KB); static/ podado a vacío.
MSG