Go html/template stila atveide Rust valodā.

go_html_template ir Rust crate, kas atdarina galvenās Go html/template darba plūsmas. Tas atbalsta veidņu sintaksi, pipelines, kontekstjutīgu escaping un nedrošu URL shēmu bloķēšanu, vienlaikus saglabājot pazīstamu API formu.

Go līdzīgs veidņu API

Izmantojiet Template::new(...).parse(...).execute(...) kopā ar define/template/range/with/pipeline iespējām.

Kontekstjutīga escapēšana

Piemēro kontekstjutīgu escaping HTML tekstam, atribūtiem, URL atribūtiem un script/style kontekstiem, kā arī bloķē nedrošus javascript: URL.

web-rust režīms

Ar web-rust funkciju parse_files/parse_glob/parse_fs ir atspējoti, lai varētu izmantot tikai atmiņā ielādētus veidņu tekstus.

Uzstādīšana un pamata lietošana

Pievienojiet crate, pēc tam pārbaudiet minimālu parse + execute_to_string plūsmu. web-rust vidē izmantojiet atmiņā glabātus veidņu tekstus, nevis failu ielādes API.

Uzstādīt

cargo add go_html_template

Rust piemērs

src/main.rs
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(())
}
Saderības statuss

go_html_template pašlaik ievieš galvenās darba plūsmas, vienlaikus turpinot mazināt saderības nepilnības . Tas vēl nav stingrs 1:1 saderības mērķis ar Go html/template, tāpēc pārbaudiet uzvedību savās produkcijas veidnēs.