Implementirajte renderiranje u stilu HTML/template jezika u Rustu.
`go_html_template` je Rust biblioteka koja oponaša glavne radne tokove Go-ovog modula `html/template`. Pruža podršku za sintaksu predložaka, nizove operacija, sigurnosno prilagođeno izbjegavanje znakova, te blokiranje opasnih URL shema, uz zadržavanje poznatog API-ja.
API za predloške, sličan Go-u.
Koristite funkciju `Template::new(...).parse(...).execute(...)` uz mogućnosti definiranja, predložaka, raspona, uvjetnih izjava i cjevovoda.
Poboljšano izbjegavanje, prilagođeno kontekstu.
Primjenjuje prilagodljivu zaštitu (escaping) za HTML tekst, atribute, URL adrese i kontekste skripti/stilova, te blokira opasne JavaScript URL adrese.
Način rada "web-rust".
Funkcija "web-rust" onemogućuje funkcije `parse_files`, `parse_glob` i `parse_fs` kako bi se osiguralo učitavanje predložaka isključivo u memoriji.
Postavljanje i osnovna upotreba.
Dodajte biblioteku, a zatim provjerite minimalni proces parsiranja i izvršavanja koji rezultira tekstualnim izlazom. U okruženjima s web-rust tehnologijom, koristite tekstualne šablone pohranjene u memoriji umjesto API-ja za učitavanje datoteka.
Instaliraj.
cargo: dodaj go_html_template.
Primjer korištenja jezika Rust.
koristi go_html_template::{Template, Value};
fn main() -> Result<(), Box> {
let tpl = Template::new("page")
.parse(r#"{{.Title}}
{{.Body | safe_html}}
"#)?;
let out = tpl.execute_to_string(&serde_json::json!({
"Title": "go_html_template",
"Body": "trusted"
}))?;
println!("{}", out);
Ok(())
}
Status kompatibilnosti.
Trenutno, varijabla "go_html_template" sadrži... implementira ključne radne procese, istovremeno nastavljajući rješavati probleme kompatibilnosti. Još uvijek nije postignuta potpuna kompatibilnost s Go html/template-om, stoga provjerite ponašanje u vašim proizvodnim predložcima.
Prethodno.
Popis OSS.