Implementare il rendering nello stile di HTML/template in Rust.

`go_html_template` è una libreria Rust che replica i principali flussi di lavoro di Go per la gestione dei template HTML. Supporta la sintassi dei template, le pipeline, la gestione dell'escaping in base al contesto e il blocco di schemi URL non sicuri, mantenendo al contempo un'interfaccia API familiare.

API per modelli nello stile di Go.

Utilizzare `Template::new(...).parse(...).execute(...)` sfruttando le funzionalità di definizione, template, intervallo, "with" e pipeline.

Fuga contestualmente consapevole.

Applica una codifica adattabile al contesto per il testo HTML, gli attributi, gli attributi degli URL e i contesti di script/stile, e blocca gli URL JavaScript potenzialmente pericolosi.

Modalità "web-rust".

Con la funzionalità "web-rust", le funzioni `parse_files`, `parse_glob` e `parse_fs` vengono disabilitate, in modo da poter forzare il caricamento dei modelli direttamente in memoria.

Configurazione e utilizzo di base.

Aggiungere la crate, quindi verificare un flusso minimo di analisi e esecuzione con conversione in stringa. Negli ambienti web-rust, utilizzare stringhe di template in memoria invece di API per il caricamento di file.

Installa.

cargo add go_html_template

Esempio in 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(()) }
Stato di compatibilità.

`go_html_template` attualmente. implementa i processi fondamentali, continuando al contempo a colmare le lacune di compatibilità. Al momento, la compatibilità con il pacchetto `html/template` di Go non è ancora perfetta, quindi verificate il comportamento nei vostri modelli utilizzati in produzione.