185 lines
6.3 KiB
HTML
185 lines
6.3 KiB
HTML
{{ define "main" }}
|
|
{{ .Scratch.Set "scope" "single" }}
|
|
|
|
|
|
<article>
|
|
{{ if .Params.showHero | default (.Site.Params.article.showHero | default false) }}
|
|
{{ $heroStyle := .Params.heroStyle }}
|
|
{{ if not $heroStyle }}
|
|
{{ $heroStyle = .Site.Params.article.heroStyle }}
|
|
{{ end }}
|
|
{{ $heroStyle := print "partials/hero/" $heroStyle ".html" }}
|
|
{{ if templates.Exists $heroStyle }}
|
|
{{ partial $heroStyle . }}
|
|
{{ else }}
|
|
{{ partial "partials/hero/basic.html" . }}
|
|
{{ end }}
|
|
{{ end }}
|
|
|
|
|
|
<header id="single_header" class="mt-5 max-w-prose">
|
|
{{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
|
|
{{ partial "breadcrumbs.html" . }}
|
|
{{ end }}
|
|
<h1
|
|
class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral"
|
|
>
|
|
{{ .Title | emojify }}
|
|
</h1>
|
|
<div
|
|
class="mt-1 mb-6 text-base text-neutral-500 dark:text-neutral-400 print:hidden"
|
|
>
|
|
{{ partial "article-meta/basic.html" (dict "context" . "scope" "single") }}
|
|
</div>
|
|
|
|
{{ $authorsData := .Site.Data.authors }}
|
|
{{ $taxonomies := .Site.Taxonomies.authors }}
|
|
{{ $baseURL := .Site.BaseURL }}
|
|
{{ $taxonomyLink := 0 }}
|
|
{{ $showAuthor := 0 }}
|
|
|
|
{{ if not (strings.HasSuffix $baseURL "/") }}
|
|
{{ $baseURL = delimit (slice $baseURL "/") "" }}
|
|
{{ end }}
|
|
|
|
{{ if not (.Params.showAuthorBottom | default ( .Site.Params.article.showAuthorBottom | default false)) }}
|
|
|
|
{{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
|
|
{{ $showAuthor = 1 }}
|
|
{{ partial "author.html" . }}
|
|
{{ end }}
|
|
|
|
{{ range $author := .Page.Params.authors }}
|
|
{{ $authorData := index $authorsData $author }}
|
|
{{- if $authorData -}}
|
|
{{ range $taxonomyname, $taxonomy := $taxonomies }}
|
|
{{ if (eq $taxonomyname $author) }}
|
|
{{ $taxonomyLink = delimit (slice $baseURL "/authors/" $author) "" }}
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ partial "author-extra.html" (dict "context" . "data" $authorData "link" $taxonomyLink) }}
|
|
{{- end -}}
|
|
{{ end }}
|
|
|
|
{{ if or $taxonomyLink $showAuthor }}
|
|
<div class="mb-5"></div>
|
|
{{ end }}
|
|
|
|
{{ end }}
|
|
|
|
</header>
|
|
|
|
<section
|
|
class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row"
|
|
>
|
|
{{ if or (and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
|
|
.TableOfContents "<ul")) (.Site.Params.article.showRelatedPosts | default false)
|
|
}}
|
|
<div
|
|
class="order-first lg:ml-auto px-0 lg:order-last ltr:lg:pl-8 rtl:lg:pr-8"
|
|
>
|
|
<div
|
|
class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky {{ if hasPrefix .Site.Params.header.layout "fixed" -}}
|
|
lg:top-[140px]
|
|
{{ else }}
|
|
lg:top-10
|
|
{{ end }}
|
|
"
|
|
>
|
|
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
|
|
.TableOfContents "<ul")
|
|
}}
|
|
{{ partial "toc.html" . }}
|
|
{{ end }}
|
|
{{ if .Site.Params.article.showRelatedPosts |
|
|
default false
|
|
}}
|
|
sd
|
|
{{ end }}
|
|
</div>
|
|
</div>
|
|
{{ end }}
|
|
|
|
|
|
<div class="min-w-0 min-h-0 max-w-fit">
|
|
{{ partial "series/series.html" . }}
|
|
|
|
|
|
<div class="article-content max-w-prose mb-20">
|
|
{{ .Content | emojify }}
|
|
<div>
|
|
<div
|
|
class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900"
|
|
>
|
|
<span
|
|
class="flex items-center justify-between grow dark:text-neutral-300"
|
|
><span class="prose dark:prose-invert"
|
|
>Like what you see? Drop us a message!</span
|
|
>
|
|
<a href="mailto:contact@myco.systems"
|
|
><button
|
|
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
|
|
>
|
|
contact@myco.systems
|
|
</button></a
|
|
></span
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{ if (.Params.showAuthorBottom | default ( .Site.Params.article.showAuthorBottom | default false)) }}
|
|
|
|
{{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
|
|
{{ $showAuthor = 1 }}
|
|
{{ partial "author.html" . }}
|
|
{{ end }}
|
|
|
|
{{ range $author := .Page.Params.authors }}
|
|
{{ $authorData := index $authorsData $author }}
|
|
{{- if $authorData -}}
|
|
{{ range $taxonomyname, $taxonomy := $taxonomies }}
|
|
{{ if (eq $taxonomyname $author) }}
|
|
{{ $taxonomyLink = delimit (slice $baseURL "/authors/" $author) "" }}
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ partial "author-extra.html" (dict "context" . "data" $authorData "link" $taxonomyLink) }}
|
|
{{- end -}}
|
|
{{ end }}
|
|
|
|
{{ if or $taxonomyLink $showAuthor }}
|
|
<div class="mb-10"></div>
|
|
{{ end }}
|
|
|
|
{{ end }}
|
|
|
|
{{ partial "series/series-closed.html" . }}
|
|
{{ partial "sharing-links.html" . }}
|
|
{{ partial "related.html" . }}
|
|
</div>
|
|
|
|
{{ $translations := .AllTranslations }}
|
|
{{ with .File }}
|
|
{{ $path := .Path }}
|
|
{{ range $translations }}
|
|
{{ $lang := print "." .Lang ".md" }}
|
|
{{ $path = replace $path $lang ".md" }}
|
|
{{ end }}
|
|
<script>
|
|
var oid = "views_{{ $path }}"
|
|
var oid_likes = "likes_{{ $path }}"
|
|
</script>
|
|
{{ end }}
|
|
{{ $jsPage := resources.Get "js/page.js" }}
|
|
{{ $jsPage = $jsPage | resources.Minify | resources.Fingerprint "sha512" }}
|
|
<script
|
|
type="text/javascript"
|
|
src="{{ $jsPage.RelPermalink }}"
|
|
integrity="{{ $jsPage.Data.Integrity }}"
|
|
></script>
|
|
</section>
|
|
<footer class="pt-8 max-w-prose print:hidden">
|
|
{{ partial "article-pagination.html" . }}
|
|
</footer>
|
|
</article>
|
|
{{ end }}
|