Rust میں Go html/template طرز کی rendering۔
go_html_template ایک Rust crate ہے جو Go html/template کے بنیادی کام کے بہاؤ کی نقل کرتا ہے۔ یہ ٹیمپلیٹ syntax، pipelines، سیاق کے مطابق اخفاء، اور غیر محفوظ URL schemes کو روکنے کی سہولت دیتا ہے، جبکہ API کی مانوس شکل برقرار رکھتا ہے۔
Go جیسا Template API
define/template/range/with/pipeline خصوصیات کے ساتھ Template::new(...).parse(...).execute(...) استعمال کریں۔
سیاق کے مطابق اخفاء
HTML متن، خصوصیات، URL خصوصیات، اور script/style سیاق کے لیے سیاق کے مطابق اخفاء لاگو کرتا ہے، اور غیر محفوظ javascript: URLs کو روکتا ہے۔
web-rust موڈ
web-rust feature کے ساتھ parse_files/parse_glob/parse_fs غیر فعال رہتے ہیں، تاکہ in-memory template loading کو لازمی بنایا جا سکے۔
سیٹ اپ اور بنیادی استعمال
crate شامل کریں، پھر parse + execute_to_string کے کم سے کم flow کی توثیق کریں۔ web-rust ماحول میں فائل لوڈ کرنے والے APIs کے بجائے memory میں موجود template strings استعمال کریں۔
انسٹال کریں
cargo add go_html_template
Rust مثال
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 فی الحال بنیادی workflows نافذ کرتا ہے اور مطابقت کے خلا مسلسل کم کر رہا ہے ۔ یہ ابھی Go html/template کے ساتھ سخت 1:1 مطابقت کا ہدف نہیں ہے، اس لیے اپنی production templates میں رویے کی تصدیق کریں۔
پچھلا
OSS فہرست