Am 13. März, nach vier Monaten Entwicklung, wurde die leistungsstarke Bibliothek in Version 2.7.0 veröffentlicht. lexbor, die für die Verarbeitung von HTML 5- und CSS-Formaten vorgesehen ist.
Die Hauptmerkmale des Projekts:
- vollständige Unterstützung der Spezifikationen von WHATWG, W3C und Unicode: HTML5, CSS-Syntax 3, Kodierung, URL, Unicode Standard Anhang #15, Unicode Technischer Standard #46, Punycode, Unicode Standard Anhang #15, Unicode Technischer Standard #46;
- Manipulation von DOM-Elementen und -Attributen: Hinzufügen, Ändern, Löschen und mehr;
- Unterstützung des Parsetyps für HTML-Fragmenten;
- Bestehen aller DOM-Baum-Konstruktionstests;
- Getestet an mehr als 200 Millionen HTML-Seiten mit ASAN;
- Unterstützung der Kodierungserkennung aus Byte-Strömen;
- Analyse von CSS-Stilen in Tag-Attributen und im Tag ;
- Suche nach HTML-Elementen mithilfe von CSS-Selektoren;
- Unterstützung von 40 Kodierungen beim Kodieren und Dekodieren;
- Unterstützung von nicht gepuffertem und gepuffertem Kodieren und Dekodieren;
- Schreiben in C (Standard C99) ohne externe Abhängigkeiten und unterliegt der Lizenz Apache 2.0;
- Die Bibliothek ist in Module (Core, CSS, DOM, Encoding, Engine, HTML, NS, Punycode, Selectors, Tag, Unicode, URL, Utils) unterteilt, die als separate Bibliotheken kompiliert und verwendet werden können (mit der Option CMake LEXBOR_BUILD_SEPARATELY=ON);
- Externe Bindungen und Wrapper für Sprachen Crystal, D, Elixir, Julia, PHP, Python und Ruby.
Hauptänderungen:
- Die Unterstützung für die Amalgamierung (Zusammenführung von Quellcodedateien in eine Datei) wurde hinzugefügt. Dies vereinfacht die Integration der Bibliothek in Projekte – es reicht aus, eine Datei anstelle des gesamten Build-Systems einzubinden. Weitere Details finden Sie unter Dokumentation.
- Es wurde eine umfassende Überarbeitung des Codes zur CSS-Analyse durchgeführt, um die Implementierung der Layout-Engine vorzubereiten.
- Es wurde eine Überprüfung des Eingabestroms im HTML-Parser hinzugefügt (dies ist ausschließlich zur Ausgabe von Parsing-Fehlern gemäß der Spezifikation erforderlich). Standardmäßig deaktiviert, weitere Informationen unter html/#tokenizer-options.
- Vorbereitung des Codes für die Veröffentlichung der Layout-Engine.
- Allgemeine Verbesserungen und Fehlerbehebungen.
Quelle: linux.org.ru
