github.com/servernoj/jade@v0.0.0-20231225191405-efec98d19db1/testdata/v2/mixins.jade (about)

     1  
     2  //- Declaration
     3  mixin list
     4    ul
     5      li foo
     6      li bar
     7      li baz
     8  //- Use
     9  +list
    10  +list
    11  
    12  
    13  //- Declaration
    14  mixin pet(name)
    15    li.pet= name
    16  //- Use
    17  ul
    18    +pet('cat')
    19    +pet('dog')
    20    +pet('pig')
    21  
    22  
    23  //- Declaration
    24  mixin article(title)
    25    .article
    26      .article-wrapper
    27        h1= title
    28        if len(block) > 0
    29          block
    30        else
    31          p No content provided
    32  //- Use
    33  +article("Hello world")
    34  +article("Hello world")
    35    p This is my
    36    p Amazing article
    37  
    38  
    39  //- Declaration
    40  mixin link(href, name)
    41    - attributes := struct{class string}{class: "btn"}
    42    a(class!=attributes.class href=href)= name
    43  //- Use
    44  +link("/foo", "foo")(class="btn")
    45  +link(fn("/foo", "bar", "baz"), "foo")
    46  
    47  
    48  //- Declaration
    49  mixin link(href, name)
    50    a(href=href)&attributes(attributes)= name
    51  //- Use
    52  +link("/foo", "foo")(class="btn")
    53  
    54  
    55  //- Declaration
    56  mixin article(title="Default Title")
    57    .article
    58      .article-wrapper
    59        h1= title
    60  //- Use
    61  +article()
    62  +article("Hello world")
    63  
    64  
    65  //- Declaration
    66  mixin list(id, ...items)
    67    ul(id=id)
    68      each item in items
    69        li= item
    70  //- Use
    71  // TODO for string
    72  +list(fn("my-list"), "string", 2, 3.5, 4)