Adoptez le rendu de type HTML/template en Rust.
`go_html_template` est une bibliothèque Rust qui reproduit les principaux flux de travail du système `html/template` de Go. Elle prend en charge la syntaxe des modèles, les chaînes de traitement, l'échappement contextuel et le blocage des schémas d'URL non sécurisés, tout en conservant une structure d'API familière.
API de modèles inspirée de Go.
Utilisez la méthode `Template::new(...).parse(...).execute(...)` en intégrant les fonctionnalités de définition, de modèle, de plage, de "with" et de pipeline.
Évasion contextuelle.
Applique une méthode de protection contextuelle pour le texte HTML, les attributs, les attributs d'URL et les contextes de script/style, et bloque les URL JavaScript potentiellement dangereuses.
Mode web-rust.
Avec la fonctionnalité "web-rust", les fonctions `parse_files`, `parse_glob` et `parse_fs` sont désactivées afin de garantir le chargement des modèles en mémoire.
Installation et utilisation de base.
Ajoutez le crate, puis vérifiez le fonctionnement minimal de l'analyse et de l'exécution, en convertissant le résultat en chaîne de caractères. Dans les environnements web utilisant Rust, utilisez des chaînes de caractères en mémoire à la place des API de chargement de fichiers.
Installer.
cargo add go_html_template
Exemple en Rust.
use go_html_template::{Template, Value};
fn main() -> Result<(), Box> {
let tpl = Template::new("page")
.parse(r#"{{.Title}}
{{.Body | safe_html}}
"#)?;
let out = tpl.execute_to_string(&serde_json::json!({
"Title": "go_html_template",
"Body": "trusted"
}))?;
println!("{}", out);
Ok(())
}
Statut de compatibilité.
`go_html_template` actuellement. met en œuvre les flux de travail essentiels tout en continuant de combler les lacunes en matière de compatibilité. Il ne s'agit pas encore d'une compatibilité parfaite avec le module `html/template` de Go, il est donc important de vérifier le comportement dans vos modèles de production.
Précédent.
Liste OSS.