Pug (bis 2016 Jade) ist eine einrückungsbasierte Template-Engine, die 2010 von TJ Holowaychuk für Node.js entwickelt wurde. Statt schließender Tags bestimmt die Einrückung die HTML-Verschachtelung — Templates werden dadurch deutlich kompakter und lesbarer.

Syntax

doctype html
html
  head
    title= seite.titel
  body
    h1 Hallo #{name}
    ul
      each item in liste
        li= item

Mixins und Vererbung

Mixins sind wiederverwendbare Template-Bausteine:

mixin button(text)
  button.btn= text
+button('Klick mich')

Mit extends layout und block inhalt lassen sich Seiten von einem Grundlayout erben, include partial bindet Fragmente ein. Interpolation funktioniert mit #{variable}, Ausgabe mit Gleichheitszeichen (li= item) oder != für unescaptes HTML.

Pug läuft in Node.js und ist fester Bestandteil des Express-Frameworks. Verwandt: Handlebars-Befehle, Mustache-Befehle und HTML/CSS-Befehle.