Realiseer HTML-rendering in Rust, vergelijkbaar met de werking van html/template.
`go_html_template` is een Rust-bibliotheek die de belangrijkste functionaliteiten van Go's html/template-systeem nabootst. Het ondersteunt templatesyntaxis, pijplijnen, contextbewust escapen en het blokkeren van onveilige URL-schema's, terwijl het een vertrouwde API-structuur behoudt.
Een template-API in de stijl van Go.
Gebruik `Template::new(...).parse(...).execute(...)` met de functies voor definities, templates, bereiken, "with" en pipelines.
Contextbewust ontsnappen.
Past context-afhankelijke beveiligingsmaatregelen toe op HTML-tekst, attributen, URL-attributen en script-/stijlsecties, en blokkeert potentieel gevaarlijke JavaScript-URL's.
Web-roestmodus.
Met de functie "web-rust" worden de functies `parse_files`, `parse_glob` en `parse_fs` uitgeschakeld, zodat het laden van sjablonen in het geheugen kan worden afgedwongen.
Installatie en basisgebruik.
Voeg de crate toe en controleer vervolgens een minimale parseer- en uitvoerflow naar een string. In web-Rust-omgevingen, gebruik geheugen-gebaseerde template-strings in plaats van API's voor het laden van bestanden.
Installeren.
cargo add go_html_template
Voorbeeld van 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(())
}
Compatibiliteitsstatus.
`go_html_template` momenteel. implementeert essentiële werkprocessen en blijft tegelijkertijd compatibiliteitsproblemen oplossen. Het is nog niet volledig compatibel met de Go html/template bibliotheek, dus controleer het gedrag in uw productietemplates.
Vorige.
OSS-lijst.Volgende.
README / Volledige specificaties