Rust-та Go html/template стиліндегі рендерлеу
go_html_template - Go html/template-тің негізгі жұмыс ағындарын қайталайтын Rust crate. Ол template синтаксисін, pipeline-дарды, контекстке сезімтал escaping-ті және қауіпті URL scheme-дерін бұғаттауды қолдайды, әрі таныс API пішінін сақтайды.
Go тәрізді Template API
Template::new(...).parse(...).execute(...) пайдаланыңыз, define/template/range/with/pipeline мүмкіндіктерімен.
Context-aware 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 / Толық спецификация