Když si stáhnete noční build Firefoxu a nastavíte v něm html5.enable na true, začne Firefox používat parser HTML5.
Jelikož parser HTML5 je historicky první pokus o standardizaci parsování HTML, pak Firefox je historicky první prohlížeč, který může používat standardizovaný parser HTML.
Myšlenka vedoucí ke standardizaci parsování HTML je prostá: zvýšit interoperabilitu mezi prohlížeči, čili zvýšit pravděpodobnost, že pokud vám stránka funguje v jednom prohlížeči, bude fungovat i v dalších (a pokud možno stejně).
Autorem této implementace je Henri Sivonen, který původně vytvořil parser HTML5 v Javě (ten dnes mj. používá i oficiální validátor HTML od W3C pro validaci HTML5). Kód pro Firefox byl vytvořen automatickou konverzí z Javy do C++.
Neznamená to ovšem, že by Firefox měl v nejbližší době přejít na tento parser. Jedná se zatím pouze o experiment a historicky první ověření, zda můžeme na dnešní web takový parser vůbec pustit, zda bude všechno fungovat a zda se pod ním naše oblíbené stránky zcela nezhroutí.
Parser HTML5 totiž nemá umět parsovat jen HTML5, ale má umět parsovat stávající HTML používané všude na webu, ať už se jedná o HTML3, HTML4 nebo o XHTML1.
Doposud byl standard parseru HTML5 ověřován hlavně automatickými testy u Google, kde byl spouštěn na několik miliónů stránek ležících v cachi Googlu a následně byly analyzovány zalogované výsledky. Nyní poprvé může výsledek parseru HTML5 vidět uživatel ve svém prohlížeči. Tím se mohou objevit problémy ve specifikaci, na které dosud nikdo nenarazil.
Nejedná se proto ani tak o přínos pro prohlížeč Firefox, jako o přínos pro budoucnost HTML, konkrétně pro zvýšení kvality specifikace HTML5.
Související
Zobrazují se příspěvky se štítkemparser. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemparser. Zobrazit všechny příspěvky
čtvrtek 9. července 2009
pátek 5. prosince 2008
Parser HTML5 experimentálně i v Mozille
O několika HTML5 parserech jsem se již zmiňoval (viz příspěvky se štítkem parser). Henri Sivonen vytvořil experimentální build Mozilly používající právě HTML5 parser. Jedná se o zajímavou ukázku. V době, kdy žádný prohlížeče neobsahuje HTML5 kompatibilní parser (na to je ještě brzy) tu máme alespoň experimentální verzi.
Sam Ruby tento zajímavý počin komentuje:
Sam Ruby tento zajímavý počin komentuje:
Henri’s approach is interesting. He starts from a single source, in Java. The Java code can be compiled to Java byte codes, JavaScript source, or C++ presumably making use of Mozilla libraries for things such as memory management. If he can do that, it seems to me to be a rather small leap from there to producing C++ using, say, either Ruby or Python libraries for memory management, as well as a thin binding to the language. C# would also be a reasonable target.
If this could be done, and made available under a liberal license, it could go a long way towards making available consistent and performant implementations of the HTML5 parser algorithm everywhere.
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#.
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#.
(Zdroj: blog.whatwg.org)
pondělí 27. srpna 2007
Twintsam - HTML5 v C#
V pátek přišlo do mailing listu WHATWG oznámení nového projektu Twintsam (The Web Is Not Tag Soup Any More), jehož cílem je HTML5 parser pro .NET. Thomas Broyer píše:
HTML5 parsery se nám množí, po Pythonu, Javě a PHP přichází i .NET.
I spent the last week rewriting Twintsam's tokenizer from scratch, exactly following the current draft's algorithm. Performance could probably be improved a lot, but I'll first concentrate on the tree building stage.
For the record, Twintsam is written in C# for .NET 2.0, and it is available at http://twintsam.googlecode.com
The next steps will be to implement serializers.Odhad termínu dokončení projektu není zatím dostupný.
HTML5 parsery se nám množí, po Pythonu, Javě a PHP přichází i .NET.
středa 8. srpna 2007
Optimalizace HTML5 parserů
Ian Hickson publikoval na Google Code blogu zprávu o své studii zaměřené na rychlostní optimalizaci HTML5 parserů.
Práce u Googlu dává Ianovi prostředky, které neměl, když ještě pracoval pro Operu a Ian toho plně využívá. Kde všude byste si mohli dovolit prohnat svým programem deset miliard HTML dokumentů, že?
Získaná data by měla pomoci rychlostně optimalizovat nejen HTML5 parsery, ale prakticky všechny existující HTML parsery.
Práce u Googlu dává Ianovi prostředky, které neměl, když ještě pracoval pro Operu a Ian toho plně využívá. Kde všude byste si mohli dovolit prohnat svým programem deset miliard HTML dokumentů, že?
Získaná data by měla pomoci rychlostně optimalizovat nejen HTML5 parsery, ale prakticky všechny existující HTML parsery.
čtvrtek 12. července 2007
HTML5 časem i v PHP
HTML5 parser bude i pro PHP. Objevily se dva projekty, které se o implementaci snaží. V tuhle chvíli jsou na úplném začátku a nemá cenu je ještě zkoušet, pomalu rostou na adresách:
http://php-html5lib.dashslot.net/svn/trunk/
http://geoffers.no-ip.com/svn/php-html-5-direct/src/trunk/
Uvidíme, zda se autoři spolu dohodnou a vytvoří jeden projekt, nebo budou pokračovat každý sám.
Zdroj: #whatwg
http://php-html5lib.dashslot.net/svn/trunk/
http://geoffers.no-ip.com/svn/php-html-5-direct/src/trunk/
Uvidíme, zda se autoři spolu dohodnou a vytvoří jeden projekt, nebo budou pokračovat každý sám.
Zdroj: #whatwg
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: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.
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.
Přihlásit se k odběru:
Příspěvky (Atom)
