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.

8 komentářů:

  1. Ano, to je totiž jeden z vůbec nejzásadnějších (a podle mě úplně zbytečných) problémů HTML 5 - že to potřebuje úplně nové parsery do všech možnejch programovacích jazyků. Protože jakkoliv naznačovanej přístup (vzít jeden javovskej zdroják a ten nějak využít i pro parsery pro C++/C# - jestli to teda bude fungovat) zní sice zajímavě, na druhou stranu ale z hlediska výkonu ani kompaktnosti nebude řešení, kdy si pouhej parser s sebou potáhne půlku Gecka nebo případně bude záviset na Ruby nebo Pythonu, zrovna optimální a stejně bude muset vzniknout samostatnej projekt na čistě C verzi parseru (obdoba libxml, možná i jako její součást). Nehledě na to, že programovacích jazyků, kde to bude potřeba, je podstatně víc než jenom Java, Javascript, C++ a C#.

    OdpovědětVymazat
  2. Ondro, HTML5 parser není podmínkou pro to, aby prohlížeč porozuměl HTML5.

    Když pro své prezentace vytvářím HTML5 stránky, tak je zobrazuji v obyčejných prohlížečích, které mají obyčejný HTML parser a fungují v pořádku. Což je proto, že je zpětně kompatibilní.

    HTML5 parser má oproti HTML parseru jednu přidanou hodnotu - řeší navíc, jak se vypořádat s oním "HTML z ulice". Vlastně ještě druhou hodnotu (souvisí s tou první). Jedná se o historicky první specifikaci HTML parseru (tuším, že všechny ty předchozí byly řešeny přes SGML, XML nebo prostě nijak). HTML5 parser znamená sjednocení parserů, nikoliv podmínku pro implementaci HTML5, ta na něm v zásadě v ničem nezávisí.

    OdpovědětVymazat
  3. To celé bylo myšleno jinak. Já nehovořil o parserech pro prohlížeče. Prohlížeče ať si to dělaj, jak chtěj, jestli si vytvořej vlastní parsery (to udělaj nejspíš ty nonfree jako IE nebo Opera), nebo jestli použijou nějaký společný volně šiřitelný, je fuk, prostě něco budou muset vymyslet. Mně jde teď o to, jak zpracovávat HTML 5 dokumenty z programů, který si člověk píše sám. Prostě stáhnout z webu dokument, naparsovat ho, vytáhnout z něj potřebné informace, naložit s nimi, jak uznám za vhodné.
    Ano, všechny předchozí verze byly buďto SGML, nebo XML, a to bylo DOBŘE. Vymyslet zbrusu nový formát, který není kompatibilní ani s jedním, pro který tedy nelze použít ani existující SGML parsery, ani existující XML parsery, je prostě dle mého názoru hroznou chybou a krokem stranou.

    OdpovědětVymazat
  4. Ale i tyhle parsery, o kterych mluvis, budou porad fungovat. Nebo snad vis o nejakem problemu, kdy nektera z tech knihoven novinky HTML5 nerozchodi?

    OdpovědětVymazat
  5. Jistěže vím (nebo si to aspoň myslím z toho, co jsem četl). Je zřejmé, že dokument odpovídající HTML 5 nepůjde naparsovat XML parserem (XHTML 5 půjde, o tom se teď nebavím). Leč tím, že HTML 5 není aplikací jazyka SGML a má například velice zvláštní DOCTYPE, kterej je, pokud vím, se specifikací SGML v rozporu, je logické, že každej slušnej SGML parser zahlásí chybu už na prvním řádku, až si ten DOCTYPE přečte. A mám pocit, že jsem kdesi zahlédl, že těch odklonů od specifikace SGML, je víc.

    OdpovědětVymazat
  6. A kolik těch dnešních HTML parserů je postaveno na SGML? Já bych řekl, že jich opravdu moc nebude, ale nerad bych se pletl.

    OdpovědětVymazat
  7. No, stáhnout z webu dokument a použít na něj SGML nebo XML parser dá skoro vždycky dost divné výsledky.

    Zkuste to s touhle stránkou: 1. Díky obsahu skriptu XML parser selže. 2. SGML parser bude všechny "/>" interpretovat jinak, než jsme zvyklí.

    OdpovědětVymazat
  8. Čili:

    SGML parsery jsou pro reálné použití k parsování webu celkem k ničemu. Má to historické důvody: prohlížeče používají jiný algoritmus a autoři webů ladí pro prohlížeče, ne pro SGML parser.

    XML parser je taky použitelný v málo případech, protože i tzv. XHTML je v pojetí většiny autorů webů málokdy validní XML. Opět: autoři (zne|vy)užívají toho, že když to pošlete jako text/html, prohlížeč vám skousne skoro všechno.

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.