- Editiert: - -
-- -
-{{ .Title }}
-{{ .Description }}
- {{ .Content }} -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 @@ -
{{ .Description }}
- {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }} - {{ $dateHuman := .Date | time.Format ":date_long" }} - - -- Editiert: - -
-- -
-{{ .Description }}
- {{ .Content }} -+ +
+ {% if page.updated %} ++ Aktualisiert: +
+ {% endif %} +{{ page.description }}
+ {{ page.content | safe }} +{{ page.description | safe }}
+ + +{{ page.description | safe }}
+ + ++ {% if caption %} + {{ caption }} + {% elif alt %} + {{ alt }} + {% endif %} +
++#+# +# 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 herealert note
+#