Ver Mensaje Individual
  #9 (permalink)  
Antiguo 10/08/2012, 11:47
reivaj01
 
Fecha de Ingreso: abril-2008
Mensajes: 93
Antigüedad: 16 años
Puntos: 10
Respuesta: Deshabilitar el formato HTML automático

Hola de nuevo y muchas gracias por el interés una vez más.

Creo que ya he visto como es el comportamiento de Wordpressy la verdad es que me sorprende.

Mi objetivo no es crear polémica, ni mucho menos desprestigiar a Wordpress, que me parece digno de elogio, pero no entiendo como puede estar ocurriendo esto, en un punto tan concreto y fácil de solucionar.

Lo primero, la que creo que es la mejor solución: en configuración poner un checkbox que habilite o no las "optimizaciones de WP", por defecto habilitado, para que todo el mundo siga igual que hasta ahora si así le va bien.

Ahora, mi idea acerca de lo que sucede: Wordpress intenta "corregir" el html que insertamos para que la página se vea correctamente. Hasta aquí todo muy loable, salvo por un detalle, y es que es una labor imposible, ni existe, ni probablemente existirá, ninguna herramienta capaz de llevar a cabo ese cometido. Las posibilidades son prácticamente infinitas, y con HTML5 se complica mucho más.

Cuando edito una página / post a través del editor de HTML, desde mi ignorancia, imagino que las reglas son las definidas por el W3C, que para eso está, pero los desarrolladores de Wordpress, prefieren poner las suyas y eso no está bien, si quieren cambiar las reglas del lenguaje, que creen otro como hizo facebook con su FBML, que por cierto, desapareció por su falta de sentido, entre otras cosas.

Aparentemente, lo que pretenden "arreglar" es que no haya elementos block dentro de inlines, lo cual es muy loable, pero no de esta manera. El W3C también opina lo mismo, pero la cuestión está en el contexto. el W3C lo hace teniendo en cuenta la página completa y WP solo el contenido, sin tener en cuenta el resto de elementos de la página.

Si yo tengo en mi plantilla un page.php donde abro un <p>, a continuación coloco el contenido <?php the_content(); ?> y luego lo cierro </p> en el editor html debería poder colocar una <img> sin más, y WP no lo vé así y el resultado es:
Código:
<p></p>
<p><img src="http://ayudawordpress.com/wp-content/themes/ayudawordpress/images/logo.png"></p>
<p></p>
Esta forma de abrir y cerrar cosas en distintos sitios puede parecer rara, pero en un gestor de contenidos, es muy habitual, y de hecho, en WP por ejemplo, en el fichero header.php se abren muchas etiquetas que se cierran posteriormente en el footer.php, por ejemplo <body>

Por otra parte, wp considera que un salto de línea debe convertirlo en un párrafo <p> o en un salto de línea <br> en el caso de que ya se encuentre en dentro de uno. Esto está muy bien para el editor visual, pero en el editor HTML deberían utilizarse las reglas del W3C y ahí esta claro que los espacios (a partir del segundo), tabuladores y saltos de línea, no tienen representación, y solo sirven para claridad de edición por parte del programador.
Como apuntaba AlZuwaga, poniendo todo el código en una sola línea, el problema de los <br> desaparece, pero no me parece nada bien tener que trabajar así.

Algunos habéis dicho que haciendo las cosas bien con CSS, no tendré problema, y ahí no estoy de acuerdo, ya que para mí, lo correcto es partir de un HTML simple y limpio para poder aplicar, a su vez, unas reglas de estilo simples y limpias. Tapar mediante CSS las deficiencias de HTML no lo considero un buen trabajo, para mí se trata de conseguir un mal menor.

Ahora voy a poner un ejemplo forzando la máquina:

El siguiente código no es correcto

Código:
<ul id="Navegadores">
	<li><a href="http://yahoo.com"><h3>Yahoo</h3></a></li>
	<li><a href="http://google.com"><h3>Google</h3></a></li>
</ul>
Este código no valida por el W3C ya que incluye un <h3> (block) dentro de un <a> (inline)
Entonces WP intenta arreglarlo y el resultado es el siguiente:

Código:
<ul id="Navegadores">
<li><a href="http://yahoo.com"><br>
<h3>Yahoo</h3>
</a><p><a href="http://yahoo.com"></a></p></li>
<li><a href="http://google.com"><br>
<h3>Google</h3>
</a><p><a href="http://google.com"></a></p></li>
</ul>
Han aparecido elementos <p>, <br> y ha duplicado los <a>. Es decir, el remedio es peor que la enfermedad, ya que el primer código, aunque incorrecto tiene una visualización mejor. A esto me refería al inicio del mensaje cuando opinaba que no es posible crear un corrector de HTML automático.

Ahora podréis pensar que "¿como quiero que funcione si estoy introduciendo código erróneo?", y la respuesta es otra pregunta: si este "corrector" solo funciona si le pongo código correcto, ¿Cual es su función?.

En definitiva, de momento, mi solución pasa por quitar algunos fragmentos de la plantilla e incluirlos en todas las páginas, pero me da pena, después de haber dedicado tanto tiempo, no haber llegado a la solución, sobre todo teniendo en cuenta lo que ocurrirá cuando tenga que modificar todas las páginas ante un cambio de diseño.

Siento mucho haberos aburrido de esta manera, pero creo que era mi deber el comunicaros mis conclusiones por si a alguien le interesa.

Saludos