diff --git a/.gitignore b/.gitignore index 088f2dc..565c39b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ /public/ -.hugo_build.lock .direnv diff --git a/.helix/languages.toml b/.helix/languages.toml new file mode 100644 index 0000000..7b022c7 --- /dev/null +++ b/.helix/languages.toml @@ -0,0 +1,7 @@ +[[language]] +name = "css" +auto-format = false + +[[language]] +name = "html" +auto-format = false diff --git a/README.md b/README.md index fa9426f..0adead1 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,4 @@ ## Lizenz -CC0 1.0 \| Jan Kremer \| 2021–2025 +CC0 1.0 | Jan Kremer | 2021–2025 diff --git a/archetypes/blog.md b/archetypes/blog.md deleted file mode 100644 index 1ac76b1..0000000 --- a/archetypes/blog.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = {{ replace .Name "-" " " | title }} -date = {{ .Date }} -description = -tags = -draft = true -+++ diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index cf8c64f..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = {{ replace .Name "-" " " | title }} -date = {{ .Date }} -draft = true -+++ diff --git a/archetypes/photos.md b/archetypes/photos.md deleted file mode 100644 index 1ac76b1..0000000 --- a/archetypes/photos.md +++ /dev/null @@ -1,7 +0,0 @@ -+++ -title = {{ replace .Name "-" " " | title }} -date = {{ .Date }} -description = -tags = -draft = true -+++ diff --git a/content/_index.md b/content/_index.md index ac36e06..e0db12e 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,2 +1,6 @@ +++ +title = "Jan Kremer" +sort_by = "date" +template = "index.html" +page_template = "blog-page.html" +++ diff --git a/content/about.md b/content/about.md index 14f705a..f5589cd 100644 --- a/content/about.md +++ b/content/about.md @@ -1,6 +1,7 @@ +++ -date = '2024-12-12' -title = 'Über mich' +title = "Über mich" +date = 2024-12-12 +updated = 2026-03-06 +++ Mein Name ist _Jan Kremer_. Ich bin 29 Jahre alt und habe *Pharmazie* studiert. Manchmal schreibe ich über Technik und Software die ich benutze. diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..c504e1b --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Blog" +sort_by = "date" +template = "blog.html" +page_template = "blog-page.html" ++++ diff --git a/content/blog/discord.md b/content/blog/discord.md index 19eef00..604c168 100644 --- a/content/blog/discord.md +++ b/content/blog/discord.md @@ -1,13 +1,23 @@ +++ -date = '2026-02-16T19:45:02+01:00' -tags = 'micro' -title = 'Discord' +title = "Discord" +date = 2026-02-16T19:45:02+01:00 +tags = [ "micro" ] +++ -Since [Discord announced](https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally) it will start asking users for age verification, I became obsessed with reading about alternatives to the platform. And there are a lot of them. As a self-hoster, I immediately thought of Matrix and XMPP. Both have their pros and cons and different implementations. +Since +[Discord announced](https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally) +it will start asking users for age verification, I became obsessed with reading +about alternatives to the platform. And there are a lot of them. As a +self-hoster, I immediately thought of Matrix and XMPP. Both have their pros and +cons and different implementations. -I was almost ready to pick one of them when I stopped and thought to myself, _would I really use them?_ +I was almost ready to pick one of them when I stopped and thought to myself, +_would I really use them?_ And my answer is a clear: **No!** -I will not replace Discord because _I don't even use Discord now_. I haven't had an account there for years. When I message my friends, it's either on Signal, WhatsApp, or iMessage, which are all end-to-end-encrypted (E2EE) messengers. The only thing I'm waiting for is E2EE RCS (Rich Communication Services) so I can ditch WhatsApp at some point. +I will not replace Discord because _I don't even use Discord now_. I haven't had +an account there for years. When I message my friends, it's either on Signal, +WhatsApp, or iMessage, which are all end-to-end-encrypted (E2EE) messengers. The +only thing I'm waiting for is E2EE RCS (Rich Communication Services) so I can +ditch WhatsApp at some point. diff --git a/content/blog/email.md b/content/blog/email.md index d0392c3..addc03c 100644 --- a/content/blog/email.md +++ b/content/blog/email.md @@ -1,7 +1,9 @@ +++ -date = '2026-02-20T15:46:52+01:00' -tags = 'micro' -title = 'Email' +title = "Email" +date = 2026-02-20T15:46:52+01:00 +tags = [ "micro" ] +++ -It's a shame we don't have _ubiquitous decentralized chat_ equivalent to **email**. I know **Matrix** and **XMPP** exist, but neither are complete enough. And they dont't have a lot of users. +It's a shame we don't have _ubiquitous decentralized chat_ equivalent to +**email**. I know **Matrix** and **XMPP** exist, but neither are complete +enough. And they dont't have a lot of users. diff --git a/content/blog/markdown-tables.md b/content/blog/markdown-tables.md index d9c3472..94c92e3 100644 --- a/content/blog/markdown-tables.md +++ b/content/blog/markdown-tables.md @@ -1,14 +1,14 @@ +++ -date = '2023-12-25T16:28:52+01:00' -tags = ['micro'] -title = 'Markdown Tables Suck' +title = "Markdown Tables Suck" +date = 2023-12-25T16:28:52+01:00 +tags = [ "micro" ] +++ -Tables are arguably the worst part of Markdown. -No horizontal lines except for the mandatory one at the top. -The only feature is the possibility to align cells. +Tables are arguably the worst part of Markdown. No horizontal lines except for +the mandatory one at the top. The only feature is the possibility to align +cells. Org Mode does much better, but isn't perfect either. -Don't get me wrong. It's nice to have a simple tool for simple tables. -But sometimes I need more customizability. +Don't get me wrong. It's nice to have a simple tool for simple tables. But +sometimes I need more customizability. diff --git a/content/blog/selbsthosting.md b/content/blog/selbsthosting.md index e50cb26..aa7431c 100644 --- a/content/blog/selbsthosting.md +++ b/content/blog/selbsthosting.md @@ -1,8 +1,8 @@ +++ -date = '2025-04-14' -description = 'Kleiner Computer, große Pläne' -tags = ['selbsthosting', 'nixos', 'git'] -title = 'Selbsthosting' +title = "Selbsthosting" +date = 2025-04-14 +description = "Kleiner Computer, große Pläne" +tags = [ "selbsthosting", "nixos", "git" ] +++ Seit etwa 2020 hat mich die Idee fasziniert, meinen _eigenen Server zu betreiben_ – also die volle Kontrolle über Daten, Dienste und Medien zu haben. Vor allem auf Reddit, und dort besonders in den Communities [r/selfhosted](https://www.reddit.com/r/selfhosted) und [r/homelab](https://www.reddit.com/r/homelab), habe ich immer wieder spannende Projekte gesehen. Lange blieb das für mich ein Traum – zu wenig Zeit, zu wenig Geld. Aber im April 2024 war es so weit: Mein kleines Selbsthosting-Abenteuer begann. diff --git a/content/blog/timestamps.md b/content/blog/timestamps.md index d7aa37b..9009b05 100644 --- a/content/blog/timestamps.md +++ b/content/blog/timestamps.md @@ -1,15 +1,17 @@ +++ -date = '2023-11-15T10:12:30+01:00' -tags = ['micro'] -title = 'Use Timestamps' +title= "Use Timestamps" +date= 2023-11-15T10:12:30+01:00 +tags= ["micro"] +++ -Every blog post should include a timestamp. -In fact, this extends to almost anything online and even offline. +Every blog post should include a timestamp. In fact, this extends to almost +anything online and even offline. -Also, don't make me look for the date. -Put the date as obvious as possible, preferably at the beginning of the post. +Also, don't make me look for the date. Put the date as obvious as possible, +preferably at the beginning of the post. -I was reading [Julia Evans post about nix](https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/) and it was not immediately clear to me if this was a recent post. -Only when I copied the URL to complain about it I discovered the date there. -Safari hides most of the URL by default. +I was reading +[Julia Evans post about nix](https://jvns.ca/blog/2023/02/28/some-notes-on-using-nix/) +and it was not immediately clear to me if this was a recent post. Only when I +copied the URL to complain about it I discovered the date there. Safari hides +most of the URL by default. diff --git a/content/btc.md b/content/btc.md index b0fe254..7f31670 100644 --- a/content/btc.md +++ b/content/btc.md @@ -1,7 +1,7 @@ +++ -date = '2022-12-10' -tags = ['crypto'] -title = 'Bitcoin' +title = "Bitcoin" +date = 2022-12-10 +tags = [ "crypto" ] +++ ## Address diff --git a/content/eth.md b/content/eth.md index fcaf491..7f0cb51 100644 --- a/content/eth.md +++ b/content/eth.md @@ -1,7 +1,7 @@ +++ -date = '2022-12-10' -tags = ['crypto'] -title = 'Ethereum' +title = "Ethereum" +date = 2022-12-10 +tags = [ "crypto" ] +++ ## Address diff --git a/content/fotos/_index.md b/content/fotos/_index.md new file mode 100644 index 0000000..e2e2303 --- /dev/null +++ b/content/fotos/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Fotos" +sort_by = "date" +template = "blog.html" +page_template = "blog-page.html" ++++ diff --git a/content/fotos/abendliche-bewoelkung/index.md b/content/fotos/abendliche-bewoelkung/index.md index 65394bb..2bd2054 100644 --- a/content/fotos/abendliche-bewoelkung/index.md +++ b/content/fotos/abendliche-bewoelkung/index.md @@ -1,12 +1,8 @@ +++ -date = '2023-07-19T10:48:33+02:00' -description = 'über Regensburg' -tags = ['fotos', 'regensburg'] -title = 'Abendliche Bewölkung' +title = "Abendliche Bewölkung" +date = 2023-07-19T10:48:33+02:00 +description = "über Regensburg" +tags = ["fotos", "regensburg"] +++ -{{< figure -src="./abendliche-bewoelkung.webp" -alt="Abendliche Bewölkung über Regensburg" -caption="Abendliche Bewölkung über Regensburg" -fetchpriority="high" >}} +{{ figure(src="./abendliche-bewoelkung.webp", alt="Abendliche Bewölkung über Regensburg")}} diff --git a/content/fotos/ustronie-morskie/index.md b/content/fotos/ustronie-morskie/index.md index 02da91a..d51dbf0 100644 --- a/content/fotos/ustronie-morskie/index.md +++ b/content/fotos/ustronie-morskie/index.md @@ -1,42 +1,21 @@ +++ -date = '2025-11-15T21:53:01+01:00' -description = 'Polen' -tags = ['fotos', 'polen'] -title = 'Ustronie Morskie' +title = "Ustronie Morskie" +description = "Polen" +date = 2025-11-15T21:53:01+01:00 +tags = ["fotos", "polen"] +++ -{{< figure -src="holzwall.jpeg" -alt="Holzwall" -caption="Holzwall" -fetchpriority="high" >}} +{{ figure(src="holzwall.jpeg" alt="Holzwall" caption="Holzwall" +first=true) }} -{{< figure -src="pfote.jpeg" -alt="Pfote" -caption="Pfote" >}} +{{ figure(src="pfote.jpeg" alt="Pfote" caption="Pfote") }} -{{< figure -src="nala.jpeg" -alt="Nala" -caption="Nala" >}} +{{ figure(src="nala.jpeg" alt="Nala" caption="Nala") }} -{{< figure -src="pier.jpeg" -alt="Pier" -caption="Pier" >}} +{{ figure(src="pier.jpeg" alt="Pier" caption="Pier") }} -{{< figure -src="Dom-1.jpeg" -alt="Kolberger Dom" -caption="Kolberger Dom" >}} +{{ figure(src="dom-1.jpeg" alt="Kolberger Dom" caption="Kolberger Dom")}} -{{< figure -src="dom-2.jpeg" -alt="Kolberger Dom" -caption="Kolberger Dom" >}} +{{ figure(src="dom-2.jpeg" alt="Kolberger Dom" caption="Kolberger Dom")}} -{{< figure -src="moeve.jpeg" -alt="Möve" -caption="Möve" >}} +{{ figure(src="moeve.jpeg" alt="Möve" caption="Möve")}} diff --git a/content/xmr.md b/content/xmr.md index 14e437f..4075a79 100644 --- a/content/xmr.md +++ b/content/xmr.md @@ -1,7 +1,7 @@ +++ -date = '2022-12-10' -tags = ['crypto'] -title = 'Monero' +title = "Monero" +date = 2022-12-10 +tags = [ "crypto" ] +++ ## Address diff --git a/flake.lock b/flake.lock index 22f9724..c7cfc97 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1768364046, - "narHash": "sha256-PDFfpswLiuG/DcadTBb7dEfO3jX1fcGlCD4ZKSkC0M8=", + "lastModified": 1771892004, + "narHash": "sha256-V96pa9awm6hjnf8yGJeoC4uOirYDEPsaBbuU0stROQI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea30586ee015f37f38783006a9bc9e4aa64d7d61", + "rev": "5e4522be6bdf1600682a6f383434b057b2d77a37", "type": "github" }, "original": { @@ -44,11 +44,11 @@ ] }, "locked": { - "lastModified": 1768158989, - "narHash": "sha256-67vyT1+xClLldnumAzCTBvU0jLZ1YBcf4vANRWP3+Ak=", + "lastModified": 1770228511, + "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "e96d59dff5c0d7fddb9d113ba108f03c3ef99eca", + "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e794473..a0b741c 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Jan Kremer blog"; + description = "Blog von Jan Kremer"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; treefmt = { @@ -24,10 +24,9 @@ { devShells = eachSystem (pkgs: { default = pkgs.mkShell { - name = "Hugo website"; + name = "Zola website"; buildInputs = with pkgs; [ - go - hugo + zola vscode-langservers-extracted ]; }; @@ -50,7 +49,7 @@ program = (pkgs.writeShellScript "build-website" '' set -e - ${pkgs.hugo}/bin/hugo --minify + ${pkgs.zola}/bin/zola build --minify '').outPath; }; deploy = { @@ -63,7 +62,7 @@ program = (pkgs.writeShellScript "deploy-website" '' set -e - ${pkgs.hugo}/bin/hugo --minify + ${pkgs.zola}/bin/zola build --minify cd public git commit --all -m "Deploy" git push diff --git a/hugo.toml b/hugo.toml deleted file mode 100644 index 0e97615..0000000 --- a/hugo.toml +++ /dev/null @@ -1,50 +0,0 @@ -baseURL = "https://jankremer.eu/" -title = "Jan Kremer" -copyright = "CC0 1.0" -defaultContentLanguage = "de" -enableGitInfo = true - -[params] -[params.author] -name = "Jan Kremer" -email = "mail@jankremer.eu" - -[menus] -[[menus.main]] -name = "Blog" -pageRef = "/blog" -weight = 1 -[[menus.main]] -name = "Fotos" -pageRef = "/fotos" -weight = 2 -[[menus.main]] -name = "Über mich" -pageRef = "/about" -weight = 3 - -[markup] -[markup.goldmark] -[markup.goldmark.renderer] -unsafe = true -[markup.goldmark.parser] -wrapStandAloneImageWithinParagraph = false -[markup.goldmark.parser.attribute] -block = true -[markup.highlight] -style = "github" - -[mediaTypes] -[mediaTypes.'application/atom+xml'] -suffixes = ['atom'] - -[outputFormats] -[outputFormats.atom] -mediaType = 'application/atom+xml' -noUgly = true - -[outputs] -home = ['html', 'rss', 'atom'] -section = ['html', 'rss', 'atom'] -taxonomy = ['html', 'rss', 'atom'] -term = ['html', 'rss', 'atom'] diff --git a/layouts/_partials/footer.html b/layouts/_partials/footer.html deleted file mode 100644 index f1bce7b..0000000 --- a/layouts/_partials/footer.html +++ /dev/null @@ -1,25 +0,0 @@ - diff --git a/layouts/_partials/head.html b/layouts/_partials/head.html deleted file mode 100644 index f58d3f2..0000000 --- a/layouts/_partials/head.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - {{ if .IsHome }} - {{ site.Title }} -{{ else }} - {{ printf "%s – %s" .Title - site.Title - }} - {{ end }} - -{{ partialCached "head/css.html" . }} -{{ partialCached "head/js.html" . }} -{{ with .OutputFormats.Get "rss" }} -{{ printf `` .Rel .MediaType.Type .Permalink site.Title | safeHTML }} -{{ end }}{{ with .OutputFormats.Get "atom" }} -{{ printf `` .Rel .MediaType.Type .Permalink site.Title | safeHTML }} -{{ end }} diff --git a/layouts/_partials/head/css.html b/layouts/_partials/head/css.html deleted file mode 100644 index 2b0820f..0000000 --- a/layouts/_partials/head/css.html +++ /dev/null @@ -1,14 +0,0 @@ -{{- with resources.Get "css/main.css" }} -{{- if eq hugo.Environment -"development" -}} - -{{- else }} -{{- with . | minify | fingerprint }} - -{{- end }} -{{- end }} -{{- end }} diff --git a/layouts/_partials/head/js.html b/layouts/_partials/head/js.html deleted file mode 100644 index 925267e..0000000 --- a/layouts/_partials/head/js.html +++ /dev/null @@ -1,16 +0,0 @@ -{{- with resources.Get "js/main.js" }} -{{- if eq hugo.Environment "development" }} -{{- with . | js.Build }} - -{{- end }} -{{- else }} -{{- $opts := dict "minify" true }} -{{- with . | js.Build -$opts | fingerprint -}} - -{{- end }} -{{- end }} -{{- end }} diff --git a/layouts/_partials/header.html b/layouts/_partials/header.html deleted file mode 100644 index ee05e7c..0000000 --- a/layouts/_partials/header.html +++ /dev/null @@ -1,6 +0,0 @@ -{{- $attrs := dict "class" "title" }} -{{- if .IsHome }} -{{- $attrs = merge $attrs (dict "class" "title active" "aria-current" "page") }} -{{- end }} -{{ partial "logo.svg" . }}{{ site.Title }} -{{ partial "menu.html" (dict "menuID" "main" "page" .) }} diff --git a/layouts/_partials/menu.html b/layouts/_partials/menu.html deleted file mode 100644 index da71505..0000000 --- a/layouts/_partials/menu.html +++ /dev/null @@ -1,47 +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 }} - -{{- 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 }} -
  • - {{ $name }} - {{- with .Children }} - - {{- end }} -
  • -{{- end }} -{{- end }} diff --git a/layouts/_partials/terms.html b/layouts/_partials/terms.html deleted file mode 100644 index b10860d..0000000 --- a/layouts/_partials/terms.html +++ /dev/null @@ -1,24 +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 taxonony. - @example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) -}} -*/}} -{{- $page := .page }} -{{- $taxonomy := .taxonomy }} -{{- with $page.GetTerms -$taxonomy -}} -{{- $label := (index . 0).Parent.LinkTitle }} -
    - -
    -{{- end }} diff --git a/layouts/baseof.html b/layouts/baseof.html deleted file mode 100644 index a949b43..0000000 --- a/layouts/baseof.html +++ /dev/null @@ -1,16 +0,0 @@ - - - {{ partial "head.html" . }} - -
    - {{ partial "header.html" . }} -
    -
    - {{ block "main" . }}{{ end }} -
    - - - diff --git a/layouts/home.html b/layouts/home.html deleted file mode 100644 index 50eeecd..0000000 --- a/layouts/home.html +++ /dev/null @@ -1,21 +0,0 @@ -{{ define "main" }} -{{ .Content }} -{{ $pages := .Paginate (where -.Site.RegularPages "Type" "ne" "page") -}} -
    - -
    -{{ end }} diff --git a/layouts/list.atom.atom b/layouts/list.atom.atom deleted file mode 100644 index 1085f74..0000000 --- a/layouts/list.atom.atom +++ /dev/null @@ -1,60 +0,0 @@ -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- end }} - -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- end }} - -{{- $pctx := . }} -{{- if .IsHome }}{{ $pctx = .Site }}{{ end }} -{{- $pages := slice }} -{{- if or $.IsHome $.IsSection }} -{{- $pages = $pctx.RegularPages }} -{{- else }} -{{- $pages = $pctx.Pages }} -{{- end }} -{{- $limit := .Site.Config.Services.RSS.Limit }} -{{- if ge $limit 1 }} -{{- $pages = $pages | first $limit }} -{{- end }} - - {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} - - - {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }} - {{ .Permalink }} - - {{ with $authorName }}{{ . }}{{ end }} - {{ with $authorEmail }}{{ . }}{{ end }} - - Hugo - {{- range $pages }} - - {{ .Title }} - - {{ .Permalink }} - - {{ with $authorName }}{{ . }}{{ end }} - {{ with $authorEmail }}{{ . }}{{ end }} - - {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }} - {{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }} - - {{ .Content | transform.XMLEscape | safeHTML }} - - - {{- end }} - diff --git a/layouts/list.html b/layouts/list.html deleted file mode 100644 index c62e475..0000000 --- a/layouts/list.html +++ /dev/null @@ -1,18 +0,0 @@ -{{ define "main" }} -{{ .Content }} -
    - -
    -{{ end }} diff --git a/layouts/list.rss.xml b/layouts/list.rss.xml deleted file mode 100644 index 3860ac1..0000000 --- a/layouts/list.rss.xml +++ /dev/null @@ -1,63 +0,0 @@ -{{- $authorEmail := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .email }} - {{- $authorEmail = . }} - {{- end }} - {{- end }} -{{- end }} - -{{- $authorName := "" }} -{{- with site.Params.author }} - {{- if reflect.IsMap . }} - {{- with .name }} - {{- $authorName = . }} - {{- end }} - {{- else }} - {{- $authorName = . }} - {{- end }} -{{- end }} - -{{- $pctx := . }} -{{- if .IsHome }}{{ $pctx = .Site }}{{ end }} -{{- $pages := slice }} -{{- if or $.IsHome $.IsSection }} -{{- $pages = $pctx.RegularPages }} -{{- else }} -{{- $pages = $pctx.Pages }} -{{- end }} -{{- $limit := .Site.Config.Services.RSS.Limit }} -{{- if ge $limit 1 }} -{{- $pages = $pages | first $limit }} -{{- end }} -{{- printf "" | safeHTML }} - - - {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }} - {{ .Permalink }} - Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }} - Hugo - {{ site.Language.LanguageCode }}{{ with $authorEmail }} - {{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }} - {{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }} - {{ . }}{{ end }}{{ if not .Date.IsZero }} - {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }} - {{- with .OutputFormats.Get "RSS" }} - {{ printf "" .Permalink .MediaType | safeHTML }} - {{- end }} - {{- range $pages }} - - {{ .Title }} - {{ .Permalink }} - {{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} - {{- with $authorEmail }}{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }} - {{ .Permalink }} - - <strong>{{ .Description | transform.XMLEscape | safeHTML }}</strong> - - {{ .Content | transform.XMLEscape | safeHTML }} - - - {{- end }} - - diff --git a/layouts/single.html b/layouts/single.html deleted file mode 100644 index 9ce735a..0000000 --- a/layouts/single.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ define "main" }} -
    - {{ $dateHuman := .Date | time.Format ":date_long" }} - {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }} - {{ $lastmodDateHuman := .Lastmod | time.Format ":date_long" }} - {{ $lastmodDateMachine := .Lastmod | time.Format "2006-01-02T15:04:05-07:00" }} -
    -

    - Editiert: - -

    -

    - -

    -
    -

    {{ .Title }}

    -

    {{ .Description }}

    - {{ .Content }} -
    -{{ end }} diff --git a/assets/css/main.css b/static/main.css similarity index 95% rename from assets/css/main.css rename to static/main.css index 61f416c..7aab05c 100644 --- a/assets/css/main.css +++ b/static/main.css @@ -164,11 +164,6 @@ svg { } } } - - &.active { - text-decoration: underline; - text-decoration-color: var(--uchu-blue); - } } header { @@ -351,24 +346,14 @@ footer { } } -code { - font-family: var(--mono); - border-radius: 0.3rem; - font-size: 0.8rem; - margin: 0; - padding: 0 1rem; -} - -.highlight { - font-family: var(--mono); +.giallo { border: 1px solid light-dark(var(--uchu-gray), var(--uchu-dark-gray)); border-radius: 0.3rem; - margin: 1rem 0; - padding: 0 1rem; - overflow: auto; +} - pre { - margin: 0; - padding: 0; - } -} \ No newline at end of file +.giallo-l { + font-family: var(--mono); + padding: 1rem; + overflow: auto; + display: block; +} diff --git a/static/pharmacist-0.txt b/static/pharmacist-0.txt deleted file mode 100644 index a9f5d1d..0000000 --- a/static/pharmacist-0.txt +++ /dev/null @@ -1,15 +0,0 @@ - ▄▄▀▀▄▀▀▀▀▀▀▀▀▄▄ - ▄▀ █ - ▄▀ ▄▄▄ █ - █ ▄▀▀▀ ▀▀▀▀▀▀▀█▀ - ▀▄▄█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ - █ █ █ - ▀█▀▄ ▄▀▄ ▄▀ - █ ▀▀▀▀▀ ▀▀▀▀█ - █ █ - █ ▀▀▀▀ █ - █ ▄▀ - █ █▀▀▀▀▀▀ -▄▀▀▀▄ ▄▀▀▀▄ -█ ▀▄▀ █ -█ █ ▀▀ █ diff --git a/static/pharmacist-0.webp b/static/pharmacist-0.webp deleted file mode 100644 index a86eebb..0000000 Binary files a/static/pharmacist-0.webp and /dev/null differ diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..7064e1c --- /dev/null +++ b/templates/base.html @@ -0,0 +1,70 @@ +{% import "macros.html" as macros %} + + + + + + {% if current_path == "/" %} + {{ config.title }} + {% elif section %} + {{ section.title }} – {{ config.title }} + {% elif page %} + {{ page.title }} – {{ config.title }} + {% endif %} + + + + + + + + + + + + {% block rss %} + + + {% endblock %} + + + +
    + {{ load_data(path="templates/logo.svg") | safe }}Jan Kremer + +
    +
    + {% block content %} + {% endblock content %} +
    + + + diff --git a/templates/blog-page.html b/templates/blog-page.html new file mode 100644 index 0000000..680bead --- /dev/null +++ b/templates/blog-page.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} +{% block content %} +
    +
    +

    + +

    + {% if page.updated %} +

    + Aktualisiert: +

    + {% endif %} +
    +

    {{ page.title }}

    +

    {{ page.description }}

    + {{ page.content | safe }} +
    +{% endblock content %} diff --git a/templates/blog.html b/templates/blog.html new file mode 100644 index 0000000..c4b4f0c --- /dev/null +++ b/templates/blog.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} +{% block content %} +
    + +
    +{% endblock content %} diff --git a/layouts/_partials/cc.svg b/templates/cc.svg similarity index 100% rename from layouts/_partials/cc.svg rename to templates/cc.svg diff --git a/layouts/_partials/git.svg b/templates/git.svg similarity index 100% rename from layouts/_partials/git.svg rename to templates/git.svg diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..b2afb98 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} +{% block content %} +
    + +
    +{% endblock content %} diff --git a/layouts/_partials/logo.svg b/templates/logo.svg similarity index 100% rename from layouts/_partials/logo.svg rename to templates/logo.svg diff --git a/templates/macros.html b/templates/macros.html new file mode 100644 index 0000000..b1750b5 --- /dev/null +++ b/templates/macros.html @@ -0,0 +1,6 @@ +{% macro menu_item(url, name) %} +
  • + {{ name }} +
  • +{% endmacro %} diff --git a/templates/shortcodes/figure.html b/templates/shortcodes/figure.html new file mode 100644 index 0000000..c4ff249 --- /dev/null +++ b/templates/shortcodes/figure.html @@ -0,0 +1,15 @@ +
    + + {% if caption or alt %} +
    +

    + {% if caption %} + {{ caption }} + {% elif alt %} + {{ alt }} + {% endif %} +

    +
    + {% endif %} +
    diff --git a/layouts/_partials/zero.svg b/templates/zero.svg similarity index 100% rename from layouts/_partials/zero.svg rename to templates/zero.svg diff --git a/treefmt.nix b/treefmt.nix index 7205383..9bc011c 100644 --- a/treefmt.nix +++ b/treefmt.nix @@ -2,6 +2,7 @@ programs = { nixfmt.enable = true; taplo.enable = true; + mdformat.enable = true; djlint.enable = true; }; settings.global.excludes = [ diff --git a/zola.toml b/zola.toml new file mode 100644 index 0000000..b094735 --- /dev/null +++ b/zola.toml @@ -0,0 +1,85 @@ +# The URL the site will be built for +base_url = "https://jankremer.eu" + +title = "Jan Kremer" +description = "Blog von Jan Kremer" +author = "Jan Kremer" + +default_language = "de" + +# Whether dotfiles at the root level of the output directory are preserved when (re)building the site. +# Enabling this also prevents the deletion of the output folder itself on rebuilds. +# preserve_dotfiles_in_output = true + +generate_feeds = true +feed_filenames = ["atom.xml", "rss.xml"] + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = true + +[markdown] + +# CSS class to add to external links (e.g. "external-link") +# external_links_class = + +# Whether to set decoding="async" and loading="lazy" for all images +# When turned on, the alt text must be plain text. +# For example, `![xx](...)` is ok but `![*x*x](...)` isn’t ok +lazy_async_image = true +definition_list = true +bottom_footnotes = true +smart_punctuation = true + +# When set to "true", support for GitHub-style alerts, a.k.a. callouts or admonitions, is enabled in the Markdown parser. +# For example, this Markdown syntax: +# +# > [!NOTE] +# > alert note +# +# will result in the following generated HTML: +# +#
    +#

    alert note

    +#
    +# +# where the CSS class name suffix may be `note`, `tip`, `important`, `warning`, or `caution`, depending on the alert type. +# Visual appearance depends on theme-level support; refer to your theme's documentation for more information. +github_alerts = false + +# insert_anchor_links = "left" + +[markdown.highlighting] +error_on_missing_language = true + +# Whether to use inline hex colours (`inline`) or CSS classes (`class`) +style = "inline" + +light_theme = "catppuccin-latte" +dark_theme = "catppuccin-macchiato" + +# A list of files for additional JSON TextMate grammars +extra_grammars = [] + +[search] +# Whether to include the title of the page/section in the index +include_title = true +# Whether to include the description of the page/section in the index +include_description = false +# Whether to include the RFC3339 datetime of the page in the search index +include_date = false +# Whether to include the path of the page/section in the index (the permalink is always included) +include_path = false +# Whether to include the rendered content of the page/section in the index +include_content = true +# At which code point to truncate the content to. Useful if you have a lot of pages and the index would +# become too big to load on the site. Defaults to not being set. +# truncate_content_length = 100 + +# Whether to produce the search index as a javascript file or as a JSON file +# Accepted values: +# - "elasticlunr_javascript", "elasticlunr_json" +# - "fuse_javascript", "fuse_json" +index_format = "elasticlunr_javascript" + +[extra] +# Put all your custom variables here