Upodabljanje v slogu Go html/template v Rustu
go_html_template je crate za Rust, ki zrcali glavne poteke dela Go html/template. Podpira sintakso predlog, pipeline-e, escaping glede na kontekst in blokiranje nevarnih URL shem, pri tem pa ohranja poznano obliko API-ja.
Template API v slogu Go
Uporabite Template::new(...).parse(...).execute(...) s funkcijami define/template/range/with/pipeline.
Escaping glede na kontekst
Uporabi escaping glede na kontekst za HTML besedilo, atribute, URL atribute in kontekste script/style ter blokira nevarne javascript: URL-je.
Način web-rust
S funkcijo web-rust so parse_files/parse_glob/parse_fs onemogočeni, tako da je mogoče uveljaviti nalaganje predlog samo iz pomnilnika.
Namestitev in osnovna uporaba
Dodajte crate, nato preverite minimalen potek parse + execute_to_string. V okoljih web-rust uporabite nize predlog v pomnilniku namesto API-jev za nalaganje datotek.
Namestitev
cargo add go_html_template
Primer v Rustu
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(())
}
Stanje združljivosti
go_html_template trenutno izvaja osnovne delovne tokove in hkrati še naprej zapira vrzeli v združljivosti . Še ni strogi cilj 1:1 združljivosti z Go html/template, zato preverite vedenje v svojih produkcijskih predlogah.
Nazaj
Seznam OSSNaprej
README / Polne specifikacije