Pagre-render na parang Go html/template sa Rust.
Ang go_html_template ay isang Rust crate na tumutulad sa mga pangunahing workflow ng Go html/template. Sinusuportahan nito ang template syntax, pipelines, context-aware escaping, at pagharang sa hindi ligtas na URL schemes habang pinananatiling pamilyar ang anyo ng API.
Go-like na Template API
Gamitin ang Template::new(...).parse(...).execute(...) kasama ang define/template/range/with/pipeline features.
Pagtakas Ayon sa Konteksto
Naglalapat ng context-aware escaping para sa HTML text, attributes, URL attributes, at script/style contexts, at hinaharang ang hindi ligtas na javascript: URLs.
Mode na web-rust
Kapag naka-enable ang web-rust feature, naka-disable ang parse_files/parse_glob/parse_fs upang maipatupad ang in-memory na paglo-load ng template.
Pag-setup at Batayang Paggamit
Idagdag ang crate, pagkatapos ay beripikahin ang pinakamaliit na parse + execute_to_string flow. Sa mga kapaligirang web-rust, gumamit ng mga template string na nasa memorya sa halip na mga API para sa pag-load ng file.
I-install
cargo add go_html_template
Halimbawa sa Rust
use go_html_template::{Template, Value};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let tpl = Template::new("page")
.parse(r#"<h1>{{.Title}}</h1>\n<p>{{.Body | safe_html}}</p>"#)?;
let out = tpl.execute_to_string(&serde_json::json!({
"Title": "go_html_template",
"Body": "<em>trusted</em>"
}))?;
println!("{out}");
Ok(())
}
Kalagayan ng Pagkakatugma
Ang go_html_template ay kasalukuyang nagpapatupad ng mga pangunahing workflow habang patuloy na isinasara ang mga puwang sa compatibility . Hindi pa ito mahigpit na 1:1 compatibility target sa Go html/template, kaya beripikahin ang asal nito sa inyong production templates.
Nakaraan
Listahan ng OSSSusunod
README / Buong Detalye