Rust ичинде Go html/template стилиндеги рендерлөө
go_html_template - Go html/template'дин негизги иш агымдарын кайталай турган Rust crate. Ал template синтаксисин, pipeline'дерди, контекстке сезимтал escaping'ди жана коопсуз эмес URL схемаларын бөгөттөөнү колдойт, ошол эле учурда тааныш API түзүлүшүн сактайт.
Go сымал Template API
Template::new(...).parse(...).execute(...) ыкмасын define/template/range/with/pipeline мүмкүнчүлүктөрү менен колдонуңуз.
Контекстке сезимтал escaping
HTML тексти, атрибуттар, URL атрибуттары, script/style контексттери үчүн контекстке сезимтал escaping колдонот жана кооптуу javascript: URL'дерин бөгөттөйт.
web-rust режими
web-rust мүмкүнчүлүгү күйгөндө parse_files/parse_glob/parse_fs өчүрүлөт, ошондуктан шаблондорду жаддан жүктөөнү мажбурлоого болот.
Орнотуу жана негизги колдонуу
Crate'ти кошуп, минималдуу parse + execute_to_string агымын текшериңиз. web-rust чөйрөлөрүндө файл жүктөө API'леринин ордуна жаддагы template саптарын колдонуңуз.
Орнотуу
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 азыр негизги иш агымдарды ишке ашырып, шайкештик боштуктарын жапканды улантууда . Ал азырынча Go html/template үчүн катуу 1:1 шайкештик максаты эмес, ошондуктан өндүрүштүк шаблондоруңузда жүрүм-турумду текшериңиз.
Мурунку
OSS тизмесиКийинки
README / Толук спецификация