Implementacja renderowania w stylu HTML/template w języku Rust.
`go_html_template` to biblioteka w języku Rust, która naśladuje główne zasady działania systemu szablonów HTML w Go. Obsługuje składnię szablonów, potoki danych, bezpieczne kodowanie dostosowane do kontekstu oraz blokowanie niebezpiecznych schematów URL, przy zachowaniu znajomej struktury interfejsu API.
Interfejs API oparty na wzorcach, podobny do Go.
Użyj funkcji `Template::new(...).parse(...).execute(...)` wraz z funkcjami definiowania, szablonowania, zakresów, instrukcji warunkowych oraz potoków przetwarzania danych.
Unikanie zagrożeń z uwzględnieniem kontekstu.
Zapewnia bezpieczne kodowanie dla tekstu HTML, atrybutów, adresów URL oraz fragmentów kodu JavaScript i stylów, a także blokuje dostęp do potencjalnie niebezpiecznych adresów URL zaczynających się od "javascript:".
Tryb "web-rust".
Funkcja "web-rust" wyłącza funkcje `parse_files`, `parse_glob` i `parse_fs`, co pozwala na wymuszenie ładowania szablonów bezpośrednio z pamięci.
Konfiguracja i podstawowe użycie.
Dodaj bibliotekę, a następnie sprawdź minimalny proces parsowania i wykonania, który generuje ciąg znaków. W środowiskach webowych opartych na Rust, zamiast korzystać z API do ładowania plików, używaj łańcuchów znaków przechowywanych w pamięci.
Zainstaluj.
cargo add go_html_template
Przykład w języku 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 zgodności.
Aktualnie używany szablon HTML. wdraża podstawowe procesy robocze, jednocześnie eliminując problemy związane z kompatybilnością. Obecnie nie jest to jeszcze pełna zgodność z biblioteką `html/template` w języku Go, dlatego należy sprawdzić, jak działa w używanych przez Państwa szablonach.
Poprzedni.
Lista OSS.Następny.
INSTRUKCJA / Pełna specyfikacja.