La 13-an de marto, post kvar monatoj da disvolviĝo, versio 2.7.0 de la alt-efikeca biblioteko estis publikigita. lexbor, desegnita por prilabori HTML 5 kaj CSS formatojn.
Ĉefaj trajtoj de la projekto:
- Plena subteno por WHATWG, W3C kaj Unikodo-specifoj: HTML5, CSS-Sintakso 3, Encoding, URL, Unikoda Normo Aneksaĵo #15, Unikoda Teknika Normo n-ro 46, Punycode, Unikoda Normo Aneksaĵo #15, Unikoda Teknika Normo n-ro 46;
- manipulado de DOM-elementoj kaj atributoj: aldono, ŝanĝo, forigo, ktp.;
- subteno por analizado de HTML-fragmentoj;
- pasante ĉiujn DOM-arbajn konstrutestojn;
- testita sur pli ol 200 milionoj da HTML-paĝoj uzante ASAN;
- subteno por ĉifrado-detekto per bajta fluo;
- analizante CSS-stilojn en etikedaj atributoj kaj en la etikedo ;
- Trovi HTML-elementojn uzante CSS-selektilojn;
- subteno por 40 kodigoj dum kodado kaj malkodado;
- subteno por nebufrita kaj bufrita kodado kaj malkodado;
- skribita en C (normo C99) sen iuj ajn triapartaj dependecoj kaj distribuita sub la permesilo Apache 2.0;
- la biblioteko estas dividita en modulojn (Kerno, CSS, DOM, Kodado, Motoro, HTML, NS, Punycode, Selektiloj, Etikedo, Unikodo, URL, Utiloj), kiuj povas esti kompilitaj kaj uzataj kiel apartaj bibliotekoj (kun la CMake-opcio LEXBOR_BUILD_SEPARATELY=ON);
- triapartaj ligadoj kaj envolvaĵoj por lingvoj kristalo, D, eliksiro, Julia, PHP, python и Rubeno.
Ĉefaj ŝanĝoj:
- Aldonita subteno por kunfandado (kombinado de fontdosieroj en unuopan dosieron). Ĉi tio simpligas la integradon de la biblioteko en projektojn — vi nur bezonas inkluzivi unu dosieron anstataŭ uzi la tutan konstrusistemon. Por detaloj, vidu dokumentado.
- Ampleksa reverko de la kodo respondeca pri CSS-analizo estis efektivigita por prepari la efektivigon de la aranĝo.
- Aldonita validigo de eniga fluo al la HTML-analizilo (ĉi tio necesas nur por raporti erarojn pri analizado laŭ la specifo). Malŝaltita defaŭlte, vidu detalojn. html/#ĵeton-opcioj.
- Preparante kodon por la eldono de la aranĝmotoro.
- Ĝeneralaj plibonigoj kaj cimo-korektoj.
fonto: linux.org.ru
