From a086df8f137bef713b74b510a4b7ce2b722e4eee Mon Sep 17 00:00:00 2001 From: Fernando Rivas Date: Sat, 15 Aug 2026 21:37:57 -0600 Subject: [PATCH] perf: reemplazar el bundle de Bootstrap 2 por un reset propio de ~1 KB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- scripts/bootstrap-theme.sh | 46 ++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/scripts/bootstrap-theme.sh b/scripts/bootstrap-theme.sh index 17cce38..4fd9823 100755 --- a/scripts/bootstrap-theme.sh +++ b/scripts/bootstrap-theme.sh @@ -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 /
 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 <