په Rust کې د Go html/template په څېر rendering.

go_html_template یو Rust crate دی چې د Go html/template اصلي workflowونه انځوروي. دا د template syntax، pipelineونو، context-aware escaping، او unsafe URL scheme د بندولو ملاتړ کوي، او API یې هم آشنا بڼه ساتي.

د Go په څېر Template API

له Template::new(...).parse(...).execute(...) څخه د define/template/range/with/pipeline ځانګړنو سره کار واخلئ.

د متن له مخې escaping

د HTML متن، attributeونو، URL attributeونو، او script/style contextونو لپاره context-aware escaping پلي کوي او د ناامنو javascript: URL ګانو مخه نیسي.

web-rust حالت

د web-rust feature سره parse_files/parse_glob/parse_fs غیر فعالېږي، څو په حافظه کې د template بارول ټینګ شي.

تنظیم او بنسټیزه کارونه

crate اضافه کړئ، بیا لږ تر لږه parse + execute_to_string جریان وازمویئ. د web-rust چاپېریال کې د فایل-بارولو API پر ځای په حافظه کې template stringونه وکاروئ.

نصب

cargo add go_html_template

د 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(())
}
د مطابقت وضعیت

go_html_template اوس مهال اصلي workflowونه پلي کوي او د مطابقت تشې ورو ورو ډکوي . دا لا تر اوسه د Go html/template سره بشپړ 1:1 مطابقت هدف نه دی، نو په خپل تولیدي template کې چلند حتماً وازمویئ.