Struct build_html::HtmlPage [−][src]
pub struct HtmlPage { /* fields omitted */ }
Expand description
This struct represents an entire page of HTML which can built up by chaining addition methods.
To convert an HtmlPage
to a String
which can be sent back to a client, use the
Html::to_html_string()
method
Example
let page: String = HtmlPage::new() .add_title("My Page") .add_header(1, "Header Text") .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head><title>My Page</title></head>", "<body><h1>Header Text</h1></body></html>" ));
Implementations
Adds a new link to the HTML head.
Example
let page = HtmlPage::new() .add_head_link("favicon.ico", "icon") .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<link href="favicon.ico" rel="icon">"#, "</head><body></body></html>" ));
pub fn add_head_link_attr<A, S>(
self,
href: impl ToString,
rel: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
pub fn add_head_link_attr<A, S>(
self,
href: impl ToString,
rel: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds a new link to the HTML head with the specified additional attributes
Example
let page = HtmlPage::new() .add_head_link_attr("print.css", "stylesheet", [("media", "print")]) .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<link href="print.css" rel="stylesheet" media="print">"#, "</head><body></body></html>" ));
Adds the specified metadata elements to this HtmlPage
Attributes are specified in a HashMap
Example
let page = HtmlPage::new() .add_meta(vec![("charset", "utf-8")]) .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<meta charset="utf-8">"#, "</head><body></body></html>" ));
Adds the specified external script to the HtmlPage
Example
let page = HtmlPage::new() .add_script_link("myScript.js") .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<script src="myScript.js"></script>"#, "</head><body></body></html>" ));
pub fn add_script_link_attr<A, S>(
self,
src: impl ToString,
attributes: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds the specified script to this HtmlPage
Example
let page = HtmlPage::new() .add_script_literal(r#"window.onload = () => console.log("Hello World");"#) .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head><script>", r#"window.onload = () => console.log("Hello World");"#, "</script></head><body></body></html>" ));
In order to lint the code, it can be helpful to define your script in
its own file. That file can be inserted into the html page using the
include_str
macro:
let page = HtmlPage::new() .add_script_literal(include_str!("myScript.js")) .to_html_string();
Adds raw style data to this HtmlPage
Example
let page = HtmlPage::new() .add_style(r#"p{font-family:"Liberation Serif";}"#) .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<style>p{font-family:"Liberation Serif";}</style>"#, "</head><body></body></html>" ));
To allow for linting, it can be helpful to define CSS in its own file.
That file can be included at compile time using the include_str
macro:
let page = HtmlPage::new() .add_style(include_str!("styles.css")) .to_html_string();
Adds the specified style data with the specified attributes
Adds the specified stylesheet to the HTML head.
This method uses add_head_link
internally
Example
let page = HtmlPage::new() .add_stylesheet("print.css") .to_html_string(); assert_eq!(page, concat!( "<!DOCTYPE html><html><head>", r#"<link href="print.css" rel="stylesheet">"#, "</head><body></body></html>" ));
Trait Implementations
Convert this element into an HTML string Read more
Adds the specified HTML element to this container Read more
Nest the specified container within this container Read more
Nest the specified Table
within this container Read more
Adds a header tag with the designated level to this container Read more
fn add_header_attr<A, S>(self, level: u8, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
fn add_header_attr<A, S>(self, level: u8, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds a header tag with the designated level and attributes to this container. Read more
Adds an <img>
tag to this container Read more
fn add_image_attr<A, S>(
self,
src: impl ToString,
alt: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
fn add_image_attr<A, S>(
self,
src: impl ToString,
alt: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds an <img>
tag with the specified attributes to this container Read more
Adds an <a>
tag to this container Read more
fn add_link_attr<A, S>(
self,
href: impl ToString,
text: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
fn add_link_attr<A, S>(
self,
href: impl ToString,
text: impl ToString,
attr: A
) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds an <a>
tag with the specified attributes to this container Read more
Adds a <p>
tag element to this Container Read more
fn add_paragraph_attr<A, S>(self, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
fn add_paragraph_attr<A, S>(self, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds a <p>
tag element with the specified attributes to this Container Read more
Adds a <pre>
tag element to this container Read more
fn add_preformatted_attr<A, S>(self, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
fn add_preformatted_attr<A, S>(self, text: impl ToString, attr: A) -> Self where
A: IntoIterator<Item = (S, S)>,
S: ToString,
Adds a <pre>
tag element with the specified attributes to this container Read more
Auto Trait Implementations
impl !RefUnwindSafe for HtmlPage
impl !UnwindSafe for HtmlPage