Wyczyść śmieciowy kod HTML Worda
Mam nadzieję, że nikt nie robi już stron internetowych za pomocą funkcji “Zapisz jako stronę sieci Web” dostępną w programach Microsoft Word od wersji 97, ale niestety zdarza się otrzymywać do dalszej obróbki dokumenty zapisane w tym pseudo-HTML przez ten program. Spotykałem się z tą sytuacją swego czasu i trochę czasu zajmowało mi (notabene we FrontPage) wycinanie z kodu takich rzeczy jak monstrualny nagłówek:
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>Marcin</o:Author>
<o:LastAuthor>Marcin</o:LastAuthor>
<o:Revision>1</o:Revision>
<o:TotalTime>2</o:TotalTime>
<o:Created>2006-06-26T15:52:00Z</o:Created>
<o:LastSaved>2006-06-26T15:54:00Z</o:LastSaved>
<o:Pages>1</o:Pages>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:Version>9.6926</o:Version>
</o:DocumentProperties>
</xml><![endif]–><!–[if gte mso 9]><xml>
<w:WordDocument>
<w:HyphenationZone>21</w:HyphenationZone>
</w:WordDocument>
</xml><![endif]–>
[i tu jeszcze trochę]
jakieś dodatkowe przestrzenie nazw XML, tagi <meta> z wyraźnym podpisem Worda, u mnie wersji 9, oraz walających się tu i ówdzie, bliżej nieznanego mi przeznaczenia, pustych znaczników <o:p></o:p>.
Oczywiście ludzie od produktu, który dąży do zgodności ze standardami, to jest Microsoft Expression Web Designer, nie mogli nie zauważyć, że dzieło ich kolegów tworzy śmietnik. I dodali w swoim narzędziu, w opcji “Optimize HTML” możliwość łatwego pozbycia się generowanego przez Worda “HTML-a”. Wystarczy zaznaczyć odpowiednią opcję w sekcji “Remove Generated HTML” - czyli “Delete VML Content” oraz “Word HTML”. I gotowe!
Program bezproblemowo usuwa monstrualne nagłówki (w przypadku stworzonej do testów krótkiej strony zajmowały one ponad połowę dokumentu!), ale niestety nie usuwa znaczników <o:p>, ani wszystkich przestrzeni nazw - czasami zostawia coś. Co powoduje, żę walidacja może się nie powieść (zresztą i tak Doctype w dokumentach HTML Worda to nie ma). Jednak znacznie ułatwia i przyspiesza czyszczenie kodu HTML, by można go było wykorzystać potem już na w pełni zgodnych ze standardami stronach.
Dobry krok ze strony Microsoftu, ze dał takie narzędzie. Szkoda, że nie usuwa wszystkiego (aż spojrzę na MS Connect, czy to zostało zgłoszone, a jak nie to im zgłoszę). No i ja wolałbym aby po prostu Word i reszta aplikacji pakietu Office tworzyła ładny kod, a nie śmietnik, którzy trzeba samemu czyścić. Choć w 2007 ma się poprawić.
Technorati Tags: Microsoft, Expression Web Designer, Word, HTML, HTML optimization, HTML tidyness
PS. Zastanawia mnie jedno. Dlaczego jak Word tworzy stronę to robi formatowanie tekstu tak zaawansowanym sposobem jak:
<p class=MsoNormal><span style='font-family:Calibri'>Jak ja lubię tworzyć
strony internetowe w Wordzie. Zażółć gęślą jaźń.<o:p></o:p></span></p>
Błąd z zostawianiem tych Wordowych znaczników <o:p> został zgłoszony. Pierwszy mój zgłoszony błąd w EWD :-)
Liczba komentarzy: 7
»Wątek RSS dla komentarzy tego wpisu · Adres trackback
czerwiec 26, 2006 godzina 18:04
To pozostałość z czasów gdy siecią rządził IE, microsoft tak zmutował offica, by tylko w tej przeglądarce dało się odczytać to coś, w ten sposób utrudniali życie autorom alternatywnych przeglądarek.
czerwiec 26, 2006 godzina 19:56
Jak kiedys jeszcze uzywalem Dreamweavera to on mial opcje czyszczenia plikow html zapisanych przez Worda
czerwiec 26, 2006 godzina 20:25
Dobra wiadomość, dzięki Marcin. :)
czerwiec 26, 2006 godzina 22:22
Dreamweaver fantastycznie czyści kod MS Word.
czerwiec 27, 2006 godzina 08:38
No cóż, widać skoro Dreamweaver to robi, to EWD szykowany na jego konkurenta też nie mógł być gorszy ;-)
Czara, nbw, dzięki za info, ale chyba na DW mnie nie stać :-)
czerwiec 28, 2006 godzina 19:50
Mała historyjka. Na początku od autorów w Apeiron Magazine wymagaliśmy podsyłania wersji HTML na stronę, ale zaznaczaliśmy, że nie ma to być “Zapisz jako HTML” z Worda, bo my poznamy czy był używany Word czy nie. I wyobraź sobie, że autorzy wysyłali wordowy HTML i szli w zaparte, ze nie robili w Wordzie. Więc ja już miałam takiego gotowca wordowego i pokazywałam fragmenty kodu Worda i kilku edytorów HTML dla porównania. Bo kłamczuchów to my nie lubimy ;)
wrzesień 7, 2006 godzina 11:55
A tidy? darmowe i chyba nieźle sobie radził z tym kawałem śmiecia. Ja to natomiast robiłem tak:
otwierałem plik worda w KOffice względnie w OO.org i zapisywałem jako html:) Przy dczym KOffice ładniej to robił.