Rustda Go html/template uslubidagi render.

go_html_template - Go html/template ning asosiy ish jarayonlarini aks ettiruvchi Rust crate. U tanish API shaklini saqlagan holda template sintaksisi, pipeline lar, kontekstga sezgir escaping va xavfli URL sxemalarini bloklashni qo'llab-quvvatlaydi.

Go uslubidagi Template API

define/template/range/with/pipeline imkoniyatlari bilan Template::new(...).parse(...).execute(...) dan foydalaning.

Kontekstga sezgir escaping

HTML matni, atributlar, URL atributlari va script/style kontekstlari uchun kontekstga sezgir escaping qo'llaydi hamda xavfli javascript: URL larini bloklaydi.

web-rust rejimi

web-rust funksiyasi bilan parse_files/parse_glob/parse_fs o'chiriladi, shunda xotiradagi template yuklashni majburlash mumkin bo'ladi.

Sozlash va asosiy foydalanish

Crate ni qo'shing, so'ng minimal parse + execute_to_string oqimini tekshiring. web-rust muhitlarida fayldan yuklash API lari o'rniga xotiradagi template satrlaridan foydalaning.

O'rnatish

cargo add go_html_template

Rust misoli

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(())
}
Moslik holati

go_html_template hozircha moslikdagi bo'shliqlarni yopishda davom etar ekan, asosiy ish jarayonlarini amalga oshiradi . U hali Go html/template bilan qat'iy 1:1 moslik maqsadi emas, shuning uchun production templatelaringizda xatti-harakatini tekshiring.