Pagre-render na parang Go html/template sa Rust.

Ang go_html_template ay isang Rust crate na tumutulad sa mga pangunahing workflow ng Go html/template. Sinusuportahan nito ang template syntax, pipelines, context-aware escaping, at pagharang sa hindi ligtas na URL schemes habang pinananatiling pamilyar ang anyo ng API.

Go-like na Template API

Gamitin ang Template::new(...).parse(...).execute(...) kasama ang define/template/range/with/pipeline features.

Pagtakas Ayon sa Konteksto

Naglalapat ng context-aware escaping para sa HTML text, attributes, URL attributes, at script/style contexts, at hinaharang ang hindi ligtas na javascript: URLs.

Mode na web-rust

Kapag naka-enable ang web-rust feature, naka-disable ang parse_files/parse_glob/parse_fs upang maipatupad ang in-memory na paglo-load ng template.

Pag-setup at Batayang Paggamit

Idagdag ang crate, pagkatapos ay beripikahin ang pinakamaliit na parse + execute_to_string flow. Sa mga kapaligirang web-rust, gumamit ng mga template string na nasa memorya sa halip na mga API para sa pag-load ng file.

I-install

cargo add go_html_template

Halimbawa sa Rust

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(())
}
Kalagayan ng Pagkakatugma

Ang go_html_template ay kasalukuyang nagpapatupad ng mga pangunahing workflow habang patuloy na isinasara ang mga puwang sa compatibility . Hindi pa ito mahigpit na 1:1 compatibility target sa Go html/template, kaya beripikahin ang asal nito sa inyong production templates.