Рэалізацыя рэндэрынгу ў стылі 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.
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, таму, калі ласка, праверце працу ў вашых прадукцыйных шаблонах.
Папярэдняе.
Спіс праектаў з адкрытым зыходным кодам.