13. března, po čtyřech měsících vývoje, byla vydána verze 2.7.0 vysoce výkonné knihovny lexbor, určené k zpracování formátů HTML 5 a CSS.
Hlavní vlastnosti projektu:
- úplná podpora specifikací WHATWG, W3C a Unicode: HTML5, CSS Syntax 3, Kódování, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- manipulace s prvky a atributy DOM: přidání, změna, odstranění a další;
- podpora analýzy fragmentů HTML;
- procházení všemi testy vytváření DOM stromů;
- testováno na více než 200 milionech HTML stránek pomocí ASAN;
- podpora určování kódování podle toku bajtů;
- analýza stylů CSS v atributech tagů a v tagu ;
- vyhledávání HTML prvků pomocí CSS selektorů;
- podpora 40 kódování při kódování a dekódování;
- podpora nebufferového a bufferového kódování a dekódování;
- napsáno v jazyce C (standard C99) bez externích závislostí a distribuováno pod licencí Apache 2.0;
- knihovna je rozdělena na moduly (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), které mohou být zkompilovány a použity jako samostatné knihovny (s volbou CMake LEXBOR_BUILD_SEPARATELY=ON);
- externí bindingy a wrappery pro jazyky Crystal, D, Elixiru, Julia, PHP, CouchDB a Ruby.
Hlavní změny:
- Byla přidána podpora amalgamace (sloučení zdrojových souborů do jednoho souboru). To usnadňuje integraci knihovny do projektů – stačí připojit jeden soubor místo použití celého systému sestavení. Podrobnosti viz dokumentaci.
- Byla provedena rozsáhlá revize kódu odpovědného za analýzu CSS, aby se připravila na implementaci rozvržení.
- Byla přidána kontrola příchozího toku v HTML parseru (což je nezbytné výhradně pro generování chyb analýzy podle specifikace). Ve výchozím nastavení je vypnuta, podrobnosti viz. html/#tokenizer-options.
- Příprava kódu na vydání rozvrhovacího enginu.
- Obecná zlepšení a opravy chyb.
Zdroj: linux.org.ru
