13. marca, po štyroch mesiacoch vývoja, bola vydaná verzia 2.7.0 tejto vysokovýkonnej knižnice. lexbor, určený na spracovanie formátov HTML 5 a CSS.
Hlavné vlastnosti projektu:
- Plná podpora špecifikácií WHATWG, W3C a Unicode: HTML5, Syntax CSS 3, kódovanie, URL, Príloha č. 15 k štandardu Unicode, Technická norma Unicode č. 46, Punycode, Príloha č. 15 k štandardu Unicode, Technická norma Unicode č. 46;
- manipulácia s prvkami a atribútmi DOM: pridávanie, zmena, mazanie atď.;
- podpora parsovania HTML fragmentov;
- úspešné absolvovanie všetkých testov konštrukcie DOM stromu;
- testované na viac ako 200 miliónoch HTML stránok pomocou ASAN;
- podpora detekcie kódovania pomocou bajtového toku;
- parsovanie CSS štýlov v atribútoch tagu a v tagu ;
- Hľadanie HTML prvkov pomocou CSS selektorov;
- podpora 40 kódovaní pri kódovaní a dekódovaní;
- podpora kódovania a dekódovania bez vyrovnávacej pamäte a s vyrovnávacou pamäťou;
- napísané v jazyku C (štandard C99) bez akýchkoľvek závislostí od tretích strán a distribuované pod licenciou Apache 2.0;
- knižnica je rozdelená do modulov (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selektory, Tag, Unicode, URL, Utils), ktoré je možné kompilovať a používať ako samostatné knižnice (s možnosťou CMake LEXBOR_BUILD_SEPARATELY=ON);
- väzby a obaly tretích strán pre jazyky krištáľ, D, elixír, Julie, PHP, Pytón и rubín.
Hlavné zmeny:
- Pridaná podpora pre amalgamáciu (spájanie zdrojových súborov do jedného súboru). Toto zjednodušuje integráciu knižnice do projektov – stačí zahrnúť iba jeden súbor namiesto použitia celého systému zostavovania. Podrobnosti nájdete v časti dokumentáciu.
- V rámci prípravy na implementáciu rozloženia sa vykonalo rozsiahle prepracovanie kódu zodpovedného za parsovanie CSS.
- Pridaná validácia vstupného streamu do analyzátora HTML (je to potrebné výlučne na hlásenie chýb pri analýze podľa špecifikácie). Predvolene vypnuté, pozri podrobnosti. html/#tokenizer-možnosti.
- Príprava kódu na vydanie layout enginu.
- Všeobecné vylepšenia a opravy chýb.
Zdroj: linux.org.ru
