<!--
  Copyright 2020 The Go Authors. All rights reserved.
  Use of this source code is governed by a BSD-style
  license that can be found in the LICENSE file.
-->

{{define "canonical"}}
  <link rel="canonical" href="https://pkg.go.dev/{{.Unit.Path}}">
{{end}}

{{define "main-styles"}}
  <link href="/static/frontend/unit/main/main.min.css?version={{.AppVersionLabel}}" rel="stylesheet">
{{end}}

{{define "main-banner"}}
  {{template "unit-header-banners" .}}
{{end}}

{{define "main-header"}}
  {{template "unit-header" .}}
{{end}}

{{define "main-aside"}}
  {{block "unit-meta" .}}{{end}}
{{end}}

{{define "main-nav"}}
  <div class="go-Main-navDesktop">
    {{block "unit-outline" .Details}}{{end}}
  </div>
  <div class="go-Main-navMobile js-mainNavMobile">
    <label class="go-Label">
      <select class="go-Select">
        {{if .Details.Readme.String}}
          <option selected disabled>README</option>
        {{else if .Details.DocBody.String}}
          <option selected disabled>Documentation</option>
        {{else if .Details.SourceFiles}}
          <option selected disabled>Source Files</option>
        {{else if .Details.Directories}}
          <option selected disabled>Directories</option>
        {{end}}
      </select>
    </label>
  </div>
{{end}}

{{define "main-content"}}
  <div class="UnitDetails" data-test-id="UnitDetails" style="display: block;">
    <div class="UnitDetails-content js-unitDetailsContent" data-test-id="UnitDetails-content">
      {{if .Details.Readme.String}}
        {{block "unit-readme" .Details}}{{end}}
      {{end}}
      {{if .Details.IsPackage}}
        {{if .Unit.IsRedistributable}}
          {{block "unit-doc" .Details}}{{end}}
        {{else}}
          <div class="UnitDetails-contentEmpty">
            <img width="945" height="1200" src="/static/shared/gopher/airplane-1200x945.svg" alt="The Go Gopher"/>
            <p>Documentation not displayed due to license restrictions.</p>
            <p>See our <a href="/license-policy">license policy</a>.</p>
          </div>
        {{end}}
      {{end}}
      {{if .Details.SourceFiles}}
        {{block "unit-files" .Details}}{{end}}
      {{end}}
      {{if .Details.Directories}}
        {{block "unit-directories" .Details}}{{end}}
      {{end}}
    </div>
  </div>
{{end}}

{{define "main-scripts"}}
  <div class="js-canonicalURLPath" data-canonical-url-path="{{.CanonicalURLPath}}" hidden></div>
  <script>
    loadScript('/static/frontend/unit/main/main.js')
  </script>
{{end}}
