{#- JAVASCRIPT #}
  {%- set integrity = config.extra.integrity | default(value=true) -%}
  {%- if config.extra.offline %}{% set integrity = false %}{% endif %}
  {%- set search_library=config.extra.search_library | default(value="elasticlunr") -%}

  {%- set preStyle = false %}

  {%- if config.extra.fonts %}{%- for i in config.extra.fonts %}
    {%- if i.url is matching("^http[s]?://") %}
      {%- set preStyle = true %}
    {%- endif %}
  {%- endfor %}{%- endif %}

  {%- if config.extra.fontawesome %}
    {%- set preStyle = true %}
  {%- endif %}

  {%- if config.extra.math or page.extra.math %}
    {%- set katex_css=config.extra.katex_css | default(value="katex.min.css") -%}
    {%- if katex_css %}
      {%- set preStyle = true %}
    {%- endif %}
  {%- endif %}

{%- if config.mode != "serve" -%}{%- set notserve = true %}{%- endif %}
{%- if config.extra.js_bundle %}

  {%- if config.build_search_index %}
  {%- if notserve and config.extra.pwa | default(value=false) %}
  <script defer src="{{               get_url(path='js/abridge.min.js'             , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/abridge.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- else %}
  <script defer src="{{               get_url(path='js/abridge_nopwa.min.js'             , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/abridge_nopwa.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- else %}
  {%- if notserve and config.extra.pwa | default(value=false) %}
  <script defer src="{{               get_url(path='js/abridge_nosearch.min.js'    , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/abridge_nosearch.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- else %}
  <script defer src="{{               get_url(path='js/abridge_nosearch_nopwa.min.js'    , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/abridge_nosearch_nopwa.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}
  {%- endif %}

  {%- if config.build_search_index %}
  {%- if search_library == "elasticlunr" %}
  {%- if lang != "en" %}
  <script defer src="{{               get_url(path='js/lunr.stemmer.support.min.js', trailing_slash=false) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/lunr.stemmer.support.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  <script defer src="{{               get_url(path='js/lunr.' ~ lang ~ '.min.js'   , trailing_slash=false) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/lunr.' ~ lang ~ '.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}
  {%- endif %}
  {%- endif %}

{%- else %}{#- Not js_bundle #}

  {%- if preStyle == true %}
  {%- if config.extra.js_prestyle | default(value=true) %}
  <script defer src="{{               get_url(path='js/prestyle.js'                , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/prestyle.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}
  {%- endif %}

  {%- if config.extra.js_switcher | default(value=true) %}
  <script defer src="{{               get_url(path='js/theme_button.js'            , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/theme_button.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- if config.extra.js_email_encode | default(value=true) %}
  <script defer src="{{               get_url(path='js/email.js'                   , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/email.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- if config.extra.js_copycode | default(value=true) %}
  <script defer src="{{               get_url(path='js/codecopy.js'                , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/codecopy.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- if notserve and config.extra.pwa | default(value=false) %}
  <script defer src="{{               get_url(path='js/sw_load.js'             , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/sw_load.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%-   if search_library == "tinysearch" %}
  <script defer type="module" src="{{ get_url(path='js/tinysearch.js'   , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/tinysearch.js'   , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- elif search_library == "stork"      %}
  <script defer type="module" src="{{ get_url(path='js/search_stork.min.js'        , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/search_stork.min.js'        , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- elif config.build_search_index %}

  {%- set search_index_format="elasticlunr_json" -%}
  {%- if config.search.index_format %}
    {%- if config.search.index_format == "elasticlunr_javascript" %}
      {%- set search_index_format="elasticlunr_javascript" -%}
    {%- endif %}
  {%- endif %}

  {%- set uglyurls = config.extra.uglyurls | default(value=false) -%}
  {%- if config.extra.offline %}{% set uglyurls = true %}{% endif %}
  {%- if search_index_format == "elasticlunr_javascript" %}{#- Javascript index format #}
  <script defer src="{{               get_url(path='js/elasticlunr.min.js'         , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/elasticlunr.min.js'         , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  <script defer src="{{               get_url(path='search_index.' ~ lang ~ '.js'  , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='search_index.' ~ lang ~ '.js'  , sha_type=384, base64=true) | safe }}"{%- endif %}></script>

  {%- if uglyurls %}
  <script defer src="{{               get_url(path='js/searchjavaugly.js'          , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/searchjavaugly.js'          , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- else %}
  <script defer src="{{               get_url(path='js/searchjava.js'              , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/searchjava.js'              , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- else %}
  <script defer src="{{               get_url(path='js/search_elasticlunr.min.js'  , trailing_slash=false, cachebust=true) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/search_elasticlunr.min.js'  , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- if lang != "en" %}
  <script defer src="{{               get_url(path='js/lunr.stemmer.support.min.js', trailing_slash=false) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/lunr.stemmer.support.min.js', sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  <script defer src="{{               get_url(path='js/lunr.' ~ lang ~ '.min.js'   , trailing_slash=false) | safe }}"{%- if integrity %} integrity="sha384-{{ get_hash(path='js/lunr.' ~ lang ~ '.min.js'   , sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}

  {%- endif %}

{%- endif %}





{#- Katex #}
{#- https://katex.org/docs/autorender.html #}
{#- https://github.com/KaTeX/KaTeX/ #}
{#- https://github.com/KaTeX/KaTeX/tree/main/contrib/mathtex-script-type/ #}
{%- if config.extra.math or page.extra.math %}

{%- set katex_bundle=config.extra.katex_bundle | default(value="js/katexbundle.min.js") -%}
{%- if katex_bundle %}
  <script defer src="{{               get_url(path=katex_bundle                    , trailing_slash=false, cachebust=true) }}"{%- if integrity %} integrity="sha384-{{ get_hash(path=katex_bundle, sha_type=384, base64=true) | safe }}"{%- endif %}></script>
{%- else %}

  {%- set katex_js=config.extra.katex_js | default(value="js/katex.min.js") -%}
  {%- if katex_js %}{%- if katex_js is matching("^http[s]?://") %}
  <script defer src="{{               katex_js | safe }}"{%- if integrity and config.extra.katex_js_integrity %} integrity="{{ config.extra.katex_js_integrity | safe }}"{%- endif %} crossorigin="anonymous"></script>
  {%- else %}
  <script defer src="{{               get_url(path=katex_js                        , trailing_slash=false, cachebust=true) }}"{%- if integrity %} integrity="sha384-{{ get_hash(path=katex_js, sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}{%- endif %}

  {%- set mathtex_js=config.extra.mathtex_js | default(value="js/mathtex-script-type.min.js") -%}
  {%- if mathtex_js %}{%- if mathtex_js is matching("^http[s]?://") %}
  <script defer src="{{ mathtex_js | safe }}"{%- if integrity and config.extra.mathtex_js_integrity %} integrity="{{ config.extra.mathtex_js_integrity | safe }}"{%- endif %} crossorigin="anonymous"></script>
  {%- else %}
  <script defer src="{{               get_url(path=mathtex_js                      , trailing_slash=false, cachebust=true) }}"{%- if integrity %} integrity="sha384-{{ get_hash(path=mathtex_js, sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}{%- endif %}

 {%- if config.extra.math_auto_render or page.extra.math_auto_render %}
  {%- set katex_autorender_js=config.extra.katex_autorender_js | default(value="js/katex-auto-render.min.js") -%}
  {%- if katex_autorender_js %}
  {%- if katex_autorender_js is matching("^http[s]?://") %}
  <script defer src="{{               katex_autorender_js | safe }}"{%- if integrity and config.extra.katex_autorender_js_integrity %} integrity="{{ config.extra.katex_autorender_js_integrity | safe }}"{%- endif %} crossorigin="anonymous"></script>
  {%- else %}
  <script defer src="{{               get_url(path=katex_autorender_js             , trailing_slash=false, cachebust=true) }}"{%- if integrity %} integrity="sha384-{{ get_hash(path=katex_autorender_js, sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}
  {%- endif %}
  {%- set katex_options=config.extra.katex_options | default(value="js/katexoptions.js") -%}
  {%- if katex_options %}
  <script defer src="{{               get_url(path=katex_options                   , trailing_slash=false, cachebust=true) }}"{%- if integrity %} integrity="sha384-{{ get_hash(path=katex_options, sha_type=384, base64=true) | safe }}"{%- endif %}></script>
  {%- endif %}
 {%- endif %}
{%- endif %}

{%- endif %}
  <noscript><link rel="stylesheet" href="{{ get_url(path='nojs.css', trailing_slash=false) | safe }}" /></noscript>





{#- End of head_js partial -#}
