docs(examples): mark page shell html boundaries
Document that remaining SafeHtml use in examples is limited to full-page shell composition of already-rendered hemplate fragments, while effect payloads use render helpers. req: html_safety/002 req: view/001
This commit is contained in:
+1
-1
@@ -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.
|
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
|
### 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
|
### req: html/003
|
||||||
003 Slot render commands distinguish text payloads from HTML payloads at the type level.
|
003 Slot render commands distinguish text payloads from HTML payloads at the type level.
|
||||||
|
|||||||
@@ -225,6 +225,7 @@ fn parse_column(value: Option<&str>) -> usize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn page_html(board: &BoardState) -> String {
|
fn page_html(board: &BoardState) -> String {
|
||||||
|
// Explicit full-page composition boundary for already-rendered hemplate fragments.
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
ui::board::lower_html(render_template(&Board {
|
ui::board::lower_html(render_template(&Board {
|
||||||
options: render_options(),
|
options: render_options(),
|
||||||
|
|||||||
@@ -422,6 +422,8 @@ fn parse_lane(value: Option<&str>) -> usize {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn page_html(demo: &DemoState) -> String {
|
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 {
|
render_control_center(ControlCenter {
|
||||||
hero: render_hero(demo),
|
hero: render_hero(demo),
|
||||||
board: render_board(demo),
|
board: render_board(demo),
|
||||||
@@ -431,6 +433,7 @@ fn page_html(demo: &DemoState) -> String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn shell(body: String) -> String {
|
fn shell(body: String) -> String {
|
||||||
|
// Explicit full-page shell composition boundary for already-rendered hemplate fragments.
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
render_template(&AppShell { body: SafeHtml::trusted(body) })
|
render_template(&AppShell { body: SafeHtml::trusted(body) })
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,6 +185,7 @@ fn all_examples() -> String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn shell(body: String) -> String {
|
fn shell(body: String) -> String {
|
||||||
|
// Explicit full-page shell composition boundary for already-rendered hemplate fragments.
|
||||||
// req: html_safety/002 req: view/001
|
// req: html_safety/002 req: view/001
|
||||||
render_template(&AppShell {
|
render_template(&AppShell {
|
||||||
body: SafeHtml::trusted(body),
|
body: SafeHtml::trusted(body),
|
||||||
|
|||||||
Reference in New Issue
Block a user