JoonWeb template documentation
| Tag | Details | 
|---|---|
| site | Array of site configuration | 
| site.name | Render Name of website | 
| site.url | URL of site | 
| site.currency | Render default store currency | 
<section 
  id="{{section.id}}" 
  class="mysection {{section.class}} {{section.colors ? section.colors : 'background7'}} {{section.align ? 'see-text-' ~ section.align }} {{section.animation ? section.animation }}" 
  {{section.attributes}}
  {% if media %} style="background: url({{media}})no-repeat center / cover;" {% endif %} 
>
 
| Tag | Details | Required | 
|---|---|---|
| section.id | contains unique ID for section and is mandatory to add anyhow to every section you create. <section id="{{section.id}}"> | YES | 
| section.class | contains mandatory class for settings: <section id="{{section.id}}" class=”secard {{section.class}}”> | YES | 
| section.colors | contains class used for changing section color and you have to put it in class ex: <section id="{{section.id}}" class=”secard {{section.colors ? section.colors }}”> <div class="second-datasecard {{section.colors2 ? section.colors2 }}"></div> | YES (If you want to use section color swapping feature) Note: You can use upto 4 color combinations in one section. {{ section.colors }} {{ section.colors2 }} {{ section.colors3 }} {{ section.colors4 }} | 
| section.align | Contains, alignment class of section which helps to align content of sections. You can check and pass your own class accordingly.section.align output “left,right,center” you can also use it as: {{section.align ? 'see-text-' ~ section.align }} | Yes, Only if you want alignment setting in the section, else you can skip this | 
| section.animation | This property of section contains animation class and can be used in main | NO (Required only if you want animation setting) | 
| section.attributes | It contains required attributes for functioning of section and contains script settings and data-attributes which must be in toplevel element: <section id="{{section.id}}" class=”secard” {{section.attributes}} > | YES | 
| Tag | Details | 
|---|---|
| user.id | renders unique userhash/id of logged member, also help in checking either user is logged in or not for example: 
 | 
| user.name | renders name of user who is logged into website, example: {{ user.name }} | 
| user.mobile | rendes user's mobile number | 
| user.email | renders user's email if available or it returns empty. | 
| user.avatar | render avatar image name of user | 
For example, In about us section, we have Tags such as title, subtitle, description, media and buttons. All Section tags/object are covered with double curly braces. For better understand below are the sample on how tags are covered
{{ title }}
Here, above tag is one title tag/variable which is covered using curly braces will render title provided by user on runtime.
| Variable | Details | is Required | 
|---|---|---|
| title | Title of the header | No | 
| subtitle | Moto or subtitle of website | No | 
| logo | Logo is a heart of a header section, using {{logo}} will render logo image link. | No | 
| buttons | CTA buttons for header, like Quick Enquiry or Contact, Somewhat donate or call button | Optional | 
| social | SocialIcons of websites like fb, twitter, insta will be render like: 
 | Optional | 
| phone | Renders Mobile/Phone for Header | Optional | 
| Renders Emails of Website | 
Now, Navigation Rules It's important to add navigation in header by using "section.navigation" array.
section.navigation contains all the header menu in JSON, so we have to use `for loop` show menu.
"section":{
    "navigation":[
        {
            "label": "home",
            "link" :"index",
            "children": [],
        },
        {
            "label": "About",
            "link" :"about",
            "children": [
                {
                    "label": "About Company",
                    "link" :"about-company",
                },
                {
                    "label": "About Product",
                    "link" :"about-products",
                }
            ],
        }
    ]
}
Navigation Items [section.navigation array]:
| Variable | Details | is Required | 
|---|---|---|
| label | It can be used as {{ item.label }} for Menu Name in section.navigation loop | Yes | 
| link | It can be used as {{ item.link}} for Link of menu in section.navigation loop | Yes | 
| children | It contains same menu, if there is any drop down. Can be checked with if condition and nested loop if exist. | No | 
Basic Header HTML:
<header class="header2">
    <mobile class="mobile-header see-section">
      <div class="mob-nav-container">
        <div class="mob-contact">
          <ul class="inner-menu-contact">
            <li></li>
          </ul>
        </div>
        <a href="" class="see-logo">
          <img src="logo.png" class="" alt="logo">
          <div class="see-brand see-margin-y-auto"></div>
        </a>
        <button>
          <i class="fa fa-bars nav_button_open" aria-hidden="true"></i>
          <i class="fa fa-times nav_button_close"></i>
        </button>
      </div>
      <nav class="see-navigation">
        <div class="see-expanded" data-menu-style="default" data-menu-layout="leftpane75">
          <ul class="see-menus-mobile capt-nav bold-font ">
            <li>
              <a href="" class="see-menuitem">Home</a>
            </li>
            <li>
              <a href="" class="see-menuitem">About</a>
            </li>
            <li>
              <a href="" class="see-menuitem">Contact</a>
            </li>
          </ul>
          <div class="see-margin-y-auto call-to-action">
            <a class="see-prime-color">Quick Enquiry</a>
          </div>
          <ul class="mob-social-icons">
            <li class="social_icon">
              <a href="https://facebook.com" class="page" target="_blank">
                <i class="fas fa-link"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://instagram.com" class="instagram" target="_blank">
                <i class="fab fa-instagram"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://twitter.com" class="twitter" target="_blank">
                <i class="fab fa-twitter"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://youtube.com" class="youtube" target="_blank">
                <i class="fab fa-youtube"></i>
              </a>
            </li>
          </ul>
        </div>
      </nav>
    </mobile>
    <desktop class="desktop-header">
      <div class="see_header_1">
        <div class="see-width header-container">
          <ul class="social-icons">
            <li class="social_icon">
              <a href="https://facebook.com" class="page" target="_blank">
                <i class="fas fa-link"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://instagram.com" class="instagram" target="_blank">
                <i class="fab fa-instagram"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://twitter.com" class="twitter" target="_blank">
                <i class="fab fa-twitter"></i>
              </a>
            </li>
            <li class="social_icon">
              <a href="https://youtube.com" class="youtube" target="_blank">
                <i class="fab fa-youtube"></i>
              </a>
            </li>
          </ul>
        </div>
      </div>
      <div class="see_header_2">
        <div class="see-width header-container">
          <a href="" class="see-logo">
            <img src="logo.png" class="" alt="logo">
            <div class="see-brand see-margin-y-auto"></div>
          </a>
          <div class="nav-container">
            <nav class="see-navigation">
              <div class="see-expanded">
                <ul class="see-menus" data-menu-style="default" data-menu-layout="leftpane75">
                  <li>
                    <a href="" class="see-menuitem">Home</a>
                  </li>
                    <a href="" class="see-menuitem">About</a>
                  </li>
                  <li>
                    <a href="" class="see-menuitem">Contact</a>
                  </li>
                </ul>
              </div>
            </nav>
            <div class="call-to-action">
              <a class="jw-buttons">Quick Enquiry</a>
            </div>
          </div>
        </div>
      </div>
    </desktop>
</header>
When We convert it to JW Dynamic it will be like:-
<header id="{{section.id}}" class="header2 {{section.class}}" {{section.attributes}}>
    <mobile class="mobile-header see-section">
      <div class="mob-nav-container">
        {% if phone or email %}
        <div class="mob-contact">
          <ul class="inner-menu-contact">
            <li>
                {% if phone %}
                <a href="tel:{{site.phone.0}}"><i class="fa fa-phone see-lh-22"></i></a>
                {% endif %}
                {% if email %}
                <a href="mailto:{{site.email.0}}"><i class="fa fa-envelope see-lh-22"></i></a>
                {% endif %}
              </li>
          </ul>
        </div>
        {% endif %}
        <a href="{{root.url}}" class="see-logo">
          <img src="{{logo}}" class="" alt="logo">
          <div class="see-brand see-margin-y-auto">
            {% if title != '' %}<div class="see-brand-name see-fw-9">{{title}}</div>{% endif %}
            {% if subtitle != '' %}<div class="see-brand-tagline see-fw-6">{{subtitle}}</div>{% endif %}
          </div>
        </a>
        <button>
          <i class="fa fa-bars nav_button_open" aria-hidden="true"></i>
          <i class="fa fa-times nav_button_close"></i>
        </button>
      </div>
      <nav class="see-navigation">
        <div class="see-expanded" data-attributes>
        {% if section.navigation %}
          <ul class="see-menus-mobile capt-nav bold-font ">
            {% for navkey, menu in section.navigation %}
            <li>
                <a href="{{menu.link}}" class="see-menuitem">{{menu.label}}</a>
                {% if menu.children %}
                <ul class="sub-menu see-second-color">
                    {% for subkey,submenu in menu.children %}
                    <li>
                        <a href="{{submenu.link}}" class="">{{submenu.label}}</a>
                    </li>
                    {% endfor %}
                </ul>
                {% endif %}
            </li>
            {% endfor %}
          </ul>
        {% endif %}
        {% if buttons %}
          <div class="see-margin-y-auto call-to-action">
            {{buttons}}
          </div>
        {% endif %}
        {% if social %}
          <ul class="mob-social-icons">
            {{social}}
          </ul>
        {% endif %}
        </div>
      </nav>
    </mobile>
    <desktop class="desktop-header {{section.colors ? section.colors  : 'see-prime-color'}}">
      <div class="see_header_1">
        <div class="see-width header-container">
           {% if social %}
        <ul class="social-icons">
          {{social}}      
        </ul>
        {% endif %}
        </div>
      </div>
      <div class="{{section.colors2 ? section.colors2  : 'see-second-color'}} see_header_2">
        <div class="see-width header-container">
          <a href="{{root.url}}" class="see-logo">
            {% if logo %}<img src="{{logo}}" class="">{% endif %}
            <div class="see-brand see-margin-y-auto">
                {% if title %}<div class="see-brand-name see-fw-9">{{title}}</div>{% endif %}
                {% if subtitle %}<div class="see-brand-tagline see-fw-6">{{subtitle}}</div>{% endif %}
            </div>
          </a>
          <div class="nav-container">
            <nav class="see-navigation">
              <div class="see-expanded">
                {% if section.navigation %}
                <ul class="see-menus responsive-theme-lgray-color capt-nav bold-font" data-attributes>
                  {% for navkey, menu in section.navigation %}
                  <li>
                    <a href="{{menu.link}}" class="see-menuitem">{{menu.label}}</a>
                    {% if menu.children %}
                    <ul class="sub-menu see-second-color">
                      {% for subkey,submenu in menu.children %}
                      <li>
                        <a href="{{submenu.link}}" class="">{{submenu.label}}</a>
                      </li>
                      {% endfor %}
                    </ul>
                    {% endif %}
                  </li>
                  {% endfor %}
                </ul>
                {% endif %}
                {{member}}
              </div>
            </nav>
            {% if buttons %}
            <div class="call-to-action">
                {{buttons}}
            </div>
            {% endif %}
          </div>
        </div>
      </div>
    </desktop>
    {#JW1#}
</header>
Footer Section:
| Variable | Details | is Required | 
|---|---|---|
| title | it defines title of About | No | 
| subtitle | Subtitle variable is secondary heading of section | No | 
| description | It renders the description | No | 
| 
 |  |  | 
| Variable | Details | is Required | 
|---|---|---|
| title | it defines title of About | No | 
| subtitle | Subtitle variable is secondary heading of section | No | 
| description | It renders the description of a section | No | 
| media | Is used for rendering media, if you would like to have two variants, you can check using "Property.media.varient == 1" | No | 
| buttons | Buttons is for rendering buttons | No | 
 <section>
    <div class="text-div">
        <div class="title_class"> Sample Title </div>
        <div class="mysubtitle"> Sample Subtitle </div>
        <div class="services-desp">Our organization's professional description</div>
    </div>
    <div class="see-button-prime">
        <a class="jw-buttons btn-medium see-prime-color" href="javascript:void(0);">Contact US</a>
    </div>
    <div class="media">
        <img src="sample_image.png" alt="sample_alt">
    </div>
</section>
Converted to Dynamic JW Section:
<section 
    id="{{section.id}}"
    class=" 
        {{section.class}} 
        {{section.colors ?  section.colors : 'see-prime-color'}} 
        {{section.align ? "see-text-#{section.align}" }} 
        {{section.animation ? section.animation }}
        "
    {{section.attributes}} 
>
    {% if title != '' or subtitle != '' or description !='' %}
    <div class="text-div">
        {% if title !='' %}<div class="title_class see-title {{class.title}}" {{attributes.title}}> {{title}} </div>{% endif %}
        {% if subtitle !='' %}<div class="mysubtitle see-subtitle {{class.subtitle}}" {{attributes.subtitle}}> {{subtitle}} </div>{% endif %}
        {% if description !='' %}<div class="services-desp see-desc {{class.description}}" {{attributes.description}}> {{description}} </div>{% endif %}
    </div>
    {% endif %}
   
    {% if buttons %}
        <div class="see-button-prime {{class.buttons}}" {{attributes.buttons}}>
            {{buttons}}
        </div>
    {% endif %}
    {% if media !='' %}
    <div class="media {{class.media}}" {{attributes.media}}>
        <a {% if Property.media.hreflink != '' %} href="{{Property.media.hreflink}}" {% endif %}>
            <jw-media>
                {% if Property.media.varient == 'image' %}
                    <img 
                        src="{{media}}" 
                        alt="{{media.alt}}" 
                        {{attributes.media}} 
                        {{Property.media.effect ?  'data-parallax="scroll" data-speed="0"' : ''}}
                    >
                {% elseif Property.media.varient == 'embed' %}
                    <iframe type="text/html" 
                        src="{{media}}" 
                        title="{{media.alt}}"
                        frameborder="0" 
                        allow="accelerometer; autoplay;" 
                        width="100%" >
                    </iframe>
{% endif %}
            </jw-media>
        </a>
    </div>
    {% endif %}
    {#JW1#}
</section>
Very essential section of any template, it is similar to any listitem section such as Features, testimonials etc.
| Variable | Details | is Required | 
|---|---|---|
| title | Title variable is used to define text/heading of section. | No | 
| subtitle | Subtitle variable is secondary heading of section | No | 
| description | Description variable output description for the section. | No | 
| media | Is used for rendering media | No | 
| buttons | Buttons is for rendering buttons | No | 
| footer_description | Is used for footer textif any, recommend using it after listitem. | No | 
| footer_buttons | Is used for footer buttons if any, same like footer description. | No | 
| listitem | Listitem is array/subsection which includes sub variables in loop. For rendering, we have to run "for loop" logic. | No | 
| Listitems Variables | Below rules includes listitem variables in "listitem" array, first check if array has item then for start loop. | 
 | 
| item_name | It will be listitem item_name and can be used as {{ item.item_name }} in for loop. | No | 
| item_subtitle | It will be listitem subtitle and can be used as {{ item.item_subtitle }} | No | 
| item_decription | It will be listitem item_decription and can be used as {{ item.item_decription }} in loop. | No | 
| media | it will be media of listitem, it contains image link can be used as: | 
Indent your code with a tab inside tags. This improves readability. Within the editors in BranchCMS a tag equals 4 spaces.
{% if store.products %}
    {% for product in store.products %}        
        <p><a href="{{ product.url }}">{{ product.title }}</a></p>    
    {% endfor %}
{% endif %}
Put one (and only one) space after the start of a delimiter ( {{, {%, and {# ) and before the end of a delimiter ( }}, %}, and #} )
{{ variable }}
{% if variable %}
{% endif %}
{# comment #}
When using the whitespace control character do not put any spaces between it and the delimiter.
{{- variable -}}
{%- if variable -%}
{%- endif -%}
{#- comment -#}
Put one (and only one) space before and after the following operators: comparison operators ( ==, !=, <, >, >=, <= ), math operators ( +, -, /, *, %, //, ** ), logic operators ( not, and, or ), ~, is, in, and the ternary operator ( ?: ).
{{ 1 + 2 }}{{ foo ~ bar }}
{% if variable is not null %}
{{ true ? true : false }}
Do not put any spaces before or after ...
{% for i in 1..10 %}{% endfor %}
Do not put any spaces before or after ., or [ ].
{{ profile.firstName }}
{{ profile[firstName] }}
Do not put any spaces after an opening parenthesis and before a closing parenthesis in expressions.
{{ 1 + (5 * 3) }}
Do not put any spaces before and after the parenthesis used for filter and function calls.
{{ variable|truncate(100) }}{{ range(1, 10) }}
Do not put spaces before or after string delimiters (i.e quotes ' " ) unless you intend to include a literal space in the string.
{{ "string" }}
{{ 'string' }}
{{ ' string' }} would include a space before "string".
Do not put any spaces before or after the filter ( | ) operator.
{{ variable|upper|lower }}
{{ variable|truncate(100) }}