{{- $page := .page }}
{{- with $page }}
  {{- $init := "{}" }}
  {{- if isset .Params "mathjaxinitialize" }}
    {{- $init = .Params.mathJaxInitialize }}
  {{- else if isset .Site.Params "mathjaxinitialize" }}
    {{- $init = .Site.Params.mathJaxInitialize }}
  {{- end }}
    <script>
      function useMathJax( config ){
        if( !Object.assign ){
          // We don't support MathJax for IE11 anyways, so bail out early
          return;
        }
        window.MathJax = Object.assign( window.MathJax || {}, {
          loader: {
            load: ['[tex]/mhchem']
          },
          startup: {
            elements: [
              '.math'
            ]
          },
          tex: {
            inlineMath: [
              ['$', '$'], // allow for single dollars as we set startup.elements
              ['\\(', '\\)']
            ]
          },
          options: {
            enableMenu: false // avoid translation hassle for context menu
          }
        }, config );
      }
      useMathJax( JSON.parse({{ $init }}) );
    </script>
  {{- if and (isset .Params "custommathjaxurl") .Params.customMathJaxURL }}
    <script id="MathJax-script" async src="{{ .Params.customMathJaxURL }}"></script>
  {{- else if and (isset .Site.Params "custommathjaxurl") .Site.Params.customMathJaxURL }}
    <script id="MathJax-script" async src="{{ .Site.Params.customMathJaxURL }}"></script>
  {{- else }}
    <script id="MathJax-script" async src="{{"js/mathjax/tex-mml-chtml.js" | relURL}}{{ if not .Site.Params.disableAssetsBusting }}?{{ now.Unix }}{{ end }}"></script>
  {{- end }}
{{- end }}