{{- $jsFilename := cond (eq (getenv "ENV") "development") (index .Site.Data.assetHashes "app.js") "app.js" }}
= doctype html
html lang={{.Site.LanguageCode}}
  head
    {{partial "meta.html" .}}
    {{partial "docs/page-meta.html" .}}
    title {{.Site.Title}} Documentation - {{.Title}}
    {{partial "css.includes.html" .}}
    = javascript
      var shiftWindow = function() { scrollBy(0, -100) };
      window.addEventListener("hashchange", shiftWindow);
      function load() { if (window.location.hash) shiftWindow(); }
  body.body
    main.main
      {{partial "navbar.html" .}}
      .hn-main
        .container
          .row
            aside.hn-sidebar.hidden-xs.hidden-sm.col-md-4.col-lg-2
              {{partial "sidenav.html" .}}
            section.hn-docs-main.col-xs-12.col-sm-12.col-md-8.col-lg-10.col-md-offset-4.col-lg-offset-2
              {{partial "docs/main.html" .}}
    script src=https://code.jquery.com/jquery-2.2.1.min.js
    script src=/js/bootstrap.js
    script src=/js/jquery.scrollTo.js
    script src=/js/{{ $jsFilename }}
    = javascript
      $('pre code').each(function() {
        console.log(this);
        this.innerHTML = this.innerHTML.replace(/\$\s/g, function(matched) {
          return `<span class=\"clp\">${matched}</span>`;
        });
      });
