diff --git a/examples/threads/threads.txs b/examples/threads/threads.txs
index 7396bb40..76e70f88 100644
--- a/examples/threads/threads.txs
+++ b/examples/threads/threads.txs
@@ -6,7 +6,7 @@ spawn_fn = thread["spawn"]
join_fn = thread["join"]
do task_a()
- time.sleep(100)
+ time.sleep(250)
say "Task A completed on worker thread."
end
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("