استخدم تقنية العرض المشابهة لـ HTML/template في لغة Rust.

`go_html_template` هي مكتبة برمجية مكتوبة بلغة Rust تحاكي بشكل كبير سير العمل الأساسي المستخدم في لغة Go للتعامل مع قوالب HTML. تدعم هذه المكتبة بناء الجملة الخاص بالقوالب، وسلاسل العمليات، والهروب الآمن الذي يعتمد على السياق، بالإضافة إلى حظر عناوين URL غير الآمنة، مع الحفاظ على واجهة برمجة تطبيقات (API) مألوفة.

واجهة برمجة تطبيقات (API) تعتمد على نمط لغة Go.

استخدم الدالة `Template::new(...).parse(...).execute(...)` مع ميزات التعريف (define)، والقوالب (template)، والنطاقات (range)، والربط (with)، والسلاسل المعالجة (pipeline).

الهروب الذكي الذي يعتمد على السياق.

يقوم بتطبيق آلية "التحويل الآمن" بناءً على السياق للنصوص المستخدمة في HTML، والخصائص، وعناوين الروابط، وسياقات البرامج النصية وأنماط التصميم، ويمنع استخدام عناوين الروابط غير الآمنة المكتوبة بلغة JavaScript.

وضع "ويب-راست".

مع ميزة "web-rust"، يتم تعطيل الوظائف `parse_files` و `parse_glob` و `parse_fs` لضمان تحميل القوالب من الذاكرة فقط.

الإعداد والاستخدام الأساسي.

أضف الحزمة، ثم تحقق من تدفق التحليل الأولي والتنفيذ الذي ينتج سلسلة نصية. في بيئات تطوير الويب باستخدام لغة رست، استخدم سلاسل نصية مخزنة في الذاكرة بدلاً من واجهات برمجة التطبيقات الخاصة بتحميل الملفات.

قم بتثبيت.

إضافة ملف "go_html_template" إلى قائمة الحمولة.

مثال بلغة رست.

ملف المصدر الرئيسي (main.rs).
استخدام go_html_template::{Template, Value};

دالة main() -> Result<(), Box> {
  ليكن tpl = Template::new("page")
    .parse(r#"<h1>{{.Title}}</h1>\n<p>{{.Body | safe_html}}</p>"#)?;

  ليكن out = tpl.execute_to_string(&serde_json::json!({
    "Title": "go_html_template",
    "Body": "<em>trusted</em>"
  }))?;

  println!("{out}");
  Ok(())
}
حالة التوافق.

قالب HTML الحالي. يقوم بتطبيق سير العمل الأساسية مع الاستمرار في سد الفجوات المتعلقة بالتوافق. لم يتم تحقيق توافق تام بنسبة 1:1 مع مكتبة "html/template" في لغة Go حتى الآن، لذا يرجى التحقق من سلوكها في القوالب المستخدمة في بيئة الإنتاج.