Error al guardar el tema de Blogger: El peligro de meter HTML en comentarios CSS dentro de b:skin

3 min read · 715 words

Si estás editando tu plantilla de Blogger y te estás volviendo loco porque los cambios no se reflejan en producción, este post es para ti. Te cuento cómo me topé con este dichoso error al guardar el tema de Blogger y cómo logré solucionarlo sin dejarme engañar por los mensajes de éxito de la interfaz.

El problema: Blogger no aplica los cambios

Estaba haciendo limpieza y organizando los comentarios CSS dentro del bloque <b:skin> (en el CDATA) de mi archivo theme.xml. Para dejar una nota clara sobre cómo dar formato al código, añadí un comentario explicativo tal que así: /* Bloque pre / code procesado con etiquetas <pre> y <code> */. Guardé los cambios, pero al recargar el blog, no se veía absolutamente nada de lo que había modificado.

Síntomas del error

En el panel de administración de Blogger, el sistema mostraba el típico mensaje flotante de "Guardado correctamente". Sin embargo, al inspeccionar el código fuente de la página en vivo, seguía apareciendo la versión antigua del tema. Esperé 5 minutos por si era un tema de caché, probé desde otro ordenador en modo incógnito... y nada, seguía el código viejo. El aviso de 'Guardado' de Google a veces es un mero acto de fe. No te fíes de la interfaz; comprueba siempre el tamaño real del recurso. Estábamos ante un claro caso de 'silent reject' (un rechazo silencioso) en el backend.

Entorno del sistema

Las pruebas y el entorno donde se produjo el error fueron los siguientes:

  • Plataforma: Blogger (Google Blogspot)
  • Archivo afectado: theme.xml
  • Ubicación del fallo: Comentarios CSS (/* ... */) dentro del bloque <b:skin><![CDATA[...]]>

Lo que intenté (y no funcionó)

Antes de dar con la tecla, probé varias cosas desesperadas:

  • Subir el XML completo de nuevo: Intenté forzar la carga de todo el archivo, pero el sistema lo ignoraba silenciosamente.
  • Esperar la propagación de la CDN: Pensé que podría ser un retraso de caché de los servidores de Google, pero tras un buen rato el código seguía intacto.
  • Fetch desde entornos limpios: Usé otros navegadores y conexiones móviles para descartar problemas de caché local, con el mismo resultado negativo.

La solución definitiva

Aunque Blogger no da detalles del error, la causa parece bastante clara: el parser de SkinVariables de Blogger se atraganta al procesar las etiquetas <pre> y <code> que metí dentro del comentario CSS en el bloque CDATA. Al ver los corchetes angulares, intenta parsearlos como elementos HTML reales o variables del tema, lo que acaba lanzando un InvalidVariableException interno. La solución fue radicalmente sencilla: eliminar cualquier rastro de sintaxis HTML de los comentarios CSS. En cuanto quité los caracteres < y > y dejé el texto plano como 'pre' y 'code', el tema se guardó y se aplicó al instante.

Código de ejemplo

Aquí tienes la diferencia entre el código que rompía el parser y el código corregido:

<!-- Before (provoca silent reject) -->
/* Bloque pre / code procesado con etiquetas <pre> y <code> */

<!-- After (aplicado correctamente) -->
/* Bloque pre / code procesado con texto pre y code */

Resultado y verificación

Tras corregir los comentarios y volver a subir la plantilla, el tamaño del código fuente en vivo pasó de 286.391 bytes a 294.194 bytes, confirmando que los cambios se habían aplicado. También verifiqué que el sentinel SESS140 5 sentinel llegó correctamente a producción. Estado actual del problema: fixed.

Consejo si te ocurre lo mismo

Si estás sufriendo con un tema de Blogger que no se actualiza, lo primero que debes revisar son los comentarios CSS dentro de tu bloque <b:skin>. Es muy probable que hayas escrito algo como <pre>, <code> o <div> sin querer y el parser se esté volviendo loco. Limpia esos caracteres especiales y vuelve a probar; te ahorrarás horas de frustración.

Category Coverage Notice

This article follows our label-specific editorial criteria. Details:

ToolSignal Pro Editorial

ToolSignal Pro는 AI·IT·소프트웨어 트렌드를 다루는 종합 IT 인사이트 매거진입니다.

이전 글 다음 글