Rendering gaya Go html/template dalam Rust.
go_html_template ialah crate Rust yang mencerminkan aliran kerja utama Go html/template. Ia menyokong sintaks template, pipeline, context-aware escaping, dan sekatan skim URL tidak selamat sambil mengekalkan bentuk API yang biasa.
Template API ala Go
Gunakan Template::new(...).parse(...).execute(...) bersama ciri define/template/range/with/pipeline.
Pengekalan konteks
Menerapkan context-aware escaping untuk teks HTML, atribut, atribut URL, dan konteks script/style, serta menyekat URL javascript: yang tidak selamat.
Mod web-rust
Dengan ciri web-rust, parse_files/parse_glob/parse_fs dinyahaktifkan supaya pemuatan template dalam memori boleh dikuatkuasakan.
Persediaan dan Penggunaan Asas
Tambah crate, kemudian sahkan aliran parse + execute_to_string yang minimum. Dalam persekitaran web-rust, gunakan rentetan template dalam memori dan bukannya API pemuatan fail.
Pasang
cargo add go_html_template
Contoh 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(())
}
Status Keserasian
go_html_template pada masa ini melaksanakan aliran kerja teras sambil terus merapatkan jurang keserasian . Ia masih belum menjadi sasaran keserasian 1:1 yang ketat dengan Go html/template, jadi semak tingkah lakunya dalam template production anda.
Sebelumnya
Senarai OSSSeterusnya
README / Spesifikasi Penuh