13. märtsil, pärast nelja kuu arendust, ilmus 2.7.0 kõrgjõudlusega raamatukogu lexbor, mis on mõeldud HTML 5 ja CSS formaatide töötlemiseks.
Projekti põhijooned:
- täielik tugi WHATWG, W3C ja Unicode spetsifikatsioonidele: HTML5, CSS Süntaks 3, Kodeering, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- DOM elementide ja atribuutide manipuleerimine: lisamine, muutmine, eemaldamine jne;
- toetab HTML fragmentide analüüsimist;
- läbib kõik DOM puu ehitamise testid;
- testitud üle 200 miljoni HTML-lehe ASAN abil;
- toetab kodeeringu määramist baitide voolu kaudu;
- CSS stiilide analüüs siltide atribuute ja sildi <style> sisse;
- HTML elementide otsimine CSS valikute abil;
- toetab 40 kodeeringut kodeerimise ja dekodeerimise puhul;
- toetab puhverdamata ja puhverdatud kodeerimist ja dekodeerimist;
- kirjutatud keeles C (C99 standard) ilma kolmandate osapoolte sõltuvusteta ja jagatakse Apache 2.0 litsentsi all;
- raamatukogu on jagatud mooduliteks (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), mida saab kompileerida ja kasutada eraldi raamatukogudena (valikuga CMake LEXBOR_BUILD_SEPARATELY=ON);
- kolmandate osapoolte sidurid ja wrapperid keelte jaoks Crystal, D, Elixir, Julia, PHP, Python ja Ruby.
Peamised muudatused:
- Lisatud tugi amalgeerimisele (allikafailide ühendamine üheks failiks). See lihtsustab raamatukogu integreerimist projektidesse – piisab ühe faili lisamisest, mitte kogu ehitussüsteemi kasutamisest. Lisateavet vt dokumentatsioon.
- Käidi läbi ulatuslik koodide ümberkorraldus, mis vastutab CSS analüüsi eest, et valmistada ette vormindamise rakendamiseks.
- Lisatud siseneva voolu kontroll HTML-parsijasse (see on vajalik ainsalt analüüsi viga väljundite andmiseks vastavalt spetsifikatsioonile). Vaikimisi keelatud, lisateabe saamiseks vt html/#tokenizer-options.
- Toetusele mootorikoodi väljaandmiseks.
- Üldised täiustused ja veaparandused.
Allikas: linux.org.ru
