Renderim në Rust në stilin e Go html/template.
go_html_template është një crate Rust që pasqyron rrjedhat kryesore të punës të Go html/template. Ai mbështet sintaksën e template-ve, pipeline-et, escapimin sipas kontekstit dhe bllokimin e skemave të pasigurta URL, duke ruajtur një formë të njohur të API-së.
API e template-ve si në Go
Përdor Template::new(...).parse(...).execute(...) me veçoritë define/template/range/with/pipeline.
Escapim sipas kontekstit
Zbaton escapim sipas kontekstit për tekst HTML, atribute, atribute URL dhe kontekste script/style, dhe bllokon URL-të e pasigurta javascript:.
Modaliteti web-rust
Me veçorinë web-rust, parse_files/parse_glob/parse_fs çaktivizohen që të mund të detyrohet ngarkimi i template-ve vetëm nga memoria.
Konfigurimi dhe përdorimi bazë
Shto crate-in, pastaj verifiko një rrjedhë minimale parse + execute_to_string. Në mjediset web-rust, përdor vargje template në memorie në vend të API-ve të ngarkimit nga skedarë.
Instalo
cargo add go_html_template
Shembull në 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(())
}
Gjendja e përputhshmërisë
go_html_template aktualisht zbaton rrjedhat kryesore të punës ndërsa vazhdon të mbyllë boshllëqet e përputhshmërisë . Ende nuk është një objektiv i rreptë përputhshmërie 1:1 me Go html/template, prandaj verifiko sjelljen në template-t e prodhimit.
E mëparshmja
Lista OSS