diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md index 070ccff..a63f6e1 100644 --- a/REQUIREMENTS.md +++ b/REQUIREMENTS.md @@ -558,7 +558,7 @@ what a valid business email is. 001 Raw HTML insertion requires an explicit safe HTML type (`SafeHtml` or equivalent). Plain `String` renders as escaped text unless explicitly wrapped. ### req: html/002 -002 Hemplate-rendered output may be converted to `SafeHtml` by trusted render APIs. User input is never `SafeHtml` by default. +002 Hemplate-rendered output may be converted to `SafeHtml` by trusted render APIs. User input is never `SafeHtml` by default. Full-page shell composition may pass already-rendered hemplate fragments through explicit `SafeHtml` fields; handlers should prefer slot/resource render helpers for effect payloads. ### req: html/003 003 Slot render commands distinguish text payloads from HTML payloads at the type level. diff --git a/examples/kanban/src/main.rs b/examples/kanban/src/main.rs index fe183e5..0dcea09 100644 --- a/examples/kanban/src/main.rs +++ b/examples/kanban/src/main.rs @@ -225,6 +225,7 @@ fn parse_column(value: Option<&str>) -> usize { } fn page_html(board: &BoardState) -> String { + // Explicit full-page composition boundary for already-rendered hemplate fragments. // req: html_safety/002 req: view/001 ui::board::lower_html(render_template(&Board { options: render_options(), diff --git a/examples/techdemo/src/main.rs b/examples/techdemo/src/main.rs index 5a09c8f..01f16e5 100644 --- a/examples/techdemo/src/main.rs +++ b/examples/techdemo/src/main.rs @@ -422,6 +422,8 @@ fn parse_lane(value: Option<&str>) -> usize { } fn page_html(demo: &DemoState) -> String { + // Explicit full-page composition boundary for already-rendered hemplate fragments. + // req: html_safety/002 req: view/001 render_control_center(ControlCenter { hero: render_hero(demo), board: render_board(demo), @@ -431,6 +433,7 @@ fn page_html(demo: &DemoState) -> String { } fn shell(body: String) -> String { + // Explicit full-page shell composition boundary for already-rendered hemplate fragments. // req: html_safety/002 req: view/001 render_template(&AppShell { body: SafeHtml::trusted(body) }) } diff --git a/examples/v0/src/main.rs b/examples/v0/src/main.rs index 4fc72e1..1339661 100644 --- a/examples/v0/src/main.rs +++ b/examples/v0/src/main.rs @@ -185,6 +185,7 @@ fn all_examples() -> String { } fn shell(body: String) -> String { + // Explicit full-page shell composition boundary for already-rendered hemplate fragments. // req: html_safety/002 req: view/001 render_template(&AppShell { body: SafeHtml::trusted(body),