Zobrazují se příspěvky se štítkemsivonen. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemsivonen. Zobrazit všechny příspěvky

pondělí 18. srpna 2008

HTML5 parser v JavaScriptu

Henri Sivonen, autor experimentálního HTML5 validátoru (resp. conformance checkeru), přeložil pomocí Google Web Toolkitu svůj parser psaný v Javě do JavaScriptu. Na adrese livedom.validator.nu tak můžete snadno experimentovat s HTML5 parserem, aniž byste museli cokoliv instalovat.

Zajímavé není parsování validního kódu (zde výsledek asi nikoho nepřekvapí), ale právě parsování těch fragmentů HTML, které bylo v předcházejících specifikacích nedefinované. Nástroj není ani tak zajímavý pro webdesignery (ti si píší svůj kód stále stejně a zda prohlížeč akceptuje i jiný kód, jim může být v zásadě jedno), ale hlavně pro výrobce prohlížečů, autory parserů a knihoven pracujících s HTML.

Pokud se výrobci prohlížečů na HTML5 parseru shodnou (a je to skutečně možné, byť ne nevyhnutelné), bude se jednat o jednotný způsob parsování HTML.

Specifikace HTML5 parseru se stále dolaďuje a Henri svůj parser podle specifikace průběžně upravuje. Nejedná se o jediný existující HTML5 parser, existuje další projekt v Pythonu a experimentuje se i s Ruby nebo C#.

pondělí 30. června 2008

Značka time a mikroformáty

Nedávno se znovu rozhořela diskuse na téma vkládání data pomocí mikroformátů (viz BBC nasadilo a opět odstranilo mikroformáty). Stávající syntaxe využívající značku <abbr> a atribut title totiž snižuje v současných čtečkách použitelnost stránek, a proto se hledá alternativní řešení.

Do diskuse nad možným řešením napsal Henri Sivonen, podílející se na tvorbě HTML5, připomínku, proč není jako náhrada znažována značka <time> z HTML5.

Zájemci si mohou přečíst celé vlákno (stručně: značka <time> zatím nebude zvažována jako náhrada <abbr>, protože není validní v HTML4 a XHTML1 a mikroformátové komunitě se HTML5 zdá dosud příliš nezralé). A já rychle využiju situace k představení této značky.

<time>
Značka <time> je jednou z nových sémantických značek HTML5. Používá se jednoduše:
<p>Nahý exhibicionista s transparentem "HTML5 rules" proběhne Václavským náměstím <time datetime="2008-07-01 10:00 +2">zítra v 10 hodin</time>.</p>
Slouží k sémantickému vyznačení času, data případně obojího dohromady (značku <date> v HTML5 tedy nehledejte, vystačíte si s <time>).

Její jediný atribut datetime obsahuje strojově čitelnou variantu času (data) k lidsky čitelnému (human readable) údaji v obsahu značky.

Skrze DOM atributy date, time a timezone jsou přístupné jeho jednotlivé složky v podobě DOMTimeStamp (ušetří se tak krok s parsováním textové hodnoty).

Je vidět, že pro zápis časových údajů je značka <time> jako stvořená. Vlastně si nedovedu představit, že by mikroformátová komunita mohla přijít s něčím lepším (a že jsem moc zvědav, s čím nakonec příjdou).

Součástí HTML5 specifikace je <time> již hodně dlouho (odhadem několik let). Chce se mi spekulovat, že tam byla vložena, právě proto, aby časem vyřešila problém mikroformátů, ale okolnosti jejího vzniku budou hluboko v historii WHATWG mailinglistu a zatím jsem se k nim nedostal, takže kdoví.

středa 11. července 2007

HTML5 i v Javě

Henri Sivonen před několika minutami oznámil zahájení práce na HTML5 parseru v Javě.
There's now a limping development version of an HTML5 parser in Java that interested parties may try out:
svn co http://svn.versiondude.net/whattf/htmlparser/trunk/ htmlparser

Warning: This isn't at all ready for any kind of production use. The purpose of this email is just to let interested parties know the status of the project.
Goals:
Provide an HTML5 parser that works as a drop-in replacement for an XML parser in non-browser Java apps that expect XML APIs. Make the parser strict enough for conformance checking (including encoding errors, etc.).
License:
MIT/expat. Patches welcome under the same license.

Acknowledgments:
Thanks to the Mozilla Foundation for funding this project. Thanks to the html5lib team and Philip Taylor (of the lazyilluminati fame) for test cases and bug reports.
Po projektu html5lib, který je v Pythonu a v pokročilém stádiu vývoje, se jedná o druhý připravovaný HTML5 parser. Oproti klasickým HTML parserům, které jsou k dispozici prakticky pro každý programovací jazyk, HTML5 parsery implementují relativně obsáhlou část specifikace HTML5 (bod 8) která pojednává i o neobvyklých stavech včetně toho jak parsovat tag soup.

pátek 1. června 2007

HTML5 conformance checker jako diplomová práce

Henri Sivonen zveřejnil svou diplomovou práci na téma An HTML5 Conformance Checker.

Jejím tématem je vývoj nástroje umožňující kontrolu správné syntaxe HTML5 dokumentů. Henri takový nástroj vyvinul v Javě za pomoci XML Schémat a ve webové verzi může sloužit jako validátor. V současnosti je jediným takovým nástrojem pro HTML5. Zdrojový kód conformance checkeru je volně ke stažení.

Pokud vás zajímá, jaký je rozdíl mezi validátorem a conformance checkerem (nápady na překlad do češtiny?), pomůže jedna ukázka mluvící za všechno:
<ins datetime="blabla"> is valid but not conforming
Henriho práce zaujme nejen příznivce XML Schémat, ale i zájemce o HTML. Pokud jste nikdy neslyšeli o takovém HTML+, doporučuji přečíst druhou kapitolu History of HTML Leading to HTML5.

Henriho, který studuje na Helsinské univerzitě, můžete znát z projektu Mozilla a v současné době i z WHATWG.

Výsledky své práce nedávno prezentoval na konferenci XTech 2007 (PDF).