Utekelezaji wa mtindo wa Go html/template ndani ya Rust
go_html_template ni crate ya Rust inayotoa API na tabia zinazofanana na Go html/template. Inaunga mkono sintaksia ya template, pipelines, escaping inayotambua context, na kuzuia unsafe URL schemes huku ikihifadhi umbo la API linalojulikana.
API ya Template inayofanana na Go
Tumia Template::new(...).parse(...).execute(...) pamoja na vipengele vya define/template/range/with/pipeline.
Escaping inayojua context
Hutumia escaping inayojua context kwa HTML text, attributes, URL attributes, na script/style contexts, na huzuia javascript: URLs zisizo salama.
Hali ya web-rust
Kwa feature ya web-rust, parse_files/parse_glob/parse_fs huzimwa ili kulazimisha upakiaji wa template kutoka kumbukumbu.
Usanidi na matumizi ya msingi
Ongeza crate, kisha hakiki mtiririko mdogo wa parse + execute_to_string. Katika mazingira ya web-rust, tumia template strings za ndani ya kumbukumbu badala ya API za kupakia faili.
Sakinisha
cargo add go_html_template
Mfano wa 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(())
}
Hali ya Uoanifu
Hivi sasa, go_html_template inatekeleza mtiririko wa msingi huku ikiendelea kupunguza mapengo ya uoanifu . Bado si lengo kali la uoanifu wa 1:1 na Go html/template, hivyo hakiki tabia kwenye templates zako za production.
Iliyotangulia
Orodha ya OSSIfuatayo
README / Maelezo kamili