13. ožujka, nakon četiri mjeseca razvoja, objavljena je verzija 2.7.0 visokoučinkovite biblioteke lexbor, namijenjene obradi HTML 5 i CSS formata.
Glavne značajke projekta:
- potpuna podrška za WHATWG, W3C i Unicode specifikacije: HTML5, CSS Sintaksa 3, Kodiranje, URL, Unicode Standardni Dodatak #15, Unicode Tehnički Standard #46, Punycode, Unicode Standardni Dodatak #15, Unicode Tehnički Standard #46;
- manipulacija elementima i atributima DOM: dodavanje, izmjena, brisanje i drugo;
- podrška za parsiranje HTML fragmenata;
- prolasci svih testova izgradnje DOM stabala;
- testirano na više od 200 milijuna HTML stranica uz pomoć ASAN-a;
- podrška za prepoznavanje kodiranja na temelju toka bajtova;
- analiza CSS stilova u atributima oznaka i u oznaci ;
- pretraživanje HTML elemenata pomoću CSS selektora;
- podrška za 40 kodiranja pri kodiranju i dekodiranju;
- podrška za nebaferizirano i baferizirano kodiranje i dekodiranje;
- napisano na jeziku C (standard C99) bez vanjskih ovisnosti i distribuirano pod Apache 2.0 licencom;
- biblioteka je podijeljena u module (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils) koji se mogu kompajlirati i koristiti kao odvojene biblioteke (s CMake opcijom LEXBOR_BUILD_SEPARATELY=ON);
- vanjski bindingi i omotači za jezike Crystal, D, Elixir, Julia, PHP, Python i Ruby.
Glavne promjene:
- Dodana podrška za amalgamaciju (spajanje izvornih datoteka u jednu datoteku). To olakšava integraciju biblioteke u projekte – dovoljno je povezati jednu datoteku umjesto korištenja cijelog sustava izrade. Detalje pogledajte u dokumentaciju.
- Provedena je opsežna prepravka koda zaduženog za parsiranje CSS-a, kako bi se pripremilo za implementaciju layout-a.
- Dodana je provjera ulaznog toka u HTML parseru (to je potrebno isključivo za ispisivanje grešaka parsiranja u skladu sa specifikacijom). Zadano isključeno, više informacija potražite na html/#tokenizer-options.
- Priprema koda za izdavanje engine-a za layout.
- Opća poboljšanja i ispravke grešaka.
Izvor: linux.org.ru
