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.

src/main.rs
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.