Jump to content

Ayuda:Errores de lint/pwrap-bug-workaround

From mediawiki.org
This page is a translated version of the page Help:Lint errors/pwrap-bug-workaround and the translation is 57% complete.
Outdated translations are marked like this.

Esta categoría del linter fue creada para ayudar a los editores a corregir el wikitexto y las plantillas para garantizar que sus páginas se muestren correctamente con una herramienta basada en HTML5 como RemexHTML (que está previsto que sustituya a Tidy) y Parsoid. Concretamente, esto tiene que ver con un error de envoltura de párrafos en el analizador sintáctico de PHP. Afecta a las etiquetas span, sub y sup que se encuentren en la misma línea que una etiqueta (HTML4) de bloque y además tengan una propiedad CSS white-space:nowrap;. Specifically, this has got to do with a paragraph-wrapping bug in the PHP parser. It affects ‎<span>, ‎<sub>, ‎<sup> tags that occur on the same line as a (html4) block tag and also have a white-space:nowrap; CSS property.

En todos los escenarios identificados por esta categoría del linter, recomendamos añadir un salto de línea antes de la etiqueta span/sub/sup para garantizar que se preserve la representación de la página cuando se reemplace Tidy por RemexHTML.

Explicación

El siguiente wikitexto:

<div><span style='white-space:nowrap'>
foo
</span>
</div>

genera el siguiente HTML en (analizador PHP + RemexHTML) y Parsoid:

<div><span style='white-space:nowrap'>
<p>foo</p>
</span>
</div>

pero genera el siguiente HTML en (analizador PHP + Tidy):

<div>
<p><span style='white-space:nowrap'>foo</span></p>
</div>

Observa cómo la etiqueta p envuelve a la etiqueta span en Tidy pero la etiqueta span envuelve a la etiqueta p en RemexHTML. Normalmente, esto no supone un problema (excepto en términos de cumplimiento de la salida HTML5, que es otra cuestión). Sin embargo, cuando la etiqueta span tiene la propiedad CSS white-space:nowrap, un span que envuelve la etiqueta p puede cambiar negativamente la representación de la página cuando el párrafo tiene mucho contenido. Produce una larga línea horizontal sin envoltura. Este parece ser el caso de las fichas de navegación, por ejemplo.

Solucionar el error subyacente (T134469) no es trivial (y aún vamos a seguir considerando esto). Sin embargo, hay un apaño simple para este error que consiste en añadir un salto de línea antes de la etiqueta span para que no esté en la misma línea que una etiqueta de nivel de bloque tal como div. However, there is a simple wikitext workaround for this bug which is to introduce a line break before the span tag so that it is not on the same line as a block tag like the div.

Así que el wikitexto corregido tendría este aspecto:

<div>
<span style='white-space:nowrap'>
foo
</span>
</div>