{{ $page := . }}

{{ $alert := $page.Param "paige.alert" }}
{{ $authors := partial "paige/func-authors.html" $page | and ($page.Param "paige.pages.disable_authors" | not) }}
{{ $categories := $page.GetTerms "categories" }}
{{ $date := and $page.IsPage $page.PublishDate | and ($page.Param "paige.pages.disable_date" | not) }}
{{ $description := $page.Description | markdownify | and ($page.Param "paige.pages.disable_description" | not) }}
{{ $first := templates.Exists "partials/paige/page-header-first.html" }}
{{ $format := $page.Param "paige.site.date_format" | default ":date_long" }}
{{ $last := templates.Exists "partials/paige/page-header-last.html" }}
{{ $link := $page.Params.link }}
{{ $microdata := $page.Params.paige.pages.microdata }}
{{ $normal := eq ($page.Param "paige.site.keyword_style" | default "text") "text" }}
{{ $series := $page.GetTerms "series" | and ($page.Param "paige.pages.disable_series" | not) }}
{{ $tags := $page.GetTerms "tags" }}
{{ $time := $page.ReadingTime | and ($page.Param "paige.pages.disable_reading_time" | not) }}
{{ $title := $page.LinkTitle | markdownify | and ($page.Param "paige.pages.disable_title" | not) }}
{{ $toc := and $page.Content (ne $page.TableOfContents `<nav id="TableOfContents"></nav>`) | and ($page.Param "paige.pages.disable_toc" | not) }}
{{ $words := $page.WordCount | and ($page.Param "paige.pages.disable_word_count" | not) }}

{{ $keywords := sort (append $categories $tags) "LinkTitle" | and ($page.Param "paige.pages.disable_keywords" | not) }}

{{ if or $alert $authors $date $description $first $keywords $last $time $series $title $toc $words }}
    <header class="mw-100" id="paige-page-header">
        <div class="align-items-center d-flex flex-column">
            {{ partial "paige/func-include.html" (dict "name" "page-header-first%s.html" "page" $page) }}

            {{ with $title }}
                <h1 class="fw-bold" id="paige-page-title" {{ if $microdata }} itemprop="headline name" {{ end }}>{{ if $link }}<a href="{{ $link }}">{{ . }}</a>{{ else }}{{ . }}{{ end }}</h1>
            {{ end }}

            {{ with $description }}
                <p class="lead paige-row-tall" id="paige-page-description" {{ if $microdata }} itemprop="alternativeHeadline description" {{ end }}>{{ . }}</p>
            {{ end }}

            {{ if or $authors $date $keywords $time $series }}
                <div id="paige-page-metadata">
                    {{ with $keywords }}
                        <p class="{{ if $normal }} paige-row-short {{ end }} text-center {{ if $normal }} text-secondary {{ end }}" id="paige-page-keywords">
                            {{ range $i, $term := . -}}
                                {{- $kind := false -}}

                                {{- if in $categories $term -}}
                                    {{- $kind = "category" -}}
                                {{- else -}}
                                    {{- $kind = "tag" -}}
                                {{- end -}}

                                {{- if $normal -}}
                                    {{- if gt $i 0 }} · {{ end -}}

                                    <a class="link-secondary paige-page-keyword-{{ $kind }}" href="{{ .RelPermalink }}" {{ if $microdata }} itemprop="keywords" {{ end }}>{{ .LinkTitle }}</a>
                                {{- else -}}
                                    {{- if gt $i 0 }} {{ end -}}

                                    <a class="badge paige-page-keyword-{{ $kind }} text-bg-secondary text-decoration-none" href="{{ .RelPermalink }}" {{ if $microdata }} itemprop="keywords" {{ end }}>{{ .LinkTitle }}</a>
                                {{- end -}}
                            {{- end }}
                        </p>
                    {{ end }}

                    {{ with $series }}
                        <p class="paige-row-short text-center text-secondary" id="paige-page-series">
                            {{ range $i, $series := . -}}
                                {{- if gt $i 0 }} · {{ end -}}

                                <a class="link-secondary" href="{{ .RelPermalink }}" {{ if $microdata }} itemprop="isPartOf" {{ end }}>{{ .LinkTitle }}</a>
                            {{- end }}
                        </p>
                    {{ end }}

                    {{ with $authors }}
                        <p class="paige-row-short text-center text-secondary" id="paige-page-authors">
                            {{ range $i, $author := . -}}
                                {{- if gt $i 0 }} · {{ end -}}

                                <a class="link-secondary" href="{{ .RelPermalink }}" {{ if $microdata }} itemprop="author" {{ end }}>{{ .LinkTitle }}</a>
                            {{- end }}
                        </p>
                    {{ end }}

                    {{ with $date }}
                        <p class="paige-row-short text-center text-secondary" id="paige-page-date">
                            <time datetime="{{ .Format `2006-01-02` }}" {{ if $microdata }} itemprop="datePublished" {{ end }}>{{ time.Format $format . }}</time>
                        </p>
                    {{ end }}

                    {{ with $words }}
                        <p class="paige-row-short text-center text-secondary" id="paige-page-word-count" {{ if $microdata }} itemprop="wordCount" {{ end }}>{{ . }} {{ i18n "paige_words" . }}</p>
                    {{ end }}

                    {{ with $time }}
                        <p class="paige-row-short text-center text-secondary" id="paige-page-reading-time" {{ if $microdata }} itemprop="timeRequired" {{ end }}>{{ . }} {{ i18n "paige_minutes" . }}</p>
                    {{ end }}
                </div>
            {{ end }}

            {{ with $alert }}
                <div class="alert alert-{{ .type }} paige-row-tall" id="paige-page-alert" role="alert">{{ .message | markdownify }}</div>
            {{ end }}

            {{ if $toc }}
                <div class="paige-row-tall" id="paige-page-toc">
                    <div class="border pe-3 ps-3 pt-3 rounded">
                        {{ $page.TableOfContents }}
                    </div>
                </div>
            {{ end }}

            {{ partial "paige/func-include.html" (dict "name" "page-header-last%s.html" "page" $page) }}
        </div>
    </header>
{{ end }}
