Implementación de renderizado al estilo de HTML/template en Rust.

`go_html_template` es una biblioteca de Rust que replica los principales flujos de trabajo de Go para plantillas HTML. Soporta la sintaxis de plantillas, las canalizaciones (pipelines), el escape de datos sensible al contexto y el bloqueo de esquemas de URL inseguros, manteniendo al mismo tiempo una estructura de API familiar.

API de plantillas similar a Go.

Utilice `Template::new(...).parse(...).execute(...)` con las funciones de definición, plantilla, rango, "with" y canalización.

Escape contextualizado.

Aplica un sistema de escape adaptado al contexto para texto HTML, atributos, atributos de URL y contextos de script/estilo, y bloquea las URLs de JavaScript potencialmente peligrosas.

Modo web-rust.

Con la función "web-rust", las funciones `parse_files`, `parse_glob` y `parse_fs` se desactivan para poder forzar la carga de plantillas en memoria.

Configuración y uso básico.

Agregue la biblioteca, y luego verifique un flujo mínimo de análisis y ejecución que genere una cadena de texto. En entornos web con Rust, utilice cadenas de texto almacenadas en memoria en lugar de APIs para cargar archivos.

Instalar.

cargo add go_html_template

Ejemplo en Rust.

src/main.rs
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(()) }
Estado de compatibilidad.

La plantilla HTML actual es "go_html_template". Implementa los flujos de trabajo fundamentales al tiempo que sigue abordando las incompatibilidades. Aún no se ha logrado una compatibilidad total y directa con la biblioteca `html/template` de Go, por lo que es importante verificar el comportamiento en sus plantillas de producción.