Compare commits

..

5 Commits

Author SHA1 Message Date
627fbf1b8d Checkin 2026-06-19 23:21:54 +02:00
29f2af5d30 image 2026-06-16 09:51:39 +02:00
dbc547c5f0 image rendering 2026-06-16 09:10:37 +02:00
386bc1ac61 Aufräumen 2026-06-15 19:51:40 +02:00
df1a65bddc ignore 2026-06-15 19:43:49 +02:00
21 changed files with 80 additions and 157 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
ivi/public/
northsidestudio/public/
nss/public/

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 KiB

View File

@@ -1,4 +1,8 @@
![The Nothside Studio](/images/NSS_middle.png) ---
title: "Northside Studio"
---
{{< figure src="/images/NSS_middle.png" width="600" alt="Northside Studio" title="Morthside Studio" >}}
If you want real content from real people, look her! If you want real content from real people, look her!
We don't use AI for content creation. Imperfection to the perfect. We love the imperfect. We don't use AI for content creation. Imperfection to the perfect. We love the imperfect.

View File

@@ -0,0 +1,2 @@
# Test

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

View File

@@ -1,4 +0,0 @@
footer {
border-top: 1px solid #222;
margin-top: 1rem;
}

View File

@@ -1,4 +0,0 @@
header {
border-bottom: 1px solid #222;
margin-bottom: 1rem;
}

View File

@@ -1,15 +0,0 @@
@import "components/header.css";
@import "components/footer.css";
body {
color: #222;
font-family: sans-serif;
line-height: 1.5;
margin: 1rem;
max-width: 768px;
}
a {
color: #00e;
text-decoration: none;
}

View File

@@ -0,0 +1,41 @@
{{- $src := .Destination -}}
{{- $alt := .Text -}}
{{- $img := .Page.Resources.GetMatch $src -}}
{{- if not $img -}}
{{- $img = resources.Get $src -}}
{{- end -}}
{{- if $img -}}
{{- $widths := slice 480 768 1024 1366 1920 -}}
{{- $origWidth := $img.Width -}}
{{- $origHeight := $img.Height -}}
{{- $srcsetEntries := slice -}}
{{- range $w := $widths -}}
{{- if le $w $origWidth -}}
{{- $resized := $img.Process (printf "resize %dx webp q85" $w) -}}
{{- $srcsetEntries = $srcsetEntries | append (printf "%s %dw" $resized.RelPermalink $w) -}}
{{- end -}}
{{- end -}}
{{- $fallbackWidth := 1024 -}}
{{- if lt $origWidth 1024 -}}
{{- $fallbackWidth = $origWidth -}}
{{- end -}}
{{- $fallback := $img.Process (printf "resize %dx jpg q85" $fallbackWidth) -}}
<img
src="{{ $fallback.RelPermalink }}"
{{- if $srcsetEntries }}
srcset="{{ delimit $srcsetEntries ", " }}"
sizes="(max-width: 768px) 100vw, 720px"
{{- end }}
alt="{{ $alt }}"
width="{{ $origWidth }}"
height="{{ $origHeight }}"
{{- if eq .Ordinal 0 }}
fetchpriority="high"
{{- else }}
loading="lazy"
decoding="async"
{{- end }}>
{{- else -}}
<img src="{{ $src }}" alt="{{ $alt }}">
{{- end -}}

View File

@@ -1,51 +0,0 @@
{{- /*
Renders a menu for the given menu ID.
@context {page} page The current page.
@context {string} menuID The menu ID.
@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }}
*/}}
{{- $page := .page }}
{{- $menuID := .menuID }}
{{- with index site.Menus $menuID }}
<nav>
<ul>
{{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
</ul>
</nav>
{{- end }}
{{- define "_partials/inline/menu/walk.html" }}
{{- $page := .page }}
{{- range .menuEntries }}
{{- $attrs := dict "href" .URL }}
{{- if $page.IsMenuCurrent .Menu . }}
{{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }}
{{- else if $page.HasMenuCurrent .Menu .}}
{{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }}
{{- end }}
{{- $name := .Name }}
{{- with .Identifier }}
{{- with T . }}
{{- $name = . }}
{{- end }}
{{- end }}
<li>
<a
{{- range $k, $v := $attrs }}
{{- with $v }}
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
{{- end }}
{{- end -}}
>{{ $name }}</a>
{{- with .Children }}
<ul>
{{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
</ul>
{{- end }}
</li>
{{- end }}
{{- end }}

View File

@@ -1,23 +0,0 @@
{{- /*
For a given taxonomy, renders a list of terms assigned to the page.
@context {page} page The current page.
@context {string} taxonomy The taxonomy.
@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
*/}}
{{- $page := .page }}
{{- $taxonomy := .taxonomy }}
{{- with $page.GetTerms $taxonomy }}
{{- $label := (index . 0).Parent.LinkTitle }}
<div>
<div>{{ $label }}:</div>
<ul>
{{- range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{- end }}
</ul>
</div>
{{- end }}

View File

@@ -1,9 +0,0 @@
{{ define "main" }}
{{ .Content }}
{{ range site.RegularPages }}
<section>
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ .Summary }}
</section>
{{ end }}
{{ end }}

View File

@@ -1,10 +0,0 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
{{ $dateHuman := .Date | time.Format ":date_long" }}
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time>
{{ .Content }}
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
{{ end }}

View File

@@ -1,10 +0,0 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<section>
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ .Summary }}
</section>
{{ end }}
{{ end }}

View File

@@ -1,7 +0,0 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
{{ end }}

View File

@@ -1,7 +0,0 @@
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ end }}
{{ end }}

View File

@@ -18,20 +18,31 @@
url('/fonts/If.woff') format('woff'); url('/fonts/If.woff') format('woff');
} }
body {
background-color: #f5efe4;
}
figure img {
max-width: 30%;
height: auto;
justify-content: center;
}
.all { .all {
margin: auto; margin: auto;
width: 60% width: 75%;
background-color: #f5efe4;
} }
.container { .container {
margin: 0, auto; margin: 0, auto;
width: 90%; width: 100%;
font-family: "x-typewriter"; font-family: "x-typewriter";
} }
.title { .title {
margin: 0, auto; margin: 0, auto;
width: 90%; width: 100%;
font-family: "if"; font-family: "if";
text-align: center; text-align: center;
} }
@@ -44,15 +55,16 @@ nav, footer {
nav { nav {
display: flex; display: flex;
flex-direction: column; flex-direction: row;
} }
nav > a { nav > a {
flex: 1; flex: 1;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
color: #fff; color: #fff;
@media only screen and (min-width: 768px) { @media only screen and (max-width: 768px) {
nav { flex-direction: row;} nav { flex-direction: column;}
} }
} }