## Pug

### Basic document

    doctype html
    html(lang='en')
      h1.class#id(name='hi')
        | This is some text, hello there,
        = name

      - javascript()

### Elements

    div
      | Just a div

    .search
      | A div, with class 'search'

    h1 A heading with text

    h1= page.title

    div.class
    div.class1.class2
    h1.header

### Attributes

    input(type='text' name='q' autofocus)

    - var authenticated = true
    body(class=authenticated ? 'authed' : 'anon')

See: Attributes

### Comments

    // This comment will appear in the HTML

    //- This is a silent comment

    //-
      Nesting inside a comment creates
      a comment block

See: Comments

### Iteration

    ul
      each user in users
        li= user

### Layouts

    //- page.pug
    extends layout.pug

    block title
      | hello

    block content
      | hello

    //- layout.pug
    title
      block title
    body
      block content

### Includes (partials)

    include ./includes/head.pug

    include:markdown article.md

See: Includes

### Multiline text

    p.
      This is text that doesn't need to
      be prefixed by pipes.

    script.
      // It's great for raw
      // JavaScript and stuff
      alert('hello')

### Conditionals

    if authenticated
      a(href='/logout') Sign out
    else
      a(href='/login') Sign in

See: Conditionals

## Mixins

    mixin list
      ul
        ···

    +list

Mixins allow you to create reusable code blocks. See: Mixins

### Mixin attributes

    mixin pet(name)
      span.pet= name

    +pet('cat')

See: Mixin attributes

### Mixin blocks

    mixin article(title)
      article
        h2.title= title
        block

    +article('hello there')
      p Content goes here

See: Mixin blocks

0 Comments for this cheatsheet. Write yours!