2023-08-07 23:48:07 +01:00
|
|
|
{{ define "main" }}
|
2025-03-29 12:51:42 +00:00
|
|
|
<div class="hx:mx-auto hx:flex {{ partial `utils/page-width` . }}">
|
2023-08-24 22:29:53 +01:00
|
|
|
{{ partial "sidebar.html" (dict "context" . "disableSidebar" true "displayPlaceholder" true) }}
|
2023-08-07 23:48:07 +01:00
|
|
|
{{ partial "toc.html" . }}
|
2025-03-29 12:51:42 +00:00
|
|
|
<article class="hx:w-full hx:break-words hx:flex hx:min-h-[calc(100vh-var(--navbar-height))] hx:min-w-0 hx:justify-center hx:pb-8 hx:pr-[calc(env(safe-area-inset-right)-1.5rem)]">
|
|
|
|
<main class="hx:w-full hx:min-w-0 hx:max-w-6xl hx:px-6 hx:pt-4 hx:md:px-12">
|
2023-08-07 23:48:07 +01:00
|
|
|
{{ partial "breadcrumb.html" . }}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{ if .Title }}<h1 class="hx:mt-2 hx:text-4xl hx:font-bold hx:tracking-tight hx:text-slate-900 hx:dark:text-slate-100">{{ .Title }}</h1>{{ end }}
|
|
|
|
<div class="hx:mt-4 hx:mb-16 hx:text-gray-500 hx:text-sm hx:flex hx:items-center hx:flex-wrap hx:gap-y-2">
|
|
|
|
{{- with $date := .Date }}<span class="hx:mr-1">{{ partial "utils/format-date" $date }}</span>{{ end -}}
|
2023-11-16 20:49:18 -05:00
|
|
|
{{- $lazyLoading := site.Params.enableImageLazyLoading | default true -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{ if and .Date .Params.authors }}<span class="hx:mx-1">·</span>{{ end -}}
|
2023-11-16 20:49:18 -05:00
|
|
|
{{- with $.Params.authors -}}
|
|
|
|
{{- range $i, $author := . -}}
|
|
|
|
{{- if reflect.IsMap $author -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{- if and $i (not $author.image) }}<span class="hx:mr-1">,</span>{{ end -}}
|
2023-11-16 20:49:18 -05:00
|
|
|
<a
|
|
|
|
{{ with $author.link }}href="{{ . }}" target="_blank"{{ end }}
|
2025-03-29 12:51:42 +00:00
|
|
|
class="hx:group hx:inline-flex hx:items-center hx:text-current hx:gap-x-1.5 hx:mx-1"
|
2023-11-16 20:49:18 -05:00
|
|
|
{{ with $author.name }}title="{{ . }}"{{ end }}
|
|
|
|
>
|
|
|
|
{{- with $image := $author.image }}
|
|
|
|
{{- $isLocal := not (urls.Parse $image).Scheme -}}
|
|
|
|
{{- $startsWithSlash := hasPrefix $image "/" -}}
|
|
|
|
{{- if and $isLocal $startsWithSlash }}
|
|
|
|
{{- $image = (relURL (strings.TrimPrefix "/" $image)) -}}
|
|
|
|
{{ end -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
<img src="{{ $image | safeURL }}" alt="{{ $author.name }}" class="hx:inline-block hx:h-4 hx:w-4 hx:rounded-full" {{ if $lazyLoading }}loading="lazy"{{ end }} />
|
2023-11-16 20:49:18 -05:00
|
|
|
{{ end -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
<div class="hx:group-hover:underline">{{ $author.name }}</div>
|
2023-11-16 20:49:18 -05:00
|
|
|
</a>
|
|
|
|
{{- else -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{- if $i }}<span class="hx:mr-1">,</span>{{ end -}}<span class="hx:mx-1">{{ $author }}</span>
|
2023-08-07 23:48:07 +01:00
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
2023-11-16 20:49:18 -05:00
|
|
|
{{- end -}}
|
|
|
|
</div>
|
2023-08-07 23:48:07 +01:00
|
|
|
<div class="content">
|
|
|
|
{{ .Content }}
|
|
|
|
</div>
|
2025-02-26 23:13:43 +00:00
|
|
|
{{- partial "components/last-updated.html" . -}}
|
|
|
|
{{- if (site.Params.blog.article.displayPagination | default true) -}}
|
|
|
|
{{- .Scratch.Set "reversePagination" true -}}
|
|
|
|
{{- partial "components/pager.html" . -}}
|
|
|
|
{{ end }}
|
|
|
|
{{- partial "components/comments.html" . -}}
|
2023-08-07 23:48:07 +01:00
|
|
|
</main>
|
|
|
|
</article>
|
|
|
|
</div>
|
2025-02-26 23:13:43 +00:00
|
|
|
{{ end }}
|