Implemente renderização no estilo de HTML/template em Rust.

`go_html_template` é uma biblioteca (crate) em Rust que replica os principais fluxos de trabalho do sistema `html/template` do Go. Ela oferece suporte à sintaxe de templates, pipelines, escape de dados com base no contexto e bloqueio de esquemas de URL inseguros, mantendo uma API com uma estrutura familiar.

API de modelos semelhante ao Go.

Utilize `Template::new(...).parse(...).execute(...)` com os recursos de definição, modelo, intervalo, "with" e pipeline.

Escape adaptado ao contexto.

Aplica a técnica de escape adaptada ao contexto para texto HTML, atributos, atributos de URL e contextos de script/estilo, e bloqueia URLs JavaScript potencialmente perigosas.

Modo web-rust.

Com a funcionalidade "web-rust", os métodos `parse_files`, `parse_glob` e `parse_fs` são desativados para garantir que os modelos sejam carregados na memória.

Configuração e uso básico.

Adicione o pacote e, em seguida, verifique um fluxo mínimo de análise e execução para conversão em string. Em ambientes web com Rust, utilize strings de modelo armazenadas na memória em vez de APIs para carregamento de arquivos.

Instalar.

cargo add go_html_template

Exemplo em 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(()) }
Status de compatibilidade.

go_html_template atualmente. Implementa fluxos de trabalho essenciais, ao mesmo tempo em que continua a resolver problemas de compatibilidade. A compatibilidade com o pacote `html/template` do Go ainda não é perfeita, sendo uma relação de 1:1. Portanto, verifique o comportamento nas suas templates de produção.