{{ define "main" }}
{{ partial "background-images.html" . }}
  {{- $images := .Resources.ByType "image" }}
  {{- $videos := .Resources.ByType "video" }}
  {{- $cover := $images.GetMatch (.Params.cover | default "*cover*") }}
  {{- $feature := $images.GetMatch (.Params.feature | default "*feature*") | default $cover }}
  {{- if not $feature }}
    {{- $feature = $videos.GetMatch (.Params.feature | default "*feature*") }}
  {{- end }}
  <article class="prose max-w-full dark:prose-invert glass">
    <header class="max-w-prose">
      {{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
        {{ partial "breadcrumbs.html" . }}
      {{ end }}
      <h1 class="mb-8 mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">
        {{ .Title | emojify }}
      </h1>
      {{ if or
        (.Params.showDate | default (.Site.Params.article.showDate | default true))
        (and (.Params.showDateUpdated | default (.Site.Params.article.showDateUpdated | default false)) (ne (partial "functions/date.html" .Date) (partial "functions/date.html" .Lastmod)))
        (and (.Params.showWordCount | default (.Site.Params.article.showWordCount | default false)) (ne .WordCount 0))
        (and (.Params.showReadingTime | default (.Site.Params.article.showReadingTime | default true)) (ne .ReadingTime 0))
        (.Params.showEdit | default (.Site.Params.article.showEdit | default false))
      }}
        <div class="mb-10 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
          {{ partial "article-meta.html" (dict "context" . "scope" "single") }}
        </div>
      {{ end }}
      {{ if .Params.showFeature | default true }}
        {{ with $feature }}
          <div class="prose">
            {{ $altText := $.Params.featureAlt | default $.Params.coverAlt | default "" }}
            {{ $class := "mb-6 rounded-md" }}
            {{ if eq .ResourceType "video" }}
              {{ partial "video.html" (dict "video" . "alt" $altText "class" $class "lazy" false "autoplay" true "loop" true "muted" true) }}
            {{ else }}
              {{ $webp := $.Page.Site.Params.enableImageWebp | default true }}
              {{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" false "webp" $webp) }}
            {{ end }}
            {{ with $.Params.coverCaption }}
              <figcaption class="-mt-3 mb-6 text-center">{{ . | markdownify }}</figcaption>
            {{ end }}
          </div>
        {{ end }}
      {{ end }}
    </header>
    <section class="prose mt-0 flex max-w-full flex-col dark:prose-invert lg:flex-row">
      <div class="min-h-0 min-w-0 max-w-prose grow">
        {{ .Content | emojify }}
      </div>
      {{ if and (not (.Params.disableToc | default false)) (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in .TableOfContents "<ul") }}
        <div class="px-0 lg:max-w-xs lg:ps-8">
          <div class="toc pe-5 lg:sticky lg:top-10 print:hidden">
            {{ partial "toc.html" . }}
          </div>
        </div>
      {{ end }}
    </section>
    <footer class="max-w-prose pt-8 print:hidden">
      {{ partial "author.html" . }}
      {{ partial "sharing-links.html" . }}
      {{ partial "article-pagination.html" . }}
      {{ if .Params.showComments | default (.Site.Params.article.showComments | default false) }}
        {{ if templates.Exists "partials/comments.html" }}
          <div class="pt-3">
            <hr class="border-dotted border-neutral-300 dark:border-neutral-600" />
            <div class="pt-3">
              {{ partial "comments.html" . }}
            </div>
          </div>
        {{ else }}
          {{ warnf "[CONGO] Comments are enabled for %s but no comments partial exists." .File.Path }}
        {{ end }}
      {{ end }}
    </footer>
  </article>
{{ end }} 