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!
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

@@ -17,6 +17,6 @@
{{ partial "footer.html" . }}
</footer>
</div>
</div>
</div>
</body>
</html>

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