Reorganize partials

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-08-14 17:27:01 +03:00
parent 39779cdc88
commit 2200d995ce
21 changed files with 56 additions and 47 deletions

View File

@@ -0,0 +1,22 @@
<footer class="footer">
<div class="footer-container">
<div class="copyright">
<a href="{{- relURL "" -}}">{{ .Site.Title }}</a> &copy;
{{ now.Year }}
</div>
<nav class="footer-nav">
<ul>
{{ $len := len .Site.Params.footer }}
{{ range $i, $el := .Site.Params.footer }}
<li>
<a href="{{- $el.url | safeURL -}}">{{ $el.name }}</a>
</li>
{{ if lt (add $i 1) $len }}
<span class="middot">&middot;</span>
{{ end }}
{{ end }}
</ul>
</nav>
</div>
</footer>

View File

@@ -0,0 +1,2 @@
<meta name="robots" content="all,follow" />
<meta name="googlebot" content="index,follow,snippet,archive" />

View File

@@ -0,0 +1,8 @@
{{ $opts := dict "targetPath" "css/main.css" "includePaths" (slice "node_modules") }}
{{ with resources.Get "sass/main.scss" | css.Sass $opts | minify | fingerprint }}
<link
rel="stylesheet"
href="{{- .RelPermalink -}}"
integrity="{{- .Data.Integrity -}}"
/>
{{ end }}

View File

@@ -0,0 +1,29 @@
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>
{{- if .IsHome -}}
{{ .Site.Title }}
{{- else -}}
{{ .Site.Title }} &middot;
{{ .Title }}
{{- end -}}
</title>
{{ with .Site.Params.description }}
<meta name="description" content="{{- . -}}" />
{{ end }}
<meta name="viewport" content="width=device-width, initial-scale=1" />
{{ partial "components/head/bots.html" . }}
{{ partial "components/head/rss.html" . }}
{{ partial "components/head/opengraph.html" . }}
{{ partial "components/head/twitter.html" . }}
{{ partial "components/head/js.html" . }}
{{ partial "components/head/css.html" . }}
</head>

View File

@@ -0,0 +1,9 @@
{{ $opts := dict "minify" true }}
{{ with resources.Get "js/main.js" | js.Build $opts | minify | fingerprint }}
<script
src="{{ .RelPermalink }}"
integrity="{{ .Data.Integrity }}"
crossorigin="anonymous"
defer
></script>
{{ end }}

View File

@@ -0,0 +1,79 @@
<meta property="og:title" content="{{ .Title }}" />
<meta
property="og:description"
content="{{- with .Description -}}
{{- . -}}
{{- else -}}
{{- if .IsPage -}}
{{- with .Site.Params.description -}}{{- . -}}{{- end -}}
{{- end -}}
{{- end -}}"
/>
<meta
property="og:type"
content="{{- if .IsPage -}}
article
{{- else -}}
website
{{- end -}}"
/>
<meta property="og:url" content="{{- .Permalink -}}" />
{{ with .Params.image }}
{{ $image := $.Resources.GetMatch . }}
{{ with $image }}
{{ $thumb := .Resize "400x" }}
<meta property="og:image" content="{{- $thumb.Permalink -}}" />
{{ end }}
{{ end }}
{{ $iso8601 := "2000-01-01T00:00:00-01:00" }}
{{ if .IsPage }}
{{ if not .PublishDate.IsZero }}
<meta
property="article:published_time"
{{ .PublishDate.Format $iso8601 | printf "content=%q" | safeHTMLAttr }}
/>
{{ else if not .Date.IsZero }}
<meta
property="article:published_time"
{{ .Date.Format $iso8601 | printf "content=%q" | safeHTMLAttr }}
/>
{{ end }}
{{ end }}
{{/* .IsPage */}}
{{ with .Params.audio }}
<meta property="og:audio" content="{{- . -}}" />
{{ end }}
{{ with .Params.locale }}
<meta property="og:locale" content="{{- . -}}" />
{{ end }}
{{ with .Site.Params.title }}
<meta property="og:site_name" content="{{- . -}}" />
{{ end }}
{{ with .Params.videos }}
{{ range . }}
<meta property="og:video" content="{{- . | absURL -}}" />
{{ end }}
{{ end }}
{{ $siteSeries := .Site.Taxonomies.series }}{{ with .Params.series }}
{{ range $name := . }}
{{ $series := index $siteSeries $name }}
{{ range $page := first 6 $series.Pages }}
{{ if ne $page.Permalink .Permalink }}
<meta property="og:see_also" content="{{- $page.Permalink -}}" />
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ if .IsPage }}
<meta property="article:section" content="{{- .Section -}}" />
{{ with .Params.tags }}
{{ range . }}
<meta property="article:tag" content="{{- . -}}" />
{{ end }}
{{ end }}
{{ end }}

View File

@@ -0,0 +1,8 @@
{{ with .OutputFormats.Get "RSS" }}
<link
href="{{- .Permalink -}}"
rel="{{- .Rel -}}"
type="{{- .MediaType.Type -}}"
title="{{- $.Site.Title -}}"
/>
{{ end }}

View File

@@ -0,0 +1,22 @@
<meta name="twitter:title" content="{{- .Title -}}" />
<meta
name="twitter:description"
content="{{- with .Description -}}
{{- . -}}
{{- else -}}
{{- if .IsPage -}}
{{- .Summary -}}
{{- else -}}
{{- with .Site.Params.description -}}{{- . -}}{{- end -}}
{{- end -}}
{{- end -}}"
/>
{{ with .Params.image }}
{{ $image := $.Resources.GetMatch . }}
{{ with $image }}
{{ $thumb := .Resize "400x" }}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="{{- $thumb.Permalink -}}" />
{{ end }}
{{ end }}

View File

@@ -0,0 +1,26 @@
<header class="header">
<div class="header-container">
<div class="site-title">
<a href="{{- relURL "" -}}">{{ .Site.Title }}</a>
</div>
<input
type="checkbox"
id="nav-toggle"
class="nav-toggle"
aria-label="Toggle navigation"
/>
<label for="nav-toggle" class="nav-toggle-label">
<span></span>
<span></span>
</label>
<nav class="nav">
<ul>
{{ range .Site.Params.navigation }}
<li><a href="{{- .url | safeURL -}}">{{ .name }}</a></li>
{{ end }}
</ul>
</nav>
</div>
</header>

View File

@@ -0,0 +1,9 @@
<section class="hero">
<h1>{{ .Title }}</h1>
<div class="meta">
<span class="date">{{ .Date | time.Format ":date_medium" }}</span>
&middot;
<span class="duration">{{ printf "%d MIN READ" .ReadingTime }}</span>
</div>
{{ partial "components/image/index.html" .Params.hero }}
</section>

View File

@@ -0,0 +1,22 @@
{{ $imageData := partial "components/image/reflect.html" . }}
{{- with $imageData.image -}}
<figure class="captioned-image lightbox">
<a
href="{{- .RelPermalink -}}"
data-pswp-width="{{- .Width -}}"
data-pswp-height="{{- .Height -}}"
>
<img
src="{{- .RelPermalink -}}"
width="{{- .Width -}}"
height="{{- .Height -}}"
loading="lazy"
{{ with $imageData.title }}title="{{- . -}}"{{ end }}
{{ with $imageData.alt }}alt="{{- . -}}"{{ end }}
/>
</a>
{{ with $imageData.caption }}
<figcaption>{{ . }}</figcaption>
{{ end }}
</figure>
{{- end -}}

View File

@@ -0,0 +1,31 @@
{{- $input := . -}}
{{- $src := $input -}}
{{- $caption := "" -}}
{{- $title := "" -}}
{{- $alt := "" -}}
{{- if reflect.IsMap $input -}}
{{- $src = $input.src | default "" -}}
{{- $caption = $input.caption | default "" -}}
{{- $title = $input.title | default $caption | default "" -}}
{{- $alt = $input.alt | default $title | default "" -}}
{{- end -}}
{{ $result := dict "image" nil "caption" $caption "title" $title "alt" $alt }}
{{- if $src -}}
{{- $isRemote := strings.HasPrefix $src "http" -}}
{{- $image := "" -}}
{{- if $isRemote -}}
{{- $remote := resources.GetRemote $src -}}
{{- $image = resources.Copy (printf "static/3rd-party/%s" $remote.Name) $remote -}}
{{- else -}}
{{- $image = resources.Get $src -}}
{{- end -}}
{{- $result = (dict "image" $image "caption" $caption "title" $title "alt" $alt) -}}
{{- end -}}
{{- return $result -}}

View File

@@ -0,0 +1,5 @@
<section class="meta">
<h1>{{ .Page.Title }}</h1>
<p class="length">A {{ .Kind }} with {{ len .Pages }} items</p>
{{ .Content }}
</section>