{% capture jbcache %}
  <!--
  - Dynamically set liquid variables for working with URLs/paths
  -->
  {% include JB/is_production %}
  {% if site.JB.setup.provider == "custom" %}
    {% include custom/setup %}
  {% else %}

    {% if is_production and site.JB.BASE_PATH and site.JB.BASE_PATH != '' %}
      {% assign BASE_PATH = site.JB.BASE_PATH %}
      {% assign HOME_PATH = site.JB.BASE_PATH %}
      {% assign BLOG_PATH = site.JB.BLOG_PATH %}
    {% else %}
       {% assign BASE_PATH = nil %}
       {% assign HOME_PATH = '' %}
       {% assign BLOG_PATH = '' %}
    {% endif %}

    {% if site.github %}
       {% assign BASE_PATH = nil %}
       {% assign BLOG_PATH = nil %}
    {% endif %}

    {% if site.JB.ASSET_PATH %}
      {% assign ASSET_PATH = site.JB.ASSET_PATH %}
    {% else %}
      {% capture ASSET_PATH %}{{ BASE_PATH }}/assets/themes/{{ layout.theme.name }}{% endcapture %}
    {% endif %}
  {% endif %}
{% endcapture %}{% assign jbcache = nil %}