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.
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.
Anterior.
Lista OSS.