Go html/template-stijl rendering in Rust.
go_html_template is een Rust-crate die de belangrijkste Go html/template-werkstromen nabootst. Het ondersteunt templatesyntaxis, pipelines, contextbewuste escaping en het blokkeren van onveilige URL-schema's, terwijl het een vertrouwde API-structuur behoudt.
Go-achtige Template-API
Gebruik `Template::new(...).parse(...).execute(...)` met de functies voor definities, templates, bereiken, "with" en pipelines.
Contextbewuste escaping
Past contextbewuste escaping toe op HTML-tekst, attributen, URL-attributen en script-/stijlsecties, en blokkeert onveilige javascript:-URL's.
web-rust modus
Met de web-rust feature worden parse_files/parse_glob/parse_fs uitgeschakeld zodat laden vanuit geheugen kan worden afgedwongen.
Setup en basisgebruik
Voeg de crate toe en controleer vervolgens een minimale parseer- en uitvoerflow naar een string. In web-rust-omgevingen gebruikt u geheugen-gebaseerde template-strings in plaats van API's voor het laden van bestanden.
Installeren
cargo add go_html_template
Rust-voorbeeld
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(())
}
Compatibiliteitsstatus
go_html_template implementeert momenteel de belangrijkste werkstromen terwijl het compatibiliteitsverschillen blijft dichten . Het is nog geen strikt 1:1 compatibiliteitsdoel met Go html/template, dus verifieer het gedrag in uw productietemplates.
Vorige
OSS-lijstVolgende
README / Volledige specificaties