Go html/template'i laadne renderdamine Rustis
go_html_template on Rusti crate, mis peegeldab Go html/template'i peamisi töövooge. See toetab mallisüntaksit, torusid, kontekstitundlikku paopõgenemist ja ohtlike URL-skeemide blokeerimist, säilitades tuttava API kuju.
Go-laadne Template API
Kasuta Template::new(...).parse(...).execute(...) koos define/template/range/with/pipeline võimalustega.
Kontekstitundlik paopõgenemine
Rakendab kontekstitundlikku escaping'ut HTML-teksti, atribuutide, URL-atribuutide ning script/style kontekstide jaoks ja blokeerib ohtlikud javascript: URL-id.
web-rust režiim
Kui web-rust funktsioon on sees, siis parse_files/parse_glob/parse_fs on keelatud, et sundida kasutama mälusiseseid malle.
Seadistus ja põhiline kasutus
Lisa crate, seejärel kontrolli minimaalset parse + execute_to_string töövoogu. web-rust keskkondades kasuta faililaadimise API-de asemel mälusiseseid mallistringe.
Paigaldus
cargo add go_html_template
Rusti näide
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(())
}
Ühilduvuse olek
go_html_template praegu rakendab põhivooge ja vähendab järk-järgult ühilduvuslünki . See ei ole veel Go html/template'i range 1:1 ühilduvuse siht, seega kontrolli käitumist oma tootmismallides.
Eelmine
OSS loend