На 13 март, след четири месеца разработка, е пусната версия 2.7.0 на високопродуктивната библиотека lexbor, предназначена за обработка на формати HTML 5 и CSS.
Основни характеристики на проекта:
- пълна подкрепа на спецификациите WHATWG, W3C и Unicode: HTML5, CSS Syntax 3, Encoding, URL, Unicode Standard Annex #15, Unicode Technical Standard #46, Punycode, Unicode Standard Annex #15, Unicode Technical Standard #46;
- манипулиране на елементите и атрибутите на DOM: добавяне, изменение, изтриване и др.;
- подкрепа за анализ на HTML фрагменти;
- преминаване на всички тестове за изграждане на DOM дървета;
- тестирана на над 200 милиона HTML страници с помощта на ASAN;
- подкрепа за разпознаване на кодиране на байтовия поток;
- анализ на стиловете на CSS в атрибутите на таговете и в таг <style>;
- търсене на HTML елементи с помощта на CSS селектори;
- подкрепа за 40 кодировки при кодиране и декодиране;
- подкрепа за небъферирано и бъферирано кодиране и декодиране;
- написана на C (стандарт C99) без външни зависимости и разпространява се под лиценз Apache 2.0;
- библиотеката е разделена на модули (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), които могат да бъдат компилирани и използвани като отделни библиотеки (с опция CMake LEXBOR_BUILD_SEPARATELY=ON);
- външни биндинги и обвивки за езици Crystal, D, Elixir, Julia, PHP, Python и Ruby.
Основни промени:
- Добавена е поддръжка за амалгамация (обединяване на изходни файлове в един файл). Това опростява интеграцията на библиотеката в проекти - достатъчно е да се свърже един файл вместо да се използва цялата система за изграждане. Подробности вижте в документацията.
- Извършена е мащабна преработка на кода, отговарящ за анализирането на CSS, за подготовка за реализация на оформления.
- Добавена е проверка на входящия поток в HTML парсера (това е необходимо единствено за извеждане на грешки в анализа в съответствие със спецификацията). Изключена по подразбиране, подробности вижте на html/#tokenizer-options.
- Подготовка на кода за издание на двигателя за оформления.
- Общи подобрения и корекции на грешки.
Източник: linux.org.ru
