Чтобы упростить создание веб-страниц, в vibe.d включена поддержка шаблонов DIET, предоставляющих упрощённый синтаксис для HTML-страниц. DIET основаны на шаблонах Jade.
doctype html
html(lang="en")
head
// Код D исполняется
title #{pageTitle}
// атрибуты
script(type='text/javascript')
if (foo) bar(1 + 5)
// ID = body-id
// style = the-style
body#body-id.the-style
h1 DIET template
Синтаксис строится на отступах, поэтому закрывающие теги вставлять не нужно.
Все шаблоны DIET компилируются и хранятся в
памяти для обеспечения максимального быстродействия.
Шаблоны DIET позволяют использовать код D, который
исполняется при генерации страницы. Одиночные
выражения записываются в блоках вида #{ 1 + 1}
.
Их можно использовать в любом месте шаблона.
Полноценные строки кода D записываются с префиксом
-
на новой строке:
- foreach(title; titles)
h1 #{title}
Таким образом можно использовать сложные выражения и даже определять функции, используемые для вывода HTML.
Шаблоны DIET компилируются с помощью CTFE;
они должны быть размещены в папке views
при использовании
стандартного проекта vibe.d. Для применения шаблона
в обработчике URL используется функция render
:
void foo(HTTPServerResponse res) {
string pageTitle = "Hello";
int test = 10;
res.render!("my-template.dt", pageTitle, test);
}
Все переменные D, доступные в шаблоне DIET,
передаются в виде параметров шаблона render
.