13. marca, po štirih mesecih razvoja, je izšla 2.7.0 visokozmogljive knjižnice lexbor, namenjene obdelavi formatov HTML 5 in CSS.
Glavne značilnosti projekta:
- popolna podpora specifikacijam WHATWG, W3C in Unicode: HTML5, CSS Sintaksa 3, Kodiranje, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- manipulacija z elementi in atributi DOM: dodajanje, spreminjanje, brisanje in drugo;
- podpora za razčlenitev HTML fragmentov;
- prestajanje vseh testov gradnje DOM dreves;
- preizkušena na več kot 200 milijonih HTML strani z ASAN;
- podpora za določanje kodiranja po toku bajtov;
- analiza CSS stilov v atributih oznak in v oznaki ;
- iskanje HTML elementov s pomočjo CSS selektorjev;
- podpora za 40 kodiranj pri kodiranju in dekodiranju;
- podpora neobfotni in obfotni kodiranju ter dekodiranju;
- napisan v jeziku C (standard C99) brez zunanjih odvisnosti in se distribuira pod licenco Apache 2.0;
- knjižnica je razdeljena na module (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), ki jih je mogoče sestaviti in uporabiti kot ločene knjižnice (z možnostjo CMake LEXBOR_BUILD_SEPARATELY=ON);
- zunanje vezave in ovojnice za jezike Crystal, D, Elixir, Julia, PHP, Python in Ruby.
Glavne spremembe:
- Dodana je podpora za amagamacijo (združevanje izvornih datotek v eno datoteko). To poenostavi integracijo knjižnice v projekte – dovolj je vključiti en sam dokument namesto uporabe celotnega sistema zbiranja. Podrobnosti so na dokumenti.
- Izvedena je obsežna prenova kode, odgovorne za razčlenitev CSS, za pripravo na implementacijo oblikovanja.
- Dodana je preverba vhodnega toka v HTML razčlenjevalniku (to je potrebno izključno za prikaz napak razčlenitve v skladu s specifikacijo). Privzeto je onemogočeno, več o tem. html/#tokenizer-options.
- Priprava kode za izid motorja za oblikovanje.
- Splošne izboljšave in popravki napak.
Izvor: linux.org.ru
