Go html/template -tyylinen renderöinti Rustissa
go_html_template on Rust-crate, joka jäljittelee tärkeimpiä Go html/template -työnkulkuja. Se tukee template-syntaksia, pipelineja, kontekstitietoista escapingia ja turvattomien javascript:-URL-osoitteiden estoa säilyttäen tutun API-muodon.
Go-tyylinen Template API
Käytä Template::new(...).parse(...).execute(...) yhdessä define/template/range/with/pipeline-ominaisuuksien kanssa.
Kontekstitietoinen escaping
Soveltaa kontekstitietoista escapingia HTML-tekstiin, attribuutteihin, URL-attribuutteihin sekä script/style-konteksteihin ja estää turvattomat javascript:-URL:t.
web-rust-tila
web-rust-ominaisuuden kanssa parse_files/parse_glob/parse_fs poistuvat käytöstä, jotta templatejen lataus voidaan pakottaa tapahtumaan muistista.
Asennus ja peruskäyttö
Lisää crate ja varmista sitten minimaalinen parse + execute_to_string -työnkulku. web-rust-ympäristöissä käytä muistissa olevia template-merkkijonoja tiedostolataavien API:en sijaan.
Asenna
cargo add go_html_template
Rust-esimerkki
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(())
}
Yhteensopivuuden tila
go_html_template toteuttaa ydin-työnkulut ja kaventaa samalla yhteensopivuusaukkoja . Se ei vielä tavoittele tarkkaa 1:1-yhteensopivuutta Go html/template -paketin kanssa, joten tarkista toiminta omissa tuotantotemplateissasi.
Edellinen
OSS-luetteloSeuraava
README / Täydet määritykset