Contactar con soporte

Respondemos por correo, normalmente en dos días.

Google reCAPTCHA revisa este envío frente a abusos; se transmiten datos a Google. El script se carga solo al abrir el formulario.

← Todas las entradas

Un escape de más en ocho diagramas

Durante un tiempo, ocho entradas de este blog mostraron, en medio de una frase, los siete caracteres —, y dentro de los diagramas. No una raya. El texto tal cual. Desde entonces está corregido en todos los idiomas.

81 filas, 91 apariciones. En la prosa de esas mismas ocho entradas: ninguna.

filas de diagrama que dibujaron la entidad en vez de la raya once idiomas Contar sin cookie middot, mdash Llévate tus datos mdash Contador con el gestor de etiquetas mdash Tu contador en una página HTTPS mdash Un contador en un perfil de Chomikuj mdash Una dirección larga tumbó el contador mdash Por qué la lista de exclusión no se cifra mdash La caché que vive en memoria mdash 81 filas en 8 entradas, 91 apariciones — y en la prosa ninguna la comprobación de ancho las vio anchas, nunca equivocadas

Un escape de más

Los diagramas son SVG incrustado, escrito en el cuerpo del artículo. Una etiqueta que quiere una raya lleva —, y el navegador la convierte en una, igual que en un párrafo.

Lo que estaba guardado, en cambio, era —. El navegador convirtió eso obedientemente en los caracteres que deletrean una entidad y los dibujó. La prosa quedó intacta porque nunca pasó por aquello que añadía el escape de más; solo pasaban las etiquetas, y solo en las entradas cuyas etiquetas se construyeron entonces.

La causa es pequeña y aburrida. Lo que merece anotarse es por qué estuvo tanto tiempo a la vista y qué le puso fin.

La comprobación lo vio y dijo otra cosa

Hay una comprobación que mide si una etiqueta de diagrama cabe en su imagen. Llevaba días señalando estas etiquetas — como demasiado anchas.

Que lo eran. Una etiqueta que dibuja siete caracteres en vez de uno es unos cuarenta y cinco píxeles más ancha de lo previsto, así que la medición era correcta y el aviso era correcto. Lo que no lo era es la conclusión que saca quien lee ese aviso. El número decía que la geometría estaba apretada. La verdad era que el texto no era el que parecía.

Esa es la forma del asunto. Una comprobación responde a la pregunta que se le dio y no puede avisar de que la pregunta era la equivocada. Aquí no se midió mal nada; la medición trataba simplemente de un problema distinto del que parecía.

Lo que sí lo encontró

Renderizar un diagrama y mirarlo. Chromium sin ventana, una captura, diez segundos. La entidad estaba en la tercera línea de la imagen, con letras del mismo tamaño que todo lo demás.

La reparación fue una migración que sustituye &amp; por &, para una lista fija de nombres de entidad y solo dentro de bloques <svg class="dg">, para que un ampersand que quiere ser ampersand lo siga siendo. Lo que no estaba en la lista se informó y se dejó en paz en vez de adivinarlo. Las 81 filas se corrigieron en todos los idiomas; en el blog solo quedan las apariciones que esta entrada cita a propósito.

Lo que se generaliza

Toda comprobación automática de este proyecto mide algo numérico, porque los números son lo que un programa sabe comparar. Ninguna puede ver que una imagen se ha vuelto un sinsentido, que una caja está vacía o que una palabra aparece deletreada donde debería ir un símbolo.

La regla que salió de aquí es corta: después de cualquier cambio en un diagrama, renderizar uno y mirarlo, en el idioma que más sitio necesita. Ya ha cazado dos cosas que ninguna medición podía — esta y una caja vacía que quedó cuando se sacó de ella un pie de imagen.

Publicidad