Sova v síti - 1/34 - vydáno 10.12.2001 Dobrý den, končí pondělí a je zde vaše Sova v síti :-) OBSAH -- Jak přejít na XHTML -- Zajímavé odkazy jinde na webu -- Čtenáři nám píší -- Novinky u Petra Kocny Omlouváme se čtenářům, že do dnešního čísla nezařadíme plánovaný článek "Vnitřní odkazy, neboli záložky". Nahromadilo se nám opět hodně dotazů a vydání by se příliš nafouklo. Článek uveřejníme v příštím čísle. JAK PŘEJÍT NA XHTML Marek Prokop Nedávno jsem článkem "Co je XHTML" [1] reagoval na vaše četné dotazy, co je XHTML a jaký má význam. Dnes bych chtěl poradit těm, kteří se rozhodnou na XHTML přejít. Na stránkách Sovy v síti jsme přechod na XHTML začali před více než týdnem, a protože nám to jde pomalu, ještě jsme neskončili. Nějaké zkušenosti, o které se nyní s vámi mohu podělit jsme však již přeci jen získali. Abych co nejvíce pomohl s praktickým převodem stránek, rozdělil jsme článek do dvou částí. V první naleznete spíše teoretický a podrobnější výklad rozdílů mezi HTML a XHTML, druhá pak je stručný "checklist", který si můžete vytisknout a při převodu stránek jeho jednotlivé body postupně odškrtávat. V příštím čísle se k tématu ještě vrátím a pro ty z vás, kteří si dělají, podobně jako Sova, zálusk na striktní typ dokumentu (místo obvyklého "transitional") ještě přidám rady, jak na to. + Rozdíly HTML a XHTML Záhlaví a struktura dokumentu Na první rozdíly narazíte již v záhlaví dokumentu. HTML zde mnoho povinných prvků nemělo, kdežto XHTML má. 1. Před vlastním dokumentem předchází deklarace XML. U dokumentů kódovaných v UTF-8 nebo UTF-16 není sice povinná, ale používat by se raději měla. Pro češtinu v kódování Windows-1250 vypadá takto: 2. Před kořenovým prvkem musí ještě předcházet deklarace typu dokumentu. Na výběr jsou 3 typy odpovídající klasickým třem typům HTML 4 (viz [2]) -- striktní, přechodný a framset: 3. Kořenem vlastního dokumentu je vždy prvek . Ten musí ve svém atributu "xmlnames" určovat tzv. jmenný prostor (namespace) a jazyk dokumentu. Pro češtinu je to takto: 4. Uvnitř prvku *musí* být vnořeny prvky a , přičemž musí obsahovat prvek . Pro starší prohlížeče je nadále vhodné deklarovat kódování i pomocí metatagu. Nejmenší možný (a smysluplný) dokument v XHTML tedy vypadá nějak takto: <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <head> <meta http-equiv="Content-Type" content="text/html; charset= windows-1250" /> <title>Název dokumentu

Text dokumentu.

Rozdíly ve struktuře a syntaxi značek Ve struktuře a syntaxi HTML značek všeobecně jsou především tyto rozdíly: 1. Dokument musí být ve smyslu pravidel XML správně utvořený (well-formed). To znamená, že prvky musí být správně vnořovány a nesmí se překrývat. Příkladem správného vnoření budiž:

Toto je věta se zdůrazněním.

Nesprávné vnoření (překrývání) vypadá takto:

Toto je věta se zdůrazněním.

2. Názvy prvků (tj. značky, tagy) a názvy atributů musí být malými písmeny. Správně je tedy

, kdežto

je špatně. 3. Neprázdné prvky musí mít koncovou značku. Nelze tedy napsat tři odstavce takto:

První odstavec

Druhý odstavec

Třetí odstavec ale musí být napsány takto:

První odstavec

Druhý odstavec

Třetí odstavec

4. Z definice prázdné prvky (např.
,
) musí mít také buď koncovou značku, nebo musí končit "/>". Vzhledem ke kompatibilitě se staršími prohlížeči se doporučuje druhá varianta, tedy např.
,
, atd. 5. Hodnoty atributů musí být v uvozovkách. To platí i pro číselné a jednoslovné hodnoty. Zápis je tedy v XHTML špatně a správně je
. 6. Minimalizace atributů je nepřípustná. To znamená, že atribut vždy musí mít explicitní hodnotu. Typicky se jedná např. o atributy "checked" (prvek input), "selected" (prvek option). Tyto atributy tedy musí být rozepsány takto:
7. Klientské skripty obsahující znaky < a &musí být vkládány do sekce CDATA takto: Protože s tímto zápisem mohou mít starší prohlížeče problémy, doporučuje se raději používat skripty z externích souborů. 8. V žádném případě neukrývejte vkládané skripty či definice stylů do komentářů, jak se dělávalo v HTML. V XHTML může být obsah všech komentářů před zpracování odstraněn! 9. Je-li v hodnotách atributů použit znak ampersand (&) -- často bývá např. v URL -- je třeba ho zapsat pomocí entity &, tedy např. takto: + Checklist Při převodu každé své stránky postupujte podle následujících bodů a každý splněný si raději odškrtněte. Na závěr nezapomeňte provést validaci, např. na [3]. 1. Před vlastní dokument vložit deklaraci XML 2. Za deklarací XML zaměnit, resp. vložit deklaraci typu dokumentu. 3. Prvku přidat atributy xmlns, xml:lang a lang. 4. Zkontrolovat, zda prvním prvkem uvnitř je . Pokud ne, vložit. 5. Zkontrolovat, zda je v metatag označující kódování. Pokud ne, vložit. 6. Zkontrolovat, zda je v prvek . Pokud ne, vložit. 7. Zkontrolovat, resp. doplnit koncové značky. Zejména se týká <p>, <li>, <dd>, <dt>, <option>, <td>, <th>, <tr>. 8. Doplnit uzavírací " /" do prázdných prvků <base>, <br>, <hr>, <img>, <input>, všech tagů meta a dalších. 9. Převést názvy všech značek na malá písmena. 10. Převést názvy všech atributů na malá písmena. 11. Hodnoty všech atributů uzavřít do uvozovek. 12. Rozvinout zápis všech minimalizovaných atributů (checked="checked"). 13. Ošetřit klientské skripty (buď použít CDATA, nebo externí soubor), odstranit HTML komentáře okolo vložených klientských skriptů. 14. Odstranit HTML komentáře okolo vložené definice stylů (<style>), nebo převést tuto definici do externího souboru. 15. Všechny znaky & v hodnotách atributů nahradit &. 16. Ověřit správnost stránky validátorem. + Související odkazy 1. Co je XHTML http://www.sovavsiti.cz/c01242.html 2. Používáte správný typ HTML dokumentu http://www.sovavsiti.cz/c01043.html 3. Validátor W3C http://validator.w3.org/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Starší čísla naleznete na http://www.sovavsiti.cz/archiv.html Více odkazů pro webmastery na http://www.sovavsiti.cz/odkazy.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ZAJÍMAVÉ ODKAZY JINDE NA WEBU Miroslav Kučera píše o použití CSS pro zalamování stránek při tisku v dvoudílném článku na Intervalu.cz. http://www.interval.cz/r-article.asp?id=835 http://www.interval.cz/r-article.asp?id=836 Inspirativní článek o sémantickém webu uveřejnil dnes na Lupě Martin Kopta. http://www.lupa.cz/clanek.phtml?show=1971 ČTENÁŘI NÁM PÍŠÍ Co nevidět tu budou Vánoce a naši čtenáři dostávají vánoční nápady. Jeden z nich pro vás všechny připravuje krásný vánoční dárek, další zase navrhuje, abychom koncem roku rozeslali obsah celého ročníku. Je to dobrý nápad a určitě to uděláme -- alespoň nebudu muset psát pro novoroční sovu nový článek ;-) Čtenáře Ondřeje Jurečeka zaujal PPWizard, o kterém jsme psali v http://www.sovavsiti.cz/c01192.html a přimlouvá se za pokračování s návody a příklady na konkrétní použití. Je to dobrý námět na menší seriál, kterých bychom mohli zahájit začátkem nového roku. Čím dál častěji se na nás čtenáři také obracejí s prosbou o revizi a kritiku svých stránek. Prosím, nedělejte to a nezlobte se na nás, pokud na tyto prosby nereagujeme. Analýzou stránek jednoho tazatele bychom ostatním čtenářům nepomohli a navíc je to jedna z činností, za kterou si necháváme od zákazníků platit nekřesťanské peníze, takže to, bohužel, nemůžeme dělat zadarmo. A teď ještě k vašim dotazům. Dotaz: Na svých stránkách na freewebhostingovém serveru mám script, který posílá výsledky z NHL na email a sms zaregistrovaných uživatelů. Potřebuji, aby se mi script vykonal každý v určitou dobu (konkrétně 7 hodin). K tomu využívám službu web2mail, která posílá stránky na email, čím se skript vykoná. Ale i přes nastavení, v kolik hodin mají email odeslat je služba nespolehlivá a občas email neodešle vůbec. Neznáte jiný způsob jak script každý den automaticky spouštět. Odpověď: Způsobů je mnoho, záleží na vašich možnostech. Nejjednodušší asi je, budete-li si skript spouštět sám. Existuje několik utilit, které umí načíst soubor z daného URL a jde je spustit z příkazové řádky. Pro Windows např. Url2File http://www.chami.com/free/url2file_wincon.html Ty pak můžete načasovat např. plánovačem úloh ve Windows (nebo AT ve Windows NT, resp. Cron pod Unixem/Linuxem). Pokud nemáte počítač ve vhodnou dobu připojený k internetu, nezbude vám, než se domluvit s provozovatelem vašeho hostingu, případně zvolit hosting, který časované spouštění skriptů umožňuje. Pokud není nezbytné přesně dodržet hodinu, lze ještě spuštění skriptu vázat na otevření libovolné jiné, veřejně přístupné stránky. Vždy si zjistíte, zda již minula určitá hodina a zda ještě skript nebyl spuštěn. Pokud jsou obě podmínky splněny, spustíte ho. Podmínkou však je dostatečná návštěvnost. Dotaz: Je mozne nejak nastavit u souboru TXT, aby se zarovnaval podle velikosti obrazovky nebo aby alespon mel pevnou delku radku a ctenar nemusel pouzivat horizontalni posuvnik. U Vasi Sovy v siti v archivu je to v poradku, ale me se to vubec nedari. To tam rucne vkladate konce radku? Odpověď: Ano, opravdu tam vkládáme "tvrdé" konce řádků. Ovšem nikoli ručně -- dělá to za nás editor TextPad. Podobně by šel jistě použít i jiný editor, šlo by napsat makro pro Word, nebo zkusit nějaký preprocesor (např. PPWizard). Dotaz: Chtěl bych se zeptat, jak si Vámi popisovaný vyhledávač Atomz poradí s weby stavenými pomocí PHP příkazu include. Nemáte s tím zkušenosti? Odpověď: Vzhledem k tomu, že vložení proběhne na straně serveru, žádný vyhledavač, ani Atomz, se o něm nedozví. Poradí si s tím tedy dobře. Jiná věc je, pokud používáte parametry v URL (tzv. querystring). Na to jsou některé vyhledavače opravdu citliví, ale pokud vím, Atomzu ani to nevadí (osobně jsem nezkoušel). Dotaz: Pred nekolika tydny jste uvedli clanky o sluzbe Atomz. Chtel bych se zeptat zda je nejaka moznost, jak na strance oznacit oblast kterou nema indexovat, ale jen z ni sebrat odkazy pro dalsi stranky. Konkretne mi jde o meny. Odpověď: Ano, možnosti jsou hned dvě. Jednak můžete použít klasický metatag <meta name="ROBOTS" content="NOINDEX,FOLLOW"> Kromě toho můžete určit stránky, které si nepřejete indexovat přímo v nastavení svého účtu u Atomz. Je to volba Options --> URL Masks. Dotaz: Chtel jsem se zeptat na CSS validator. V 'styl.css' mam mimo jine nasledujici: scrollbar-face-color: barva; scrollbar-shadow-color: barva; scrollbar-highlight-color: barva; scrollbar-3dlight-color: barva; scrollbar-darkshadow-color: barva; scrollbar-track-color: barva; scrollbar-arrow-color: barva; presto mi css validator hlasi divne chyby : Property scrollbar-face-color doesn't exist : #800080 Line: 16 Context : body Property scrollbar-shadow-color doesn't exist : black atd. a dale .... Line : 22 Level : 1 You have no color with your background-color : body Line : 31 Level : 1 You have no background-color with your color : td Line : 41 Level : 1 You have no background-color with your color : P Line : 46 Level : 1 You have no background-color with your color : hr Copak musim pro vse nastavovat uplne vse ??? Odpověď: Kvůli vlastnostem scrollbar-xyz se validátor zlobí oprávněně. Žádné takové vlastnosti totiž v normě CSS1 ani CSS2 neexistují. Jedná se o proprietární rozšíření Microsoftu. Upřímně řečeno, nedá mi to, abych se nezeptal, k čemu je potřebujete? Uživatele tím jen zmatete. Vzhledová stálost a standardizace je pro každé GUI (grafické uživatelské rozhraní) nesmírně důležitá. Microsoft na tomto poli vykonal mnoho záslužné práce a je tedy s podivem, že nabídkou těchto možností svou vlastní práci kazí. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Doporučte sovu v síti vašim přátelům. Přepošlete jim toto číslo, nebo použijte formulář na http://www.sovavsiti.cz/recommend.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOVINKY U PETRA KOCNY K 8.12.2001 ... v katalgu katalogů http://www.lf1.cuni.cz/~kocna/kam-www.htm a vyhledávačů http://www.lf1.cuni.cz/~kocna/roboti.htm Dva nové odkazy zařazeny do seznamu, který má již 178 položek. iNaDlani -- http://www.inadlani.cz, další nový český portál, který je připravován, ostrá verze má býti spuštena 1.1.2002, Navigace je poněkud nepřehledná, odkazy lze nabízet bez uvedení popisu a titulku, pouze URL adresou. Pro prohledávání je použita služba Atomz.com. Indexy - http://www.indexy.cz, český výber nejlepších stránek, převážně portály, zpravodajství, rozdělené do asi 30 kategorií, odkazy možno nabídnout formulářem - http://www.indexy.cz/novy.html, vyrozumnění správců slíbeno do 7mi dnů, pro prohledávání - fultextové je použit index Google. TopPrague2000.com je již opět v provozu. A to je pro dnešek vše. Těšíme se na shledanou příští pondělí, kdy v poslední předvánoční Sově naleznete: -- Buďte striktní, aneb jak dosáhnout validace stránky podle typu dokumentu Strict. -- MyPHPAdmin -- jednoduchý nástroj pro správu databáze přes webové rozhraní. -- Vnitřní odkazy, neboli záložky -- co jsou odkazy dovnitř stránky a jak je správně používat. -- Odpovědi na vaše dotazy, zajímavé odkazy, novinky v katalogu katalogů a vyhledávačů Petra Kocny, novinky na Slunečnici atd. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nechcete, nebo naopak chcete dostávat Sovu v síti? Odběr lze odhlásit odesláním zprávy na unsubscribe@sovavsiti.cz. Přihlásit se lze odesláním zprávy na subscribe@sovavsiti.cz, nebo formulářem na adrese http://www.sovavsiti.cz/. Chcete nám cokoli sdělit? Uvítáme vaše náměty, připomínky, kritiku, atd. na adrese mailto:redakce@sovavsiti.cz. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Není-li v konkrétním případě uvedeno jinak, je autorem všech publikovaných článků Marek Prokop. Tento ezin, nebo jeho libovolnou část můžete volně šířit dále, pokud současně uvedete zdroj následujícím způsobem: _________________________________________________________________ Sova v síti -- (c) 2001 Marek Prokop -- http://www.sovavsiti.cz/