17 dépôts
The process of transforming a token stream into a hierarchical Document Object Model.
Distinct from Syntax Tree Construction: Distinct from general syntax tree construction by specifically managing the dynamic nature of the HTML DOM.
Explore 17 awesome GitHub repositories matching software engineering & architecture · DOM Tree Construction. Refine with filters or upvote what's useful.
Yoga is a cross-platform layout engine and embeddable core that determines the dimensions and offsets of hierarchical element trees. It provides a C++ implementation of the Flexbox layout model to calculate element positions and sizes based on web standards, ensuring a uniform appearance across diverse devices and operating systems. The engine is designed for portability via a C API, allowing the layout logic to be integrated into various host languages and platforms. It utilizes an incremental layout system that identifies modified subtrees and recalculates positions only for changed nodes a
Allows the creation and linking of nodes to establish a hierarchical structure for UI elements and styling.
This repository contains the HTML specification, which defines the core standards for web page structuring, content organization, and document rendering. It establishes the fundamental algorithms for state-machine-based tokenization, tree construction for the document object model, and origin-based security isolation. The specification provides a framework for defining custom elements with independent lifecycles and registries. It also details the requirements for cross-document communication, session history management, and the synchronization of interface properties with content attributes.
Defines the core algorithm for building the document object model from parsed tokens.
GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts, organizational charts, and network diagrams. It functions as a data-driven framework that binds JavaScript data models to visual elements, enabling bidirectional synchronization between the underlying data and the graphical representation. The library features a comprehensive graph layout engine capable of automatically arranging nodes into trees, grids, circles, or force-directed layouts. It distinguishes itself through a template-based system for generating visual parts and a
Constructs nodes and links as a hierarchy of shapes, text blocks, and panels to define visual layout.
This project is a technical breakdown and implementation of a user interface framework's internal architecture, focusing specifically on the mechanics of the virtual DOM, reconciliation, and component lifecycles. It serves as a resource for understanding how a core logic layer manages the transition from high-level component descriptions to physical browser elements. The project distinguishes itself by providing detailed visualizations, including flowcharts and block schemes, to map the reconciliation process and code execution paths. It explores how a platform-agnostic core can be adapted fo
Constructs a complete interface hierarchy by instantiating components from the top level down to children.
Azul est un constructeur d'applications desktop natives et un toolkit UI pour créer des interfaces graphiques haute performance. Il utilise un modèle de programmation fonctionnel et réactif pour gérer la mise en page et l'état, permettant le développement de logiciels natifs via un toolkit basé sur CSS. Le framework se distingue par son utilisation du moteur WebRender pour fournir un rendu accéléré par GPU. Cela permet au système d'afficher des éléments d'interface utilisateur complexes avec une efficacité et une vitesse élevées en tirant parti de l'accélération matérielle. Le projet permet la conception d'interfaces desktop en utilisant un modèle objet de document et une syntaxe de stylisation similaire à HTML et CSS. Sa surface de fonctionnalités couvre la conception d'interfaces multiplateformes et la création d'interfaces desktop basées sur des technologies web.
Utilizes a hierarchical layout tree to map structural document elements to their final visual properties.
AngleSharp est un parser HTML5 DOM et un framework de web scraping conçu pour parser des documents HTML5, SVG et MathML en un modèle d'objet de document (DOM) conforme au W3C. Il fonctionne comme un générateur HTML programmatique et un moteur de sélecteur CSS pour interroger et localiser des éléments spécifiques au sein d'un DOM. Le projet fournit des outils pour simuler des environnements de navigateur afin d'automatiser les interactions web, naviguer vers des URLs et soumettre des formulaires. Il inclut un minificateur HTML et CSS dédié pour réduire la taille des fichiers des ressources web en supprimant les caractères inutiles. La bibliothèque prend en charge la manipulation du DOM HTML et l'extraction de données structurées à partir de sites web. Elle gère la transformation du balisage via un pipeline de parsing qui inclut une récupération d'erreurs pilotée par les spécifications et une construction de document hiérarchique.
Transforms a token stream into a hierarchical Document Object Model with parent, child, and sibling pointers.
SwiftSoup est une bibliothèque de traitement HTML multiplateforme pour Swift qui convertit des chaînes et des fichiers HTML ou XML bruts en un modèle objet de document (DOM) structuré. Elle fournit l'infrastructure de base pour analyser le contenu web en un arbre parcourable, permettant un accès programmatique aux éléments de page sur iOS, macOS et Linux. La bibliothèque dispose d'un moteur de sélecteurs CSS pour l'extraction de données et d'un système de désinfection basé sur une liste blanche pour supprimer les balises et attributs dangereux du contenu soumis par les utilisateurs. Elle optimise les requêtes de document répétitives grâce à la mise en cache des requêtes mémoïsées. Le projet couvre la manipulation du DOM pour mettre à jour les éléments et attributs, le parcours d'arbre récursif pour les recherches approfondies, et l'analyse basée sur des jetons (token-based) pour transformer le balisage en données structurées.
Transforms token streams into a hierarchical Document Object Model representation for HTML and XML.
FigmaToCode est un convertisseur design-vers-code et un générateur de code frontend qui transforme les fichiers de design Figma en code source responsive. Il fonctionne comme un compilateur d'interface utilisateur multiplateforme, mappant les éléments de design visuel aux contraintes structurelles pour les environnements web et mobiles. Le système prend en charge l'émission de syntaxe multi-cible pour produire du code pour HTML, Tailwind CSS, Flutter et SwiftUI. Il automatise le stylage frontend en convertissant les variables de système de design et les effets visuels en code cohérent avec le thème à travers ces différents frameworks. L'outil gère l'implémentation d'interface utilisateur responsive en traduisant les nœuds de design en mises en page qui s'adaptent à diverses tailles d'écran. Il gère la conversion des hiérarchies de design, des relations spatiales et des palettes de couleurs en propriétés de mise en page fonctionnelles et définitions de style.
Translates nested design nodes into hierarchical layout trees for geometry and styling calculations.
Ultralight est un renderer d'interface utilisateur HTML accéléré par GPU et un framework C++ conçu pour intégrer des interfaces web au sein d'applications natives. Il fonctionne comme un navigateur web léger et un framework d'interface utilisateur multiplateforme qui rend le HTML, le CSS et le JavaScript directement vers des buffers de pixels CPU ou des textures GPU. Le projet se distingue en permettant aux développeurs d'émettre de la géométrie brute et des appels de dessin via une interface de pilote GPU personnalisée, éliminant les bitmaps CPU intermédiaires. Il fournit une intégration profonde entre la logique native et les environnements web via une bibliothèque d'interface web C++ qui lie les fonctions et objets natifs à une machine virtuelle JavaScript. Le moteur couvre un large éventail de capacités, incluant le rendu de mise en page paint-tree, la gestion asynchrone des vues et les cycles de rendu contrôlés par l'hôte. Il prend en charge des gestionnaires de plateforme personnalisés pour surcharger les comportements de fichiers et de presse-papiers au niveau de l'OS, le transfert des entrées utilisateur et la capacité de regrouper les assets web directement dans les binaires d'application. Le renderer peut être intégré dans divers langages de programmation via des wrappers maintenus par la communauté pour C#, Java et Rust.
Parses HTML and CSS to construct a layout tree for calculating geometry before final rendering.
htmlparser2 est une collection d'outils pour le parsing de balisage haute performance, la manipulation DOM et le traitement de flux incrémental. Il fonctionne comme un parseur HTML et XML qui convertit les chaînes de balisage en arbres d'objets structurés, aux côtés d'un parseur de balisage en flux conçu pour le traitement efficace en mémoire de grands documents. Le projet inclut une bibliothèque de manipulation DOM pour interroger, modifier et sérialiser des arbres de modèle objet de document. Il fournit également un parseur de flux web pour extraire des métadonnées structurées et des entrées à partir de flux RSS, RDF et Atom. La bibliothèque couvre de vastes capacités en parsing de données, incluant la conversion de documents en arbres DOM et l'exécution de workflows de web scraping. Ces outils permettent la recherche et la modification de structures de documents parsées avant qu'elles ne soient reconverties en chaînes.
Transforms a sequence of parsed tokens into a hierarchical Document Object Model for programmatic use.
Tangram-Android est un SDK d'interface utilisateur piloté par serveur (server-driven UI) et un moteur natif dynamique pour Android. Il permet le rendu d'interfaces utilisateur natives en interprétant des définitions de données JSON reçues d'un serveur distant, permettant aux mises en page et au contenu des applications d'être mis à jour sans nécessiter de nouveaux déploiements d'applications. Le framework utilise un système basé sur JSON pour synchroniser les mises en page des pages sur Android et iOS via un format de données partagé. Cela permet des mises à jour d'interface en temps réel et une cohérence multiplateforme en contrôlant l'interface mobile depuis un backend distant. Le projet fournit une bibliothèque modulaire de composants réutilisables et un moteur de mise en page qui organise les éléments d'interface natifs en grilles et listes. Il emploie un mappage de vue dynamique et une analyse récursive pour traduire des données structurées en hiérarchies de vues natives complexes.
Processes nested data structures to iteratively instantiate child components and build complex view hierarchies.
parse5 est un parseur et sérialiseur HTML WHATWG pour Node.js. Il transforme les chaînes HTML en un modèle objet de document (DOM) et reconvertit ces arbres en chaînes HTML valides, en suivant la logique définie par le standard HTML Living Standard. Le projet fonctionne comme un processeur HTML en flux, utilisant une analyse incrémentale pour traiter les documents volumineux par blocs. Il inclut un tokenizer conforme à HTML5 qui utilise une approche par machine à états pour diviser l'entrée en jetons selon les spécifications web officielles. L'ensemble d'outils couvre l'analyse de documents HTML, la sérialisation et la réécriture en temps réel via des flux. Ces capacités permettent l'analyse programmatique et l'extraction de données à partir de documents HTML tout en maintenant une cohérence entre différents environnements.
Transforms a sequence of tokens into a hierarchical document object model using specific nesting and stacking rules.
Robobrowser is a Python web scraping library that provides a headless browser emulator and an HTML DOM parser. It is designed to programmatically navigate websites, interact with HTML forms, and extract data from web pages. The tool includes a web request caching mechanism to store previously fetched web content, reducing network traffic and increasing loading speeds for repeated requests. It covers capabilities for automated web navigation, programmatic web scraping, and web form automation, including the ability to populate input fields and trigger submission events. The system also manage
Provides a mechanism to convert HTML responses into a hierarchical Document Object Model for structured data retrieval.
HTMLHint is an HTML linter and static analysis tool designed to identify structural errors and syntax violations in source code. It functions as a configurable validator that scans local files and remote URLs to detect malformed tags, duplicate IDs, and document structure inconsistencies. The tool serves as an accessibility auditor, verifying that web elements include necessary labels and alternative text for images. It further distinguishes itself by enforcing web document compliance, checking for the presence of doctypes, language attributes, and head metadata. The project covers a broad r
Converts raw HTML strings into a hierarchical Document Object Model to analyze tag nesting and attribute integrity.
Fancytree est une bibliothèque JavaScript conçue pour rendre et gérer des structures de données hiérarchiques interactives au sein d'interfaces web. Elle fournit un framework pour afficher des informations imbriquées complexes sous forme d'arborescences ou de grilles, prenant en charge à la fois la navigation standard dans l'arborescence et les mises en page de données tabulaires. La bibliothèque se distingue par une architecture de plugin modulaire qui permet aux développeurs d'injecter des comportements et des éléments visuels personnalisés dans le cycle de vie du composant. Elle gère les grands ensembles de données en implémentant un chargement paresseux à la demande, qui récupère les nœuds enfants uniquement lorsque nécessaire pour maintenir la réactivité. Les utilisateurs peuvent interagir avec les données via le glisser-déposer, l'édition de nœuds en ligne et la sélection multi-nœuds avec propagation automatique de l'état. Au-delà du rendu de base, le projet inclut des outils complets pour la gestion d'état et la manipulation de données. Il prend en charge le filtrage de contenu en temps réel, la navigation au clavier et la persistance des états d'expansion et de sélection des nœuds à travers les sessions de navigateur. La bibliothèque est construite sur un système de normalisation récursive des données et de délégation d'événements pour garantir des performances et une gestion des interactions cohérentes à travers diverses configurations hiérarchiques.
Constructs and maintains a nested list of HTML elements representing hierarchical data structures directly within the browser document.
PHP HTML Parser is a server-side programming library and DOM parser designed to ingest markup documents and structure them into a navigable parent-child object tree. The library provides a stream-based character lexer and a configurable rule engine that manages parser strictness, whitespace preservation, tag closing behavior, and character encoding detection during document ingestion. Content loading is handled through a pluggable retrieval layer that accepts local file paths, raw strings, and remote network URLs. Once loaded, documents can be queried using a chainable CSS selector engine th
Structures parsed markup into a navigable parent-child document object model hierarchy.
php-simple-html-dom-parser is a PHP library for parsing HTML documents into a traversable in-memory tree that handles malformed markup gracefully. It constructs a complete object graph from raw HTML strings while retaining document structure and relational node hierarchies, and supports lazy child node iteration to load descendant nodes on demand for large documents. The library features a CSS selector query engine that translates selector expressions to locate and filter matching nodes within the parsed DOM tree. Programmatic accessors provide direct string-based attribute retrieval to extra
Converts raw HTML markup strings into a fully traversable object graph that retains document structure and relational node hierarchies.