<!-- JS selector for site. -->

<!-- commons -->

{% assign urls = site.data.origin[type].jquery.js
  | append: ','
  | append: site.data.origin[type].bootstrap.js
  | append: ','
  | append: site.data.origin[type].search.js
%}

<!-- layout specified -->

{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
  {% assign urls = urls | append: ',' | append: site.data.origin[type]['lazy-polyfill'].js %}

  {% unless page.layout == 'home' %}
    <!-- image lazy-loading & popup & clipboard -->
    {% assign urls = urls
      | append: ','
      | append: site.data.origin[type]['magnific-popup'].js
      | append: ','
      | append: site.data.origin[type].clipboard.js
    %}
  {% endunless %}
{% endif %}

{% if page.layout == 'home'
  or page.layout == 'post'
  or page.layout == 'archives'
  or page.layout == 'category'
  or page.layout == 'tag'
%}
  {% assign locale = site.lang | split: '-' | first %}

  {% assign urls = urls
    | append: ','
    | append: site.data.origin[type].dayjs.js.common
    | append: ','
    | append: site.data.origin[type].dayjs.js.locale
    | replace: ':LOCALE', locale
    | append: ','
    | append: site.data.origin[type].dayjs.js.relativeTime
    | append: ','
    | append: site.data.origin[type].dayjs.js.localizedFormat
  %}
{% endif %}

{% if page.content contains '<h2' or page.content contains '<h3' and site.toc and page.toc %}
  {% assign urls = urls | append: ',' | append: site.data.origin[type].toc.js %}
{% endif %}

{% if page.mermaid %}
  {% assign urls = urls | append: ',' | append: site.data.origin[type].mermaid.js %}
{% endif %}

{% include jsdelivr-combine.html urls=urls %}

{% case page.layout %}
  {% when 'home', 'categories', 'post', 'page' %}
    {% assign js = page.layout %}
  {% when 'archives', 'category', 'tag' %}
    {% assign js = 'misc' %}
  {% else %}
    {% assign js = 'commons' %}
{% endcase %}

{% capture script %}/assets/js/dist/{{ js }}.min.js{% endcapture %}
<script defer src="{{ script | relative_url }}"></script>

{% if page.math %}
  <!-- MathJax -->
  <script>
    /* see: <https://docs.mathjax.org/en/latest/options/input/tex.html#tex-options> */
    MathJax = {
      tex: {
        /* start/end delimiter pairs for in-line math */
        inlineMath: [
          ['$', '$'],
          ['\\(', '\\)']
        ],
        /* start/end delimiter pairs for display math */
        displayMath: [
          ['$$', '$$'],
          ['\\[', '\\]']
        ]
      }
    };
  </script>
  <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
  <script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
{% endif %}

{% if jekyll.environment == 'production' %}
  <!-- PWA -->
  {% if site.pwa.enabled %}
    <script defer src="{{ '/app.js' | relative_url }}"></script>
  {% else %}
    <script defer src="{{ '/unregister.js' | relative_url }}"></script>
  {% endif %}

  <!-- GA -->
  {% if site.google_analytics.id != empty and site.google_analytics.id %}
    {% include google-analytics.html %}
  {% endif %}
  
  <!-- Cloudflare Web Analytics -->
  {% if site.cloudflare_analytics.token != empty and site.cloudflare_analytics.token %}
    {% include cloudflare-analytics.html %}
  {% endif %}
{% endif %}
