テンプレートエンジンjade学習


言語リファレンス


ラベルリスト
  • doctype
  • Tags
  • Block Expansion

  • Attributes
  • Boolean Attributes
  • Class Attributes
  • Class Literal
  • ID Literal

  • Plain Text
  • Piped Text
  • Inline in a Tag
  • Block in a Tag

  • Code
  • Unbuffered Code
  • Buffered Code
  • Unescaped Buffered Code

  • Comments
  • Block Comments

  • Conditionals
  • Iteration
  • Case
  • Case Fall Through
  • Block Expansion

  • Filters
  • Mixins
  • Includes

  • doctype


    ドキュメントのタイプについてはhtmlがデフォルトです
    doctype html
    <!DOCTYPE html>
    
    

    簡潔なドキュメントタイプタグ
    xml

    transitional

    strict

    frameset

    1.1

    basic

    mobile

    You can also use your own literal custom doctype:
    doctype html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN">

    タブ


    デフォルトでは、各行の最初の(またはスペースの後の(スペースのみ))はhtmlラベルを表し、インデントを埋め込み、htmlドキュメント構造のようなスタイルを作成できます.
    ul
    
    li Item A
    
    li Item B
    
    li Item C
    <ul>
    
      <li>Item A</li>
    
      <li>Item B</li>
    
      <li>Item C</li>
    
    </ul>
    
    

    JAdeもそのラベルが自分で閉じることができることを知っています.
    img
    <img/>
    
    

    Block拡張


    JAdeが提供するインライン対応埋め込みラベル
    a: img
    <a><img/></a>

    ツールバーの


    ラベル属性はhtmlのように見えますが、値はルールのjavascriptにすぎません.
    a(href='google.com') Google
    
    a(class='button', href='google.com') Google
    <a href="google.com">Google</a>
    
    <a class="button" href="google.com">Google</a>
    
    

    通常のjavascript拡張機能も使用できます.
    - var authenticated = true
    
    body(class=authenticated?'authed':'anon')
    <body class="authed"></body>
    
    

    Booleanプロパティ

    input(type='checkbox', checked)
    
    input(type='checkbox', checked=true)
    
    input(type='checkbox', checked=false)
    
    input(type='checkbox', checked=true.toString())
    <input type="checkbox" checked="checked" />
    
    <input type="checkbox" checked="checked" />
    
    <input type="checkbox" />
    
    <input type="checkbox" checked="true" />
    
    
    doctype html
    
    input(type='checkbox', checked)
    
    input(type='checkbox', checked=true)
    
    input(type='checkbox', checked=false)
    
    input(type='checkbox', checked=true && 'checked')
    <!DOCTYPE html>
    
    <input type="checkbox" checked>
    
    <input type="checkbox" checked>
    
    <input type="checkbox">
    
    <input type="checkbox" checked="checked">
    
    

    Class属性


    クラス属性は単純な文字列にすぎないが、javascriptから生成された一連のクラス名を表すことができる.
    - var classes = ['foo', 'bar', 'baz']
    
    a(class=classes)
    
    //- the class attribute may also be repeated to merge arrays
    
    a.bing(class=classes class=['bing'])
    <a class="foo bar baz"></a>
    
    <a class="foo bar baz bing"></a>
    
    

    Class字面名


    htmlラベルのclass属性の名前です
    a.button
    <a class="button"></a>
    
    

    デフォルトの表示はdivです.
    .content
    <div class="content"></div>
    
    

    ID字面名


    htmlラベルのid属性の名前です
    a#main-link
    <a id="main-link"></a>
    
    

    デフォルトはdiv
    #content
    <div id="content"></div>

    テキストを保存


    ジェイドは三中方式を提供した.  、

    Piped Text

    |文字の使用
    | Plain text can include <strong>html</strong>
    
    p
    
    | It must always be on its own line
    Plain text can include <strong>html</strong>
    
    <p>It must always be on its own line</p>
    
    

    インラインラベル


     
    p Plain text can include <strong>html</strong>
    <p>Plain text can include <strong>html</strong></p>
    
    

    ブロックラベル


    使用する良い例はscriptとstyleです.このようにするには、.を1つのラベルの後に使用します(スペースはありません)
    script.
    
      if (usingJade)
    
        console.log('you are awesome')
    
      else
    
        console.log('use jade')
    <script>
    
      if (usingJade)
    
        console.log('you are awesome')
    
      else
    
        console.log('use jade')
    
    </script>

    コード#コード#


    Jadeはjavascriptコードの作成を行うことができる.

    キャッシュされていないコード


    Unbufferedコードは-で開始する.
    - for (var x = 0; x < 3; x++)
    
    li item
    <li>item</li>
    
    <li>item</li>
    
    <li>item</li>
    
    

    キャッシュコード

    =開始
    p
    
    = 'This code is <escaped>!'
    <p>This code is &lt;escaped&gt;!</p>
    
    

     
    p= 'This code is' + ' <escaped>!'
    <p>This code is &lt;escaped&gt;!</p>
    
    

     

    コメント

     

    // just some paragraphs
    
    p foo
    
    p bar
    <!-- just some paragraphs -->
    
    <p>foo</p>
    
    <p>bar</p>
    
    
    //- will not output within markup
    
    p foo
    
    p bar
    <p>foo</p>
    
    <p>bar</p>
    
    

    ブロックコメント

    body
    
    //
    
     As much text as you want
    
     can go here.
    <body>
    
      <!--
    
      As much text as you want
    
      can go here.
    
      -->
    
    </body>


    を す
    - var user = { description: 'foo bar baz' }
    
    #user
    
    if user.description
    
    h2 Description
    
    p.description= user.description
    
    else
    
    h1 Description
    
    p.description User has no description
    <div id="user">
    
      <h2>Description</h2>
    
      <p class="description">foo bar baz</p>
    
    </div>
    
    
    unless user.isAnonymous
    
    p You're logged in as #{user.name}
    if !user.isAnonymous
    
    p You're logged in as #{user.name}

    ul
    
    each val in [1, 2, 3, 4, 5]
    
    li= val
    <ul>
    
      <li>1</li>
    
      <li>2</li>
    
      <li>3</li>
    
      <li>4</li>
    
      <li>5</li>
    
    </ul>
    
    

     
    ul
    
    each val, index in ['zero', 'one', 'two']
    
    li= index + ': ' + val
    <ul>
    
      <li>0: zero</li>
    
      <li>1: one</li>
    
      <li>2: two</li>
    
    </ul>
    
    

     
    ul
    
    each val, index in {1:'one',2:'two',3:'three'}
    
    li= index + ': ' + val
    <ul>
    
      <li>1: one</li>
    
      <li>2: two</li>
    
      <li>3: three</li>
    
    </ul>
    
    

     

    Case


     
    - var friends = 10
    
    case friends
    
    when 0
    
    p you have no friends
    
    when 1
    
    p you have a friend
    
    default
    
    p you have #{friends} friends
    <p>you have 10 friends</p>
    
    

    Case Fall Through

    - var friends = 0
    
    case friends
    
    when 0
    
    when 1
    
    p you have very few
    
    default
    
    p you have #{friends} friends
    <p>you have very few friends</p>
    
    

    Block


     
    - var friends = 1
    
    case friends
    
    when 0: p you have no friends
    
    when 1: p you have a friend
    
    default: p you have #{friends} friends
    <p>you have a friend</p>

    フィルタリング


     
    :markdown
    
      # Markdown
    
    
    
    I often like including markdown documents.
    
    script
    
    :coffee
    
     console.log 'This is coffee script'
    <h1>Markdown</h1>
    
    <p>I often like including markdown documents.</p>
    
    <script>console.log('This is coffee script')</script>

    かき ぜる


     
    //- Declaration
    
    mixin list
    
    ul
    
    li foo
    
    li bar
    
    li baz
    
    //- Use
    
    +list()
    
    +list()
    <ul>
    
      <li>foo</li>
    
      <li>bar</li>
    
      <li>baz</li>
    
    </ul>
    
    <ul>
    
      <li>foo</li>
    
      <li>bar</li>
    
      <li>baz</li>
    
    </ul>
    
    

     
    mixin pets(pets)
    
    ul.pets
    
    - each pet in pets
    
    li= pet
    
    +pets(['cat', 'dog', 'pig'])
    <ul class="pets">
    
      <li>cat</li>
    
      <li>dog</li>
    
      <li>pig</li>
    
    </ul>
    
    

     
    mixin article(title)
    
    .article
    
    .article-wrapper
    
    h1= title
    
    if block
    
    block
    
    else
    
    p No content provided
    
    
    
    +article('Hello world')
    
    
    
    +article('Hello world')
    
    p This is my
    
    p Amazing article
    <div class="article">
    
      <div class="article-wrapper">
    
        <h1>Hello world</h1>
    
        <p>No content provided</p>
    
      </div>
    
    </div>
    
    
    
    <div class="article">
    
      <div class="article-wrapper">
    
        <h1>Hello world</h1>
    
        <p>This is my</p>
    
        <p>Amazing article</p>
    
      </div>
    
    </div>
    
    

     
    mixin link(href, name)
    
    a(class!=attributes.class, href=href)= name
    
    
    
    +link('/foo', 'foo')(class="btn")
    <a class="btn" href="/foo">foo</a>


     
    // index.jade
    
    doctype html
    
    html
    
    include includes/head
    
    body
    
    h1 My Site
    
    p Welcome to my super lame site.
    
    include includes/foot
    // includes/head.jade
    
    head
    
    title My Site
    
    script(src='/javascripts/jquery.js')
    
    script(src='/javascripts/app.js')
    
    
    // includes/foot.jade
    
    #footer
    
    p Copyright (c) foobar