Rust मा Go html/template-शैलीको rendering।

go_html_template एउटा Rust crate हो जसले Go html/template का मुख्य workflow हरूलाई नजिकबाट पुनःनिर्माण गर्छ। यसले template syntax, pipeline, context-aware escaping, र unsafe URL scheme blocking समर्थन गर्छ, जबकि API को परिचित रूप कायम राख्छ।

Go-जस्तै Template API

define/template/range/with/pipeline सुविधासहित Template::new(...).parse(...).execute(...) प्रयोग गर्नुहोस्।

सन्दर्भअनुसार Escaping

HTML text, attribute, URL attribute, र script/style context का लागि context-aware escaping लागू गर्छ, र असुरक्षित javascript: URL लाई रोक्छ।

web-rust मोड

web-rust feature मा parse_files/parse_glob/parse_fs बन्द हुन्छन्, जसले in-memory template loading कडाइका साथ प्रयोग गर्न दिन्छ।

सेटअप र आधारभूत प्रयोग

crate थप्नुहोस्, त्यसपछि न्यूनतम parse + execute_to_string प्रवाह जाँच गर्नुहोस्। web-rust वातावरणमा file-loading API को सट्टा in-memory 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 अनुकूलता लक्ष्य अझै होइन, त्यसैले production template मा प्रयोग गर्नु अघि व्यवहार जाँच गर्नुहोस्।