Převod nevalidního HTML na validní XHTML
Už podruhé tento týden, to máme teprve úterý, jsem dostal do ruky
nevalidní HTML a měl jsem ho převést do XHTML. Problém nastal v okamžiku
kdy jsem zjistil, že HTML obsahuje takové chuťovky jakými jsou HTML tagy
<FONT>, <CENTER> a podobně.
Naštěstí je dostatečně známý program TiDy, ale bohužel obsahuje i docela
velkou škálu nastavení. Uvádím zde ty, které jsem použil já a s docela
dobrým výsledkem. Jediné s čím si TiDy neporadilo bylo <a
name="2013344"></a>. Ale s tím už se dá žít a samozřejmě
odstranit jinak.
TiDy z konzole
TiDy si můžete celkem snadno nainstalovat příkazem urpmi
tidy. Pokud patříte k nešťastníkům s MS Windows navštivte
stránku projektu TiDy, je tam něco
i pro vás.
TiDy má samozřejmě i spoustu grafických nadstaveb. Je integrována například do editoru PSPad, do výborného rozšíření HTML Validator pro Firefox a podobně.
Spuštění TiDy z konzole:
tidy -f chyby.txt -config config.txt zdroj.html > vysledek.html
V souboru chyby.txt najdete chyby, které TiDy nedokázalo ze
souboru odstranit.
Nastavení TiDy je uloženo v souboru config.txt (více k nastavení TiDy):
char-encoding: utf8 indent: true show-body-only: false output-xhtml: true add-xml-decl: true doctype: strict clean: true drop-proprietary-attributes true enclose-block-text: true enclose-text: true bare: true logical-emphasis: true alt-text: obrazek fix-uri: true wrap: 200
To samé v PHP
Podobně můžete s TiDy pracovat v PHP, potřebujete samozřejmě nainstalované rozšíření PHP TiDy.
// promenna $html obsahuje vstupni, nevalidni, HTML
$config = array(
'indent' => true,
'show-body-only' => false,
'output-xhtml' => true,
'add-xml-decl' => true,
'doctype' => "strict",
'clean' => true,
'enclose-block-text' => true,
'enclose-text' => true,
'repeated-attributes' => true,
'bare' => true,
'logical-emphasis' => true,
'alt-text' => "obrazek",
'fix-uri' => true,
'wrap' => 200,
'drop-proprietary-attributes' => true
);
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();
echo $tidy;
Pokud s TiDy „nečistíte“ celou HTML stránku, ale jen její část,
tak si nastavte show-body-only na true. Můžete si
tak třeba vyčistit své články, uložené v databázi, nebo třeba
komentáře.
- Související:
- TiDy – stránka projektu
- HTML TiDy
Configuration Options
- HTML TiDy – referenční příručka – český překlad nastavení TiDy
- TiDy Functions – funkce TiDy v PHP
Jirka Ch | 7. March 2006, 23:05 | „Články“ | Trvalý odkaz | Komentáře (8) | Štítky: html, nástroje, tidy
Komentáře:
díky za příklad! super věc, jen máte v tomto řádku chybku ‚wrap‘ ⇒ 200 chybí tam čárka…
Viz též Převod HTML na XHTML.
[1] … a kus níže byla zase jedna navíc. Děkuji za upozornění, opraveno.
[2] Děkuji za související odkaz. Článek znám, jen jsem si na něj nevzpoměl při psaní spotu.
XHTML tyto elementy obsahuje také. Mimochodem zvládá to Tidy i opačný převod z XHTML do HTML?
[4] Požadováno bylo XHTML Strict a tam nemá tohle:
<FONT SIZE=-2>Jméno</FONT>co dělat. Nemluvím o neukončovaných párových značkách a podobně.Co se týká převodu do HTML tak stačí nastavit
output-xhtmlnafalsea pomocídoctypesi specifikovat požadovanou verzi HTML.Tomu zpětnému převodu, ale moc nerozumím. Stejně dojde jen k vyměnění deklarace HTML v hlavičce dokumentu.
[5] Jo, už mi taky pomalu dochází, že stačí " />" konvertovat na „>“, vyhodit xml deklaraci a atributy xmlns a případně xml:lang a vyměnit DOCTYPE. To by vlastně měl zvládnout jendoduše i PSPad. Ok, i tak díky :-).
No, ono to nemá co dělat ani v HTML strict. Ale chápu, já jen moc nemám rád, když se míchá použitý jazyk (HTML x XHTML) a použitá verze jazyka (trans x strict). Tady to tím zavánělo.
Riskujem, že môj nesúvisiaci komentár bude zmazaný. Ale možno mi odpustíte a odpoviete mi. Ako linuxovému začiatočníkovi, poradili by ste mi BlueFish alebo QuantaPlus? Ďakujem.
[6] Hlavně že si rozumíme. Klíčové bylo to, že to HTML co jsem převáděl do XHTML byl bastl nad bastl :-)
PSPad to zmákne už proto, že umí s TiDy spolupracovat.
[7] Komenáře mažu jen v úterý, dnes je středa ;-)
Záleží co od editoru čekáš, co v něm chceš psát a na co jsi zvyklý. Ani jeden ze zmíněných mi nevydržel na disku déle jak den.
Já používám, vlastně na všechno, jEdit. Obsahuje velkou škálu pluginů, které pokývají snad všechny požadavky kladené na dobrý editor.