2011-01-30 21 views
7

Ugh. Word es notorio por su HTML inflado, complicado, no compatible con los estándares y no semántico. Lamentablemente, tengo un profesor que nos exige que generemos un esquema de estándares muy exigentes. Prefiero no escribir a mano, así que decidí hacer algo que fuera útil también para mis compañeros de clase. Creé el esquema usando una lista numerada simple en NeoOffice en mi Mac, lo exporté como HTML y escribí bastante CSS para darle un estilo. Luego, conseguí que alguien creara una lista ordenada en Word para Windows, la exportara como html y me la enviara para verificar la compatibilidad. Después de desplazar millas por la página, tratando de reprimir un escalofrío, vi un problema. Word no usó <ol> y <li>. Usó montañas de <span> s anidados con clases del wazoo. Odio ver que todo mi trabajo se desperdicia, pero es imposible trabajar con este contenido: tendré que marcar el estilo de documento a documento, en lugar de hacerlo con una hoja de estilo universal.Estilo HTML generado por Microsoft-Word

Idealmente, Word generaría HTML usando etiquetas estándar para que pudiera darle el mismo estilo que cualquier otra lista, pero este no parece ser el caso. ¿Cómo puedo hacer que genere listas que realmente usan <ul> y <li> en lugar de <span>, o al menos modificar algo en mi código para que de alguna manera funcione de la manera extraña en que crea listas?

+0

Relacionados: http://stackoverflow.com/questions/4824619/batch-conversion-of-docx-to-clean-html También podría ayudar: http://stackoverflow.com/questions/1255738/tinymce-and- importing-copy-paste-from-microsoft-word – thirtydot

+0

Aún no tengo muy claro qué es exactamente lo que estás tratando de lograr. – reisio

+0

Ver las últimas líneas. Aclaré – Walker

Respuesta

0

Al hacer algunas investigaciones, parece que el enfoque de convertir el documento a HTML no es práctico. Word es simplemente demasiado variable en su enfoque de ahorro de archivos y generación de HTML para un único documento, por no mencionar las diferencias entre las diferentes versiones de Word. Similar a la sugerencia de Wyatt, puede haber formas de limpiar el código, pero ninguna de ellas es perfecta. Excavar alrededor de la API puede proporcionar una forma de analizar esto más fácilmente, pero puede resultar que esto en la práctica sea complicado. Parece que utilizar Word como una herramienta de generación de listas simplemente no es realista.

0

Si puede obtener sus manos en una PC con Windows, use Notepad ++ (http://notepad-plus-plus.org/) para pegar el código, y luego seleccione el complemento para formatear el código.

+0

¿Es este un complemento que viene de serie con Notepad ++? Uso Textmate en la Mac, así que me pregunto si habría un equivalente para lo que estás sugiriendo. Sin embargo, no estoy seguro de si abordaría el problema de la marca no semántica de Word. – Walker

+0

Creo que sí. Vaya a Menú> TestFX> HTML Tidy> Tidy: Reindent XML. En cuanto a lo que Word está haciendo, puede que tenga que copiar todo en el bloc de notas para perder el código de formato adicional que Word agrega, y luego pegarlo en el bloc de notas ++, donde puede volver a formatearlo. Entonces le recomendaría que tome notas usando Notepad ++. – Teknophilia

+1

Acabo de enterarme de otra alternativa al bloc de notas ++ para Mac. Tiene TextWrangeler (http://www.barebones.com/products/textwrangler/), gedit (http://projects.gnome.org/gedit/) y Macpad (http://sourceforge.net/projects/macpp /). Macpad dice que su bloc de notas ++ para Mac, por lo que también podría tener HTML Tidy. – Teknophilia

0

Utilice un editor WYSIWYG como generador de listas. Esto eliminaría la necesidad de que los usuarios manejen CSS sin procesar, a costa de sacarlos de la zona de confort de Microsoft Word.

0

El uso creativo de Buscar y reemplazar de Word también podría funcionar. Por ejemplo, abra el archivo HTML con NotePad, copie y pegue el texto en un documento de Word. Abrir Buscar y Reemplazar. Si el HTML se parece a esto (por ejemplo), con "Esta es la primera línea de texto" siendo el primer elemento de línea:

<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span...(Cut due to berevity)... 
-height:115%'>This is the first line of text<o:p></o:p></span></p> 

A continuación, buscar y reemplazar con comodines por \<p*line-height:115%'\ y reemplazar con nada. Puede tomar una serie de hallazgos/reemplazos. El marcado de HTML es copioso, pero todo lo demás es igual, al menos es consistente.

0

Si tiene Dreamweaver a mano, hay un botón mágico de "limpieza de palabras HTML" que hace maravillas en este escenario.

0

MSWord es tan inteligente como el autor: una lista ordenada se convierte como tal en HTML solo si se creó en MSWord como tal. Esto significa que una lista debe formatearse como tal por construcciones de MSWord y no como se muestra en la página. Muchas personas crearán listas que "aparecerán" para ser ordenadas o no ordenadas usando pestañas y otro formato y sin usar las funciones de la lista de MSWord. Guardar en HTML intenta guardarlo tal como fue escrito, no cómo se mostró.

3

Los tipos que escribieron Winword y su generación de HTML son tipos inteligentes.Si fuera fácil usar las funciones HTML de una manera purista, lo habrían hecho.

Se trata de crear diseños optimizados para papel. admite conceptos como tabulaciones y numeración multinivel que HTML no admite o que apenas está comenzando. Como resultado, la versión HTML de un documento de Word no es un "bonito" HTML, sino un intento de conservar las características del documento de Word con precisión.

Cuando Word vuelve a abrir un archivo HTML que ha guardado, realiza una ingeniosa ingeniería inversa en el documento, de modo que los resultados en Word se parecen mucho a los que comenzaron. Del mismo modo, si inserta el código HTML como un fragmento en una página web, conservando Word CSS, los resultados son bastante fieles. En este caso, hay un choque cultural entre el CSS subyacente de la página web y el CSS de Word, y se requieren algunos esfuerzos para sacar lo mejor de un mal trabajo. El HTML de Word tampoco usa UTF-8, lo que requiere cierto manejo.

HTMLTidy se puede utilizar para extraer el marcado de Word, pero se necesita algo más de masaje después de esto para una buena representación dentro de una página web. He trabajado en un producto durante 15 años, lo que hace esta mezcla de Word y páginas web, y los resultados pueden ser bastante buenos si sintonizas el CSS.

Utilizamos Word porque estamos creando versiones en papel e importando texto de informes escritos en Word, no porque no pudimos encontrar un editor de HTML dedicado.

No recomendaría usar Word para crear HTML ordenado purista. No usarías un abrelatas para abrir una botella de vino, ¿verdad?

La vida sería mucho más sencilla si: a) Microsoft re-ingeniería de la miríada de opciones en sus 'balas y número' muy confusos función, b) HTML proporcionado nativa, y debidamente apoyo numeración de las funciones, de varios niveles, en vez de los enfoques posteriores al pensamiento actualmente disponibles. La debilidad del HTML en esta área se puede ver en las endebles opciones de numeración disponibles en Google Docs.

Tanto ha mejorado con HTML 5, quizás podamos esperar que HTML 6 ayude a unir la división del procesador de textos/editor de HTML.

Cuestiones relacionadas