{{define "layout"}}
<div>
  <div class="WhoUsesSubPage-hero{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
    <div class="WhoUsesSubPage-heroInner{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
      <div class="WhoUsesSubPage-heroContent{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
        <div class="WhoUsesSubPage-heroText{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
          {{breadcrumbs .}}
          <h1>{{.title}}</h1>
          {{range .authors}}
            <div class="Article-author">{{.}}</div>
          {{end}}
          {{if .date}}
            <div class="Article-date">{{.date.Format "2 January 2006"}}</div>
          {{end}}
        </div>
          {{if .company}}
            <div class="WhoUsesSubPage-heroImg">
              <img src="/images/{{ .heroImgSrc }}" alt="{{.company }}">
            </div>
          {{end}}
        </div>
      </div>

  </div>
  <article class="Article {{if ne (section .) "/"}}Article--{{strings.Trim (section .) "/"}}{{end -}}">
    {{if (eq .series "Case Studies") }}
      <div class="CaseStudy-content">
        <div class="CaseStudy-contentBody">
          {{.Content}}
        </div>
        <div class="CaseStudy-contentAside">
          <div class="CaseStudy-aboutBlock">
            <img src="/images/logos/{{.logoSrc}}" class="CaseStudy-aboutBlockImg" alt="{{.company}}">
            <h3 class="CaseStudy-aboutBlockTitle">
              About {{.company}}
            </h3>
            {{if .description}}
              <p class="CaseStudy-aboutBlockBody">{{markdown .description}}</p>
            {{ else }}
              <p class="CaseStudy-aboutBlockBody">{{markdown .quote}}</p>
            {{end}}
          </div>
        </div>
      </div>
    {{else if (eq .series "Use Cases") }}
      <div class="UseCase-content">
        <div class="UseCase-contentAside">
          <div
            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
          </div>
        </div>
        <div class="UseCase-contentBody js-useCaseContentBody">
          <!-- Messaging -->
          {{ if .inlineMessage }}
            <div class="InlineMessage">
              <span class="InlineMessage-imageWrap">
                <img
                  loading="lazy"
                  class="InlineMessage-img"
                  src="/images/gophers/megaphone-gopher.svg"
                  alt="Gopher with megaphone">
              </span>
              <span class="InlineMessage-description">
                <p class="InlineMessage-descParagraph">{{ .inlineMessage.description }}</p>
              </span>
              <span class="InlineMessage-ctas">
                <a href="{{ .inlineMessage.ctas.primary.url }}" class="InlineMessage-cta">
                  {{ .inlineMessage.ctas.primary.title }}
                </a>
                <a href="{{ .inlineMessage.ctas.secondary.url }}" class="InlineMessage-cta">
                  {{ .inlineMessage.ctas.secondary.title }}
                </a>
              </span>
            </div>
          {{ end }}
          {{.Content}}
        </div>
      </div>
    {{end}}
  </article>
</div>
{{end}}

{{define "backgroundquote info" -}}
{{- with (yaml .info)}}
<div class="BackgroundQuote">
{{- with .link}}
<a href="{{.}}" target="_blank" rel="noopener">
{{- end}}
    <p class="BackgroundQuote-body">
      “{{markdown .quote}}”
    </p>
    {{- if .author}}
    <div class="BackgroundQuote-author">
      <span>&mdash; {{.author}}</span>
      {{if .title}},&nbsp;
      <span class="BackgroundQuote-title">{{raw .title}}</span>
      {{- end}}
      {{- if .company}}
      <span class="BackgroundQuote-title">&nbsp;at {{.company}}</span>
      {{- end}}
    </div>
    {{- end}}
{{- if .link}}
</a>
{{- end}}
</div>
{{- end}}
{{end}}

{{define "books"}}
{{- with (yaml .)}}
<ul class="Learn-tileList">
    {{- range .}}
    <li class="Learn-tile">
        <a href="{{.url}}">
            {{- if .thumbnail}}
              <img
              class="Learn-tileThumbnail Learn-tileThumbnail--book"
              alt="{{.title}} thumbnail." src="{{.thumbnail}}">
            {{- end}}
            <span class="Learn-tileTitle">
                {{.title}}
            </span>
        </a>
    </li>
    {{- end}}
</ul>
{{- end}}
{{- end}}

{{define "libraries"}}
{{- range (yaml .)}}
<div class="WhoUsesCaseStudy-librariesWrapper">
  <div class="headerWithLink">
    <h3>{{.title}}</h3>
  </div>
  <ul class="WhoUsesCaseStudy-librariesList">
    {{- range .items}}
    <li class="WhoUsesCaseStudy-library">
      <a class="WhoUsesCaseStudy-libraryTitle" href="{{.url}}">{{.text}}</a>
      <p>{{.desc}}</p>
    </li>
    {{- end}}
  </ul>
  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="{{.viewMoreUrl}}">View More</a>
</div>
{{- end}}
{{- end}}

{{define "projects"}}
<div class="FeaturedUsers">
<h2 id="featured-users" class="sectionHeading">Featured users</h2>
<table>
  <thead>
    <tr>
      <th class="FeaturedUsers--hiddenMobile">Customer</th>
      <th>Brief introduction</th>
      <th>Projects using go</th>
    </tr>
  </thead>
  <tbody>
    {{- range $index, $project := (yaml .)}}
    <tr
      class="js-featuredUsersRow FeaturedUsers-row"
      {{- if (gt $index 2) }}
      hidden {{end}}
    >
      <td class="FeaturedUsers--hiddenMobile">
        <img src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
      </td>
      <td>
        <img
          class="FeaturedUsers--hiddenDesktop"
          src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
        {{.desc}}
      </td>
      <td>
        <ul>
          {{- range .ctas}}
          <li><a href="{{.url}}">{{.text}}</a></li>
          {{- end}}
        </ul>
      </td>
    </tr>
    {{- end}}
  </tbody>
</table>
<button
  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
  type="button">
 More projects
</button>
</div>
{{end}}

{{define "pullquote info" -}}
{{- with (yaml .info)}}
<div class="PullQuote">
  <div class="PullQuote-quoteHeader">
    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
  </div>
  <p class="PullQuote-body">
    {{markdown .quote}}
  </p>
  {{- if .author}}
  <div class="PullQuote-author">
    {{- with .link}}
    <a
      class="PullQuote-link"
      href="{{.}}"
      target="_blank"
      rel="noopener">
    {{- end}}
    <span>
      &mdash; {{.author -}}
    </span>
    {{if .title}},&nbsp;
      <span class="PullQuote-title">{{raw .title}}</span>
    {{- end}}
    {{- if .company}}
      <span class="PullQuote-title">&nbsp;at {{.company -}}</span>
    {{- end}}
    {{- with .link}}</a>{{end}}
  </div>
  {{- end}}
</div>
{{- end}}
{{end}}

{{define "quote info" -}}
{{- with (yaml .info)}}
<div class="QuoteBlock">
  <p class="QuoteBlock-body">
    {{markdown .quote}}
  </p>
  {{- if .author}}
    <div class="QuoteBlock-author">
      {{- with .link}}
        <a class="QuoteBlock-link" href="{{.}}" target="_blank" rel="noopener">
      {{- end}}
      &mdash; {{.author}}
      {{- if .title}},&nbsp;<span>{{.title}}</span>{{end}}
      {{- with .link}}
      </a>
      {{- end -}}
    </div>
  {{- end}}
</div>
{{- end}}
{{end}}

{{define "toolsblurbs"}}
<div class="ToolsBlurbs">
  {{- range (yaml .)}}
  <div class="ToolsBlurbs-blurb">
    <a class="ToolsBlurbs-blurbHeader" href="{{.url}}">
      <img class="ToolsBlurbs-blurbIcon" src="{{.iconSrc}}" alt="{{.title}}">
      <span>{{.title}}</span>
    </a>
    {{- range .paragraphs}}
      <p class="ToolsBlurbs-blurbBody">
        {{.}}
      </p>
    {{- end}}
  </div>
  {{- end}}
</div>
{{end}}
