DIET-Шаблони

Для того, щоб спростити написання веб-сторінок, 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

Синтаксис містить відступи, тому немає необхідності вводити теги для закриття.

Всі шаблони DIET компілюються і зберігаються у пам'яті для досягнення максимальної продуктивності. Шаблони DIET дозволяють використовувати D-код, який обчислюється при відображенні сторінки. Поодинокі вирази розміщуються у виразі #{ 1 + 1 } і можуть бути використані будь-де у шаблоні. Всі рядки D-коду мають префікс - на початку рядка:

- foreach(title; titles)
  h1 #{title}

Таким чином, можуть бути використані складні вирази, а також можна визначити функції, які використовуються для остаточного виводу HTML.

Шаблони DIET складаються за допомогою CTFE і повинні знаходитися у теці views у стандартному проекті vibe.d. Для того, щоб насправді відтворити шаблон DIET, використовуйте функцію render в URL-обробнику:

void foo(HTTPServerResponse res) {
    string pageTitle = "Привіт";
    int test = 10;
    res.render!("my-template.dt", pageTitle, test);
}

Усі змінні D, які є доступними для шаблону DIET передаються в якості параметрів шаблону для функції render.

rdmd playground.d