Rust အတွင်း Go html/template စတိုင် rendering.
go_html_template သည် Go html/template ၏ အဓိက workflow များကို Rust ထဲတွင် ပြန်လည်ဖော်ပြသော crate ဖြစ်သည်။ ရင်းနှီးသော API ပုံစံကို ထိန်းထားစဉ် template syntax, pipeline, context-aware escaping နှင့် မလုံခြုံသော URL scheme များကို ပိတ်ဆို့ခြင်းတို့ကို ပံ့ပိုးသည်။
Go လို Template API
define/template/range/with/pipeline စွမ်းဆောင်ရည်များနှင့်အတူ Template::new(...).parse(...).execute(...) ကို အသုံးပြုပါ။
အခြေအနေသတိပြု escaping
HTML စာသား၊ attributes၊ URL attributes နှင့် script/style contexts များအတွက် 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 flow ကို စစ်ဆေးပါ။ web-rust ပတ်ဝန်းကျင်တွင် file-loading API များအစား in-memory template string များကို အသုံးပြုပါ။
တပ်ဆင်ရန်
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 သည် လက်ရှိတွင် အခြေခံ workflow များကို အကောင်အထည်ဖော်ထားပြီး compatibility gap များကို ဆက်လက်ဖြည့်ဆည်းနေသည် ။ ၎င်းသည် Go html/template နှင့် တိကျသော 1:1 ကိုက်ညီမှု ရည်မှန်းချက်တစ်ခု မဟုတ်သေးသောကြောင့် သင့် production template များတွင် အပြုအမူကို စစ်ဆေးပါ။
ယခင်
OSS စာရင်းနောက်တစ်ခု
README / အသေးစိတ် သတ်မှတ်ချက်များ