Rust-இல் Go html/template பாணி rendering

go_html_template என்பது முக்கியமான Go html/template வேலைப்போக்குகளை பிரதிபலிக்கும் Rust crate ஆகும். இது template syntax, pipelines, context-aware escaping, மற்றும் பாதுகாப்பற்ற URL scheme-களைத் தடுக்குதல் ஆகியவற்றை, பரிச்சயமான API வடிவத்துடன் ஆதரிக்கிறது.

Go போன்ற Template API

define/template/range/with/pipeline அம்சங்களுடன் Template::new(...).parse(...).execute(...) பயன்படுத்தவும்.

Context-aware Escaping

HTML உரை, attributes, URL attributes, மற்றும் script/style contexts-க்கு context-aware escaping பயன்படுத்தி, பாதுகாப்பற்ற javascript: URL-களைத் தடுக்கிறது.

web-rust முறை

web-rust feature உடன், parse_files/parse_glob/parse_fs முடக்கப்படும்; இதனால் memory-இல் template loading-ஐ கட்டாயப்படுத்தலாம்.

அமைப்பு மற்றும் அடிப்படை பயன்பாடு

முதலில் crate-ஐச் சேர்த்து, குறைந்தபட்ச parse + execute_to_string flow-ஐச் சரிபார்க்கவும். web-rust சூழல்களில், file-loading API-களுக்கு பதிலாக 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 templates-இல் நடத்தைப் பரிசோதிக்கவும்.