13 mars, efter fyra mÄnaders utveckling, slÀpptes 2.7.0 av det högpresterande biblioteket lexbor, avsett för hantering av HTML 5- och CSS-format.
Huvudfunktioner i projektet:
- fullt stöd för WHATWG-, W3C- och Unicode-specifikationerna: HTML5, CSS Syntax 3, Encoding, URLâ, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- manipulation av DOM-element och attribut: lÀgga till, Àndra, ta bort och mer;
- stöd för att parsa HTML-fragment;
- genomgÄng av alla tester för DOM-trÀdstruktur;
- testad pÄ mer Àn 200 miljoner HTML-sidor med hjÀlp av ASAN;
- stöd för att identifiera kodning via byte-ström;
- analys av CSS-stilar i tagg-attribut och i <style>-taggen;
- sökning av HTML-element med hjÀlp av CSS-selektorer;
- stöd för 40 kodningar vid kodning och avkodning;
- stöd för buffrad och obuffrad kodning och avkodning;
- skriven pÄ C (C99-standard) utan externa beroenden och distribueras under Apache 2.0-licensen;
- biblioteket Àr uppdelat i moduler (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), som kan kompileras och anvÀndas som separata bibliotek (med CMake-alternativet LEXBOR_BUILD_SEPARATELY=ON);
- externa bindningar och wrappers för sprĂ„k Crystal, ââDââ, Elixir, Julia, PHPâ, Python och Ruby.
Huvudsakliga förÀndringar:
- Stöd för amalgamering (sammanfogning av kĂ€llfiler till en fil) har lagts till. Detta förenklar integrationen av biblioteket i projekt â det rĂ€cker med att ansluta en fil istĂ€llet för att anvĂ€nda hela byggsystemet. Mer information finns i dokumentationen.
- En omfattande omarbetning av koden för CSS-parsning har genomförts för att förbereda implementeringen av layout.
- Kontroll av den inkommande strömmen i HTML-parsern har lagts till (detta Àr nödvÀndigt bara för att ge felmeddelanden i enlighet med specifikationen). Det Àr avstÀngt som standard, mer information finns i. html/#tokenizer-options.
- Förberedelse av koden för release av layoutmotorn.
- AllmÀnna förbÀttringar och buggfixar.
KĂ€lla: linux.org.ru
