description = "footer partial"
==
{##}

</main>

<footer>
  <div class="container flex">
    <div id="copyright">
      <p>
        © 2007-{{ "now"|date("Y") }} Juan Linietsky, Ariel Manzur and <a href="https://github.com/godotengine/godot/blob/master/AUTHORS.md" target="_blank" rel="noopener">contributors</a><br>
        Godot is a member of the <a href="https://sfconservancy.org/" target_="_blank" rel="noopener">Software Freedom Conservancy</a>.<br>
        Kindly hosted by <a href="https://tuxfamily.org" target="_blank" rel="noopener">TuxFamily.org</a>.<br>
        <a href="https://github.com/godotengine/godot-website" target="_blank" rel="noopener">Website source code on GitHub</a>.
      </p>
    </div>
    <div id="sitemap">
      <ul class="sitemap-group">
        <li><strong>Get Godot</strong></li>
        <li><a href="/download">Download</a></li>
        <li><a href="https://editor.godotengine.org/releases/latest/">Web Editor</a></li>
        <li>&nbsp;</li>
        <li><strong>Public Relations</strong></li>
        <li><a href="/news/default/1">News</a></li>
        <li><a href="/community">User Communities</a></li>
        <li><a href="/press">Press Kit</a></li>
      </ul>
      <ul class="sitemap-group">
        <li><strong>About Godot</strong></li>
        <li><a href="/features">Features</a></li>
        <li><a href="/showcase">Showcase</a></li>
        <li><a href="/education">Education</a></li>
        <li><a href="/license">License</a></li>
        <li><a href="/code-of-conduct">Code of Conduct</a></li>
        <li><a href="/privacy-policy">Privacy Policy</a></li>
        <li><a href="/donate">Donate</a></li>
      </ul>
      <ul class="sitemap-group">
        <li><strong>Project Team</strong></li>
        <li><a href="/governance">Governance</a></li>
        <li><a href="/teams">Teams</a></li>
        <li>&nbsp;</li>
        <li><strong>Extra Resources</strong></li>
        <li><a href="/asset-library/asset">Asset Library</a></li>
        <li><a href="https://docs.godotengine.org">Documentation</a></li>
        <li><a href="https://github.com/godotengine">Code Repository</a></li>
      </ul>
    </div>
    <div id="social" class="dark-desaturate">
      <h4 class="text-right"><a href="/contact">Contact us</a></h4>
      <div class="flex justify-space-between">
        <a href="https://github.com/godotengine" target="_blank" rel="noopener">
          <img src="{{ 'assets/footer/github_logo.svg' | theme }}" width="32" height="32" alt="GitHub">
        </a>
        <a href="https://twitter.com/godotengine" target="_blank" rel="noopener">
          <img src="{{ 'assets/footer/twitter_logo.svg' | theme }}" width="32" height="32" alt="Twitter">
        </a>
        <a href="https://www.facebook.com/groups/godotengine/" target="_blank" rel="noopener">
          <img src="{{ 'assets/footer/facebook_logo.svg' | theme }}" width="32" height="32" alt="Facebook">
        </a>
        <a href="https://www.reddit.com/r/godot" target="_blank" rel="noopener">
          <!-- Zero-width space in the `alt` text to prevent content blockers from blocking the icon -->
          <img src="{{ 'assets/footer/reddit_logo.svg' | theme }}" width="32" height="32" alt="Red​dit">
        </a>
        <a href="/rss.xml" target="_blank" rel="noopener">
          <!-- Icon is called `feed` instead of `rss` to prevent content blockers from blocking the icon -->
          <img src="{{ 'assets/footer/feed_logo.svg' | theme }}" width="32" height="32" alt="RSS feed">
        </a>
      </div>
    </div>
  </div>
</footer>

{% scripts %}
<script defer src="{{ 'assets/js/barba.min.js?1' | theme }}"></script>
<script defer src="{{ 'assets/js/tobii.min.js?1' | theme }}"></script>
<script defer src="{{ 'assets/js/highlight.min.js?1' | theme }}"></script>
<script defer src="{{ 'assets/js/highlight.gdscript.min.js?1' | theme }}"></script>
<script>
  document.addEventListener('DOMContentLoaded', () => {
    barba.init({
      // Increase timeout from the default value (2000) as our server is relatively slow to respond.
      // Otherwise, the current page will be reloaded instead of loading the new page.
      timeout: 10000,

      // Ignore:
      // - lightbox links,
      // - user groups page (due to inline JavaScript being used),
      // - links that are "external" websites,
      // - direct PDF files.
      prevent: ({ el }) => {
        const isLightBox = el.classList && el.classList.contains('lightbox');
        const isUserGroupsPage = el.href && el.href.includes('/community/user-groups');
        const isQaUrl = el.href && el.href.includes('/qa');
        const isAssetLibUrl = el.href && el.href.includes('/asset-library');
        const isPdf = el.href && el.href.includes('.pdf');
        return isLightBox || isUserGroupsPage || isQaUrl || isAssetLibUrl || isPdf;
      },

      transitions: [
        {
          name: 'default',
          leave() {
            // Simple transition to let the user know that the page is currently loading.
            document.body.style.opacity = 0.6;
          },
          enter() {
            document.body.style.opacity = 1.0;
            // Scroll back to top and close the mobile menu to simulate
            // traditional navigation. Don't do this on initial page load
            // to preserve browser behavior on refresh, only on subsequent
            // navigations.
            window.scrollTo(0, 0);
            document.getElementById('nav_toggle_cb').checked = false;

            // Update the active tab in the navigation bar.
            const oldActiveTab = document.querySelector('#nav li.active');
            if (oldActiveTab) {
              oldActiveTab.classList.remove('active');
            }
            document.querySelectorAll('#nav li a').forEach((tabLink) => {
              if (tabLink.href === window.location.href) {
                tabLink.parentElement.classList.add('active');
              }
            });
          },
        },
      ],
      views: [
        {
          namespace: 'default',
          afterEnter() {
            // This needs to be done on page load but also after page changes,
            // in case a code block appears in an article.
            document.querySelectorAll('pre code').forEach((block) => {
              hljs.highlightBlock(block);
            });

            document.querySelectorAll('.content-article img').forEach((articleImg) => {
              // Add lightbox elements in blog articles for Tobii.
              const lightbox = document.createElement('a');
              lightbox.href = articleImg.src;
              lightbox.classList.add('lightbox');
              lightbox.dataset.group = 'article';
              articleImg.parentNode.appendChild(lightbox);
              lightbox.appendChild(articleImg);
            });

            // Initialize lightbox.
            new Tobii({
              zoom: false,
            });
          },
        },
      ],
    });
  });
</script>

</body>
