Рэалізацыя рэндэрынгу ў стылі HTML/template на мове Rust.

`go_html_template` – гэта Rust-бібліятэка, якая імітуе асноўныя працэсы працы з шаблонамі HTML у мове Go. Яна падтрымлівае сінтакс шаблонаў, паслядоўнасць аперацый, бяспечнае эскапіраванне з улікам кантэксту, а таксама блакаванне небяспечных схем URL-адрасаў, пры гэтым захаваўшы зразумелую структуру API.

Шаблонны API, асноўны прынцыпы працы якога падобныя да мовы Go.

Выкарыстоўвайце функцыі `Template::new(...).parse(...).execute(...)` з магчымасцямі вызначэння шаблонаў, апрацоўкі дыяпазонаў, выкарыстання ўмоўных пераходаў і канвеераў.

Аўтаномнае працуючае праграмнае забяспечванне, якое ўлічвае кантэкст.

Ужываецца адаптыўнае эскапіраванне для тэксту HTML, атрыбутаў, URL-адрасаў і кантэкстаў для сцэнарыяў/стыляў, а таксама блакуецца выкарыстанне небяспечных JavaScript-адрасаў.

Рэжым "web-rust".

З уключанай функцыяй "web-rust", функцыі `parse_files`, `parse_glob` і `parse_fs` адключаюцца, каб забяспечыць загрузку шаблонаў з аператыўнай памяці.

Настройка і асноўныя функцыі выкарыстання.

Дадайце пакет, а затым праверце мінімальную схему парсавання і выканання з пераўтварэннем у строчку. У асяроддзях праграміравання на Rust для вэб-праектаў выкарыстоўвайце строкі ў памяці замест API для загрузкі файлаў.

Усталяваць.

cargo add go_html_template

Прыклад выкарыстання мовы 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(()) }
Статус сумяшчальнасці.

Шаблон go_html_template у цяперашні момант. рэалізуе асноўныя працоўныя працэсы, адначасова працягваючы ліквідацыю праблем сумяшчальнасці. Яшчэ не дасягнута поўнае сумяшчальнасць з шаблонізатарам `html/template` у мове Go, таму, калі ласка, праверце працу ў вашых прадукцыйных шаблонах.