13. marts, pēc četru mēnešu izstrādes, tika izlaista 2.7.0 augstas veiktspējas bibliotēka lexbor, kas paredzēta HTML 5 un CSS formātu apstrādei.
Galvenās projekta iezīmes:
- pilnīga WHATWG, W3C un Unicode specifikāciju atbalsts: HTML5, CSS sintakse 3, Kodējums, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- manipulācija ar DOM elementiem un atribūtiem: pievienošana, maiņa, dzēšana un citi;
- atbalsts HTML fragmentu parsēšanai;
- visi DOM koku konstruēšanas testi ir izturēti;
- testēta uz vairāk nekā 200 miljoniem HTML lapu, izmantojot ASAN;
- atbalsts kodējuma noteikšanai, pamatojoties uz bajtu plūsmu;
- CSS stilu analīze tagu atribūtā un tagā;
- HTML elementu meklēšana, izmantojot CSS selektorus;
- atbalsts 40 kodējumiem kodēšanas un dekodēšanas procesā;
- atbalsts nebuferizētai un buferizētai kodēšanai un dekodēšanai;
- uzrakstīta C valodā (C99 standarts) bez ārējām atkarībām un izplatīta saskaņā ar Apache 2.0 licenci;
- bibliotēka sadalīta moduļos (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), kurus var kompiliēt un izmantot kā atsevišķas bibliotēkas (nav nepieciešama visa kompilācijas sistēma, tikai izmantojot CMake LEXBOR_BUILD_SEPARATELY=ON);
- trešo pušu saites un iesaiņojumi valodām Crystal, D, Elixir, Julia, PHP, Python un Ruby.
Galvenās izmaiņas:
- Tika atbalsts amālgamācijai (avota failu apvienošanai vienā failā) ir pievienots. Tas atvieglo bibliotēkas integrāciju projektos – pietiek pievienot vienu failu, nevis izmantot visu apkopošanas sistēmu. Sīkāka informācija skatiet dokumentācijā.
- Veikta koda plaša pārstrāde, kas atbildīga par CSS parsēšanu, lai sagatavotos izkārtojuma ieviešanai.
- Pievienota ieejas plūsmas pārbaude HTML parsētājā (tā ir nepieciešama tikai, lai izvadītu parsēšanas kļūdu atgriezenisko saiti saskaņā ar specifikāciju). Pārbaude pēc noklusējuma ir atslēgta, skatiet sīkāk html/#tokenizer-options.
- Saglabāts kods, lai izlaistu izkārtojuma dzinēju.
- Vispārēji uzlabojumi un kļūdu labojumi.
Avots: linux.org.ru
