From 8fdc5c8ba356198a9d6f2d12e64b991ad51440ac Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Tue, 27 Oct 2026 18:13:20 +0000
Subject: [PATCH 1/4] refactor(web): extract render_website and
render_component helpers
Co-authored-by: Tcode-Motion <188012755+Tcode-Motion@users.noreply.github.com>
---
stdlib/src/web/renderer.rs | 116 +++++++++++++++++++++++++++----------
1 file changed, 84 insertions(+), 32 deletions(-)
diff --git a/stdlib/src/web/renderer.rs b/stdlib/src/web/renderer.rs
index 5eb9ba74..6d71519c 100644
--- a/stdlib/src/web/renderer.rs
+++ b/stdlib/src/web/renderer.rs
@@ -1768,40 +1768,48 @@ pub fn render_footer_block(html: &mut String, dsl: &DslBlockValue) {
html.push_str("");
}
+pub fn render_component(html: &mut String, dsl: &DslBlockValue) {
+ html.push_str("
");
+ render_children(html, dsl);
+ html.push_str("
");
+}
+
+pub fn render_website(html: &mut String, dsl: &DslBlockValue) {
+ render_children(html, dsl);
+}
+
+pub fn render_dsl_block(html: &mut String, dsl: &DslBlockValue) {
+ match dsl.kind.as_str() {
+ "page" => render_page(html, dsl),
+ "hero" => render_hero(html, dsl),
+ "section" => render_section(html, dsl),
+ "card" => render_card(html, dsl),
+ "heading" => render_heading(html, dsl),
+ "text" => render_text(html, dsl),
+ "button" => render_button(html, dsl),
+ "input" => render_input(html, dsl),
+ "timeline" => render_timeline(html, dsl),
+ "accordion" => render_accordion(html, dsl),
+ "tabs" => render_tabs(html, dsl),
+ "stats" => render_stats(html, dsl),
+ "alert" | "callout" | "banner" => render_alert(html, dsl),
+ "scene" | "scene3d" | "model3d" | "model3D" => render_scene3d(html, dsl),
+ "link" => render_link(html, dsl),
+ "nav" => render_nav(html, dsl),
+ "header" => render_header_block(html, dsl),
+ "footer" => render_footer_block(html, dsl),
+ "component" => render_component(html, dsl),
+ "website" => render_website(html, dsl),
+ "database" | "table" | "cube" => {}
+ _ => {
+ render_children(html, dsl);
+ }
+ }
+}
+
pub fn dsl_to_html_inner(val: &RuntimeValue, html: &mut String) {
if let RuntimeValue::DslBlock(dsl) = val {
- match dsl.kind.as_str() {
- "page" => render_page(html, dsl),
- "hero" => render_hero(html, dsl),
- "section" => render_section(html, dsl),
- "card" => render_card(html, dsl),
- "heading" => render_heading(html, dsl),
- "text" => render_text(html, dsl),
- "button" => render_button(html, dsl),
- "input" => render_input(html, dsl),
- "timeline" => render_timeline(html, dsl),
- "accordion" => render_accordion(html, dsl),
- "tabs" => render_tabs(html, dsl),
- "stats" => render_stats(html, dsl),
- "alert" | "callout" | "banner" => render_alert(html, dsl),
- "scene" | "scene3d" | "model3d" | "model3D" => render_scene3d(html, dsl),
- "link" => render_link(html, dsl),
- "nav" => render_nav(html, dsl),
- "header" => render_header_block(html, dsl),
- "footer" => render_footer_block(html, dsl),
- "component" => {
- html.push_str("");
- render_children(html, dsl);
- html.push_str("
");
- }
- "website" => {
- render_children(html, dsl);
- }
- "database" | "table" | "cube" => {}
- _ => {
- render_children(html, dsl);
- }
- }
+ render_dsl_block(html, dsl);
}
}
@@ -2278,3 +2286,47 @@ pub fn render_complete_document(
doc.push_str("