Compare commits

...
This repository has been archived on 2026-07-13. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Author SHA1 Message Date
Vinzenz Schroeter
d400466ad6 wip own theme 2025-06-01 13:44:31 +02:00
24 changed files with 258 additions and 36 deletions

2
.gitignore vendored
View file

@ -6,4 +6,4 @@
_gen
# 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 (
{ pkgs, system, ... }:
{
default = pkgs.mkShellNoCC rec {
default = pkgs.mkShellNoCC {
inputsFrom = [ self.packages.${system}.default ];
shellHook = ''
mkdir -p themes
ln -snf "${self.packages.${system}.hugo-theme-poison}" themes/poison
alias hugo="hugo --baseURL=http://localhost/"
'';
};
}

View file

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