Compare commits

..

1 commit

Author SHA1 Message Date
Vinzenz Schroeter d400466ad6 wip own theme 2025-06-01 13:44:31 +02:00
24 changed files with 254 additions and 32 deletions

2
.gitignore vendored
View file

@ -6,4 +6,4 @@
_gen _gen
# downloaded by nix # downloaded by nix
themes themes/poison

View file

@ -1,5 +0,0 @@
+++
date = '2025-04-06T12:24:08+02:00'
draft = true
title = 'servicepoint'
+++

View file

@ -28,12 +28,14 @@
devShells = forAllSystems ( devShells = forAllSystems (
{ pkgs, system, ... }: { pkgs, system, ... }:
{ {
default = pkgs.mkShellNoCC rec { default = pkgs.mkShellNoCC {
inputsFrom = [ self.packages.${system}.default ]; inputsFrom = [ self.packages.${system}.default ];
shellHook = '' shellHook = ''
mkdir -p themes mkdir -p themes
ln -snf "${self.packages.${system}.hugo-theme-poison}" themes/poison ln -snf "${self.packages.${system}.hugo-theme-poison}" themes/poison
alias hugo="hugo --baseURL=http://localhost/"
''; '';
}; };
} }

View file

@ -2,41 +2,41 @@
baseURL = '/' baseURL = '/'
#languageCode = 'en-us' #languageCode = 'en-us'
title = 'zerforschen+' title = 'zerforschen+'
theme = 'poison' theme = 'own-theme'
pluralizelisttitles = false pluralizelisttitles = false
[params] [params]
brand = "zerforschen+" brand = "zerforschen+"
description = "" description = ""
dark_mode = true dark_mode = true
front_page_content = ["posts", "projects"] front_page_content = ["posts", "projects"]
menu = [ menu = [
# Dict keys: # Dict keys:
# Name: The name to display on the menu. # Name: The name to display on the menu.
# URL: The directory relative to the content directory. # URL: The directory relative to the content directory.
# HasChildren: If the directory's files should be listed. Default is true. # HasChildren: If the directory's files should be listed. Default is true.
# Limit: If the files should be listed, how many should be shown. # Limit: If the files should be listed, how many should be shown.
{Name = "About", URL = "/about/", HasChildren = false}, { Name = "About", URL = "/about/", HasChildren = false },
{Name = "Posts", URL = "/posts/", HasChildren = true, Limit = 99}, { Name = "Posts", URL = "/posts/", HasChildren = true, Limit = 99 },
# {Name = "Projects", URL = "/projects/"}, # {Name = "Projects", URL = "/projects/"},
] ]
#email_url = "mailto://user@domain" #email_url = "mailto://user@domain"
github_url = "https://github.com/kaesaecracker" github_url = "https://github.com/kaesaecracker"
mastodon_url = "https://chaos.social/@vinzenz" mastodon_url = "https://chaos.social/@vinzenz"
matrix_url = "https://matrix.org" matrix_url = "https://matrix.org"
forgejo_url = "https://git.berlin.ccc.de/vinzenz" forgejo_url = "https://git.berlin.ccc.de/vinzenz"
rss_icon = true rss_icon = true
[taxonomies] [taxonomies]
series = 'series' series = 'series'
tags = 'tags' tags = 'tags'
[params.meta] [params.meta]
favicon = true favicon = true
[pagination] [pagination]
pagerSize = 10 pagerSize = 10

View file

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

View file

@ -0,0 +1,19 @@
body {
font-family: sans-serif;
line-height: 1.5;
margin: 1rem;
}
header {
border-bottom: 1px solid;
margin-bottom: 1rem;
}
footer {
border-top: 1px solid;
margin-top: 1rem;
}
a {
text-decoration: none;
}

View file

@ -0,0 +1 @@
console.log('This site was generated by Hugo.');

View file

@ -0,0 +1,23 @@
baseURL = 'https://example.org/'
languageCode = 'en-US'
title = 'My New Hugo Site'
[[menus.main]]
name = 'Home'
pageRef = '/'
weight = 10
[[menus.main]]
name = 'Posts'
pageRef = '/posts'
weight = 20
[[menus.main]]
name = 'Tags'
pageRef = '/tags'
weight = 30
[module]
[module.hugoVersion]
extended = false
min = "0.116.0"

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="{{ site.Language.LanguageCode }}" dir="{{ or site.Language.LanguageDirection `ltr` }}">
<head>
{{ partial "head.html" . }}
</head>
<body>
<header>
{{ partial "header.html" . }}
</header>
<main>
{{ block "main" . }}{{ end }}
</main>
<footer>
{{ partial "footer.html" . }}
</footer>
</body>
</html>

View file

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

View file

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

View file

@ -0,0 +1,10 @@
{{ 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

@ -0,0 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
{{ partialCached "head/css.html" . }}
{{ partialCached "head/js.html" . }}
<meta name="color-scheme" content="light dark">

View file

@ -0,0 +1,9 @@
{{- with resources.Get "css/main.css" }}
{{- if eq hugo.Environment "development" }}
<link rel="stylesheet" href="{{ .RelPermalink }}">
{{- else }}
{{- with . | minify | fingerprint }}
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{- end }}
{{- end }}
{{- end }}

View file

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

View file

@ -0,0 +1,3 @@
<h1>{{ site.Title }}</h1>
{{ partial "menu.html" (dict "menuID" "main" "page" .) }}
{{ partial "socials.html" . }}

View file

@ -0,0 +1,51 @@
{{- /*
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

@ -0,0 +1,23 @@
{{- /*
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 }}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,31 @@
name = 'the theme'
# license = ''
# licenselink = 'https://github.com/owner/repo/LICENSE'
# description = 'Theme description'
#
# # The home page of the theme, where the source can be found
# homepage = 'https://github.com/owner/repo'
#
# # If you have a running demo of the theme
# demosite = 'https://owner.github.io/repo'
#
# # Taxonomy terms
# tags = ['blog', 'company']
# features = ['some', 'awesome', 'features']
#
# # If the theme has multiple authors
# authors = [
# {name = 'Name of author', homepage = 'Website of author'},
# {name = 'Name of author', homepage = 'Website of author'}
# ]
#
# # If the theme has a single author
# [author]
# name = 'Your name'
# homepage = 'Your website'
#
# # If porting an existing theme
# [original]
# author = 'Name of original author'
# homepage = 'Website of original author'
# repo = 'https://github.com/owner/repo'