El 13 de marzo, tras cuatro meses de desarrollo, se lanzó la versión 2.7.0 de la biblioteca de alto rendimiento. lexbor, diseñado para procesar formatos HTML 5 y CSS.
Las principales características del proyecto:
- Compatibilidad total con las especificaciones WHATWG, W3C y Unicode: HTML5, Sintaxis CSS 3, Codificación, URL, Anexo n.º 15 del estándar Unicode, Norma técnica Unicode n.º 46, Punycode, Anexo n.º 15 del estándar Unicode, Norma técnica Unicode n.º 46;
- manipulación de elementos y atributos del DOM: agregar, cambiar, eliminar, etc.;
- Compatibilidad con el análisis de fragmentos HTML;
- Superando todas las pruebas de construcción del árbol DOM;
- probado en más de 200 millones de páginas HTML que utilizan ASAN;
- Compatibilidad con la detección de codificación por flujo de bytes;
- Analizando estilos CSS en atributos de etiquetas y en la etiqueta ;
- Cómo encontrar elementos HTML usando selectores CSS;
- Admite 40 codificaciones al codificar y decodificar;
- Compatibilidad con codificación y decodificación con y sin búfer;
- escrito en C (estándar C99) sin dependencias de terceros y distribuido bajo la licencia Apache 2.0;
- La biblioteca está dividida en módulos (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils), que pueden compilarse y utilizarse como bibliotecas separadas (con la opción CMake LEXBOR_BUILD_SEPARATELY=ON);
- Enlaces y adaptadores de terceros para lenguajes Cristal, D, Elixir, Julia, PHP, Python и Rubí.
Cambios importantes:
- Se agregó compatibilidad con la fusión (combinación de archivos fuente en un solo archivo). Esto simplifica la integración de la biblioteca en los proyectos: solo necesita incluir un archivo en lugar de usar todo el sistema de compilación. Para obtener más detalles, consulte documentación.
- Se llevó a cabo una revisión a gran escala del código responsable del análisis CSS como preparación para la implementación del diseño.
- Se agregó validación del flujo de entrada al analizador HTML (esto es necesario únicamente para informar errores de análisis según la especificación). Deshabilitado por defecto; consulte los detalles. html/#opciones-de-tokenización.
- Preparando el código para el lanzamiento del motor de maquetación.
- Mejoras generales y corrección de errores.
Fuente: linux.org.ru
