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: , , , , ,

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

»
  1. #1 Siergiej
    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.

  2. #2 Czara
    czerwiec 26, 2006 godzina 19:56

    Jak kiedys jeszcze uzywalem Dreamweavera to on mial opcje czyszczenia plikow html zapisanych przez Worda

  3. #3 Riddle
    czerwiec 26, 2006 godzina 20:25

    Dobra wiadomość, dzięki Marcin. :)

  4. #4 nbw
    czerwiec 26, 2006 godzina 22:22

    Dreamweaver fantastycznie czyści kod MS Word.

  5. #5 Ktos
    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ć :-)

  6. #6 shrew
    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 ;)

  7. #7 adrian
    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ł.

Wątek RSS dla komentarzy tego wpisu · Adres trackback

Zostaw komentarz

Dozwolone są niektóre znaczniki XHTML, jak: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Na tym blogu stosowana jest wtyczka antyspamowa Spam Karma. Jeżeli Twój komentarz nie pojawia się, lub po jego dodaniu otrzymujesz pustą stronę - poczekaj, komentarz został dodany, ale albo oczekuje w kolejce, albo został mylnie zakwalifikowany jako spam - spokojnie, gdy zajrzę do panelu administracyjnego to uratuję go.