Frontmatter
| id | 7130 |
| title | String-Based VDOM Templates |
| state | Closed |
| labels | enhancementepic |
| assignees | tobiu |
| createdAt | Jul 30, 2025, 1:00 PM |
| updatedAt | Aug 3, 2025, 3:09 AM |
| githubUrl | https://github.com/neomjs/neo/issues/7130 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | 7131 Dev Mode: Main Thread Addon for Live Parsing 7132 Production Mode: Build-Time Parsing with `parse5` 7136 Alternative Dev Mode: In-Worker Parsing with `parse5` 7137 Template Syntax Specification 7138 Parser: Interpolation and Data Type Handling 7139 Parser: Component vs. HTML Tag Recognition 7140 Bundle `parse5` for Browser Compatibility 7141 Enhance Learning Content 7142 Expand Test Coverage with Real Components 7143 Code Quality Refinement 7144 Create a Real-World Example 7146 Fix Conditional Rendering and Add Tests 7147 Refactor `render` to `initVnode` and `createTemplateVdom` to `render` 7148 Create a Robust VDOM-to-String Serializer 7149 Refactor Build-Time Parser to be AST-Based for Robustness 7150 Build-Time `html` Template to VDOM Conversion 7151 Finalize and Integrate AST-based Build Process 7152 Showcase Nested Templates and Component Usage 7153 Introduce `attributeNameMap` for Robust Attribute Handling 7154 Fix Self-Closing Custom Component Tags 7155 Fix Build-Time Conditional Template Rendering 7156 Finalize Build-Time AST Transformation 7158 Create a Reusable, AST-Based Build-Time Processor 7159 Optimize Build Process with a Pre-emptive Regex Check 7160 Integrate Template Processing into `dist/development` Build 7161 Integrate Template Processing into `dist/production` Build 7162 Add Error Resilience to AST Processor 7163 Create "Under the Hood: HTML Templates" Guide |
| subIssuesCompleted | 28 |
| subIssuesTotal | 28 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Aug 3, 2025, 3:09 AM |
String-Based VDOM Templates
tobiu assigned to @tobiu on Jul 30, 2025, 1:00 PM
tobiu added sub-issue #7131 on Jul 30, 2025, 1:01 PM
tobiu added sub-issue #7132 on Jul 30, 2025, 1:02 PM
tobiu added sub-issue #7136 on Jul 31, 2025, 9:02 AM
tobiu added sub-issue #7137 on Jul 31, 2025, 9:32 AM
tobiu added sub-issue #7138 on Jul 31, 2025, 9:33 AM
tobiu added sub-issue #7139 on Jul 31, 2025, 9:34 AM
tobiu added sub-issue #7140 on Jul 31, 2025, 9:55 AM
tobiu added sub-issue #7141 on Jul 31, 2025, 12:50 PM
tobiu added sub-issue #7142 on Jul 31, 2025, 12:50 PM
tobiu added sub-issue #7143 on Jul 31, 2025, 12:54 PM
tobiu added sub-issue #7144 on Jul 31, 2025, 12:55 PM
tobiu added sub-issue #7146 on Jul 31, 2025, 4:56 PM
tobiu added sub-issue #7147 on Jul 31, 2025, 9:20 PM
tobiu added sub-issue #7148 on Aug 1, 2025, 1:06 AM
tobiu added sub-issue #7149 on Aug 1, 2025, 1:07 AM
tobiu added sub-issue #7150 on Aug 1, 2025, 12:09 PM
tobiu added sub-issue #7151 on Aug 1, 2025, 12:33 PM
tobiu added sub-issue #7152 on Aug 1, 2025, 2:23 PM
tobiu added sub-issue #7153 on Aug 1, 2025, 3:01 PM
tobiu added sub-issue #7154 on Aug 1, 2025, 4:14 PM
tobiu added sub-issue #7155 on Aug 1, 2025, 4:40 PM
tobiu added sub-issue #7156 on Aug 1, 2025, 6:07 PM
tobiu added sub-issue #7158 on Aug 2, 2025, 1:28 PM
tobiu added sub-issue #7159 on Aug 2, 2025, 1:29 PM
tobiu added sub-issue #7160 on Aug 2, 2025, 1:30 PM
tobiu added sub-issue #7161 on Aug 2, 2025, 1:33 PM
This epic covers the exploration and implementation of a new feature allowing developers to use string-based template literals (HTML-like syntax) to define the VDOM for functional components. This will provide a more familiar and intuitive way to structure component views compared to the current JSON-based VDOM approach.
An early proof-of-concept (PoC) already exists in the following files:
test/siesta/tests/functional/HtmlTemplateComponent.mjssrc/functional/component/Base.mjs(seeenableHtmlTemplates_config)src/functional/util/html.mjs