Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/sitemap-parity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ name: Sitemap Parity
on:
pull_request:
branches: ['main']
push:
branches: ['main']


permissions:
contents: read

Expand Down
57 changes: 57 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# CLAUDE.md

Guidance for AI coding agents (Claude, Copilot, etc.) working in this repository. Human contributors should read [docs/README.md](./docs/README.md) instead.

## Repository at a glance

- Next.js + TypeScript app under `src/`
- Markdown content under `content/` (posts, pages, employees, …)
- Two locales: `en` (default, no prefix) and `de` (`/de/` prefix)
- Blog posts live in `content/posts/*.md` (EN) and `content/posts/*.de.md` (DE)
- Post URLs are canonically `/posts/YYYY/MM/DD/<slug>` (+ `/de/…` for German)

## Common tasks

- Add a page → [docs/03-adding-pages.md](./docs/03-adding-pages.md)
- Add a blog post → [docs/04-adding-blog-post.md](./docs/04-adding-blog-post.md)
- Testing / QA → [docs/06-testing-and-quality-checks.md](./docs/06-testing-and-quality-checks.md)

## Conventions

### Blog post slugs

The URL slug for a post is resolved in this order (see `generatePostSlug()` in [src/lib/markdown.ts](./src/lib/markdown.ts)):

1. Explicit `slug:` in the post's frontmatter (highest priority — protects legacy URLs).
2. Filename stem with the `YYYY-MM-DD-` date prefix and `.md` / `.de.md` extension stripped. This is the canonical default for new posts.

```text
content/posts/2026-02-27-dependency-health.md -> /posts/2026/02/27/dependency-health
content/posts/2026-03-19-container-gov.de.md -> /de/posts/2026/03/19/container-gov
```

Rules:

- **New posts should not set `slug:`.** Pick a short, kebab-case, ASCII filename (`YYYY-MM-DD-<short-slug>.md`) and the filename becomes the URL.
- Only set `slug:` explicitly when you need to override the filename (e.g. keeping backward compatibility with a legacy URL).
- If you do set `slug:`, keep it short (1–4 words), kebab-case, ASCII.
- Never change the filename or `slug:` of an already-published post — either moves the URL and breaks backlinks.
- Legacy posts carry an explicit `slug:` (often long, sometimes with umlauts) that pins them to their historical URL. Do not "clean these up" — those values are load-bearing for existing links.

Full rules and rationale: [docs/04-adding-blog-post.md § Slug convention](./docs/04-adding-blog-post.md#slug-convention).

### Legacy filename alias

Every post is also reachable via `/posts/<filename-without-extension>` (the legacy Hugo-style alias, produced by `getAllPostSlugs()`). This alias is intentional backward-compat plumbing — do not remove it, and do not use it in new links.

## Do

- Read the referenced `docs/*.md` before making structural changes to content or routing.
- When touching slug logic in `src/lib/markdown.ts`, dump every URL that `getAllPostSlugs()` emits before and after your change and diff — the diff must be empty unless the change is _intended_ to move URLs.
- Preserve line-ending style when editing legacy markdown files (some are CRLF).

## Don't

- Don't remove or rewrite the legacy filename-based alias in `getAllPostSlugs()` without explicit sign-off — it protects old inbound links.
- Don't run `matter.stringify()` (gray-matter) to rewrite existing post frontmatter. It reorders keys, changes quoting, and reformats dates. Do targeted line-level edits on the raw text instead.
- Don't strip the explicit `slug:` from legacy posts as a "cleanup" — those slugs are pinned to already-indexed URLs and must not change.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'JGrid @ NetBeans Platform Certified Training'
slug: jgrid-netbeans-platform-certified-training
date: "2011-07-15"
author: hendrik
categories: [Swing]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-07-15-jgrid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'JGrid'
slug: jgrid
date: "2011-07-15"
author: hendrik
categories: [Swing]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-07-28-fun-with-gestures.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Fun with gestures'
slug: fun-with-gestures
date: "2011-07-28"
author: hendrik
categories: [General]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Preview: Multitouch gestures in swing'
slug: preview-multitouch-gestures-in-swing
date: "2011-08-04"
author: hendrik
categories: [General]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-08-16-talk-at-cebit-tv-studio.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Talk at CeBIT TV studio'
slug: talk-at-cebit-tv-studio
date: "2011-08-16"
author: hendrik
categories: [General]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-08-17-jrating-preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'JRating Preview'
slug: jrating-preview
date: "2011-08-17"
author: hendrik
categories: [General]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-09-01-gesture-wrapper-0-1-released.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Gesture Wrapper 0.1 released'
slug: gesture-wrapper-0-1-released
date: "2011-09-01"
author: hendrik
categories: [General]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-09-12-garagetunes-demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GarageTunes demo'
slug: garagetunes-demo
date: "2011-09-12"
author: hendrik
categories: [Swing]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-09-15-jgrid-talk.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'JGrid Talk'
slug: jgrid-talk
date: "2011-09-15"
author: hendrik
categories: [Swing]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-10-04-release-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Release & Update'
slug: release-update
date: "2011-10-04"
author: hendrik
categories: [General]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2011-10-12-guigarage-javaone.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GuiGarage @ JavaOne'
slug: guigarage-javaone
date: "2011-10-12"
author: hendrik
categories: [General]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Building JavaFX Applications with Maven'
slug: building-javafx-applications-with-maven
date: "2012-10-13"
author: hendrik
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Adding JavaFX to your Eclipse project'
slug: adding-javafx-to-your-eclipse-project
date: "2012-10-28"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-01-introducing-vagrant-binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Introducing Vagrant-Binding'
slug: introducing-vagrant-binding
date: "2012-11-01"
author: hendrik
categories: [General, Vagrant-Binding]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-03-vagrant-binding-demos.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Vagrant-Binding-Demos'
slug: vagrant-binding-demos
date: "2012-11-03"
author: hendrik
categories: [Vagrant-Binding]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-13-jgridfx-first-demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
draft: false
showInBlog: false
title: 'JGridFX First Demo'
slug: jgridfx-first-demo
date: "2012-11-13"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-14-gridfx-is-hosted-at-github.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GridFX is hosted at github'
slug: gridfx-is-hosted-at-github
date: "2012-11-14"
layout: post
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Playing with GridFX and iTunes Webservices'
slug: playing-with-gridfx-and-itunes-webservices
date: "2012-11-14"
author: hendrik
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Vagrant-Binding talk @ Devoxx 2012'
slug: vagrant-binding-talk-devoxx-2012
date: "2012-11-14"
author: hendrik
categories: [Vagrant-Binding]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Custom UI Controls with JavaFX - Part 1'
slug: custom-ui-controls-with-javafx-part-1
date: "2012-11-17"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-17-swing-is-dead.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Swing is dead'
slug: swing-is-dead
date: "2012-11-17"
author: hendrik
categories: [JavaFX, Swing]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-21-gridfx-pagination.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'gridfx & pagination'
slug: gridfx-pagination
date: "2012-11-21"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-25-maven-support-for-datafx.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Maven support for DataFX'
slug: maven-support-for-datafx
date: "2012-11-25"
author: hendrik
categories: [DataFX, JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Custom UI Controls with JavaFX (Part 2)'
slug: custom-ui-controls-with-javafx-part-2
date: "2012-11-29"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-29-gridfx-is-moving-forward.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GridFX is moving forward'
slug: gridfx-is-moving-forward
date: "2012-11-29"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-11-29-the-future-of-vagrant-binding.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'The future of Vagrant-Binding'
slug: the-future-of-vagrant-binding
date: "2012-11-29"
author: hendrik
categories: [General, Vagrant-Binding]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-12-03-gridfx-supports-css.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GridFX supports CSS'
slug: gridfx-supports-css
date: "2012-12-03"
author: hendrik
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Access Puppet Forge Repository with Java'
slug: access-puppet-forge-repository-with-java
date: "2012-12-10"
author: hendrik
categories: [Vagrant-Binding]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Some news about Vagrant-Binding'
slug: some-news-about-vagrant-binding
date: "2012-12-12"
author: hendrik
categories: [General, Vagrant-Binding]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'My first steps with JavaFX on Raspberry Pi'
slug: my-first-steps-with-javafx-on-raspberry-pi
date: "2012-12-28"
layout: post
categories: [DataFX, IoT, JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'GridFX on Raspberry Pi & JavaFX 8'
slug: gridfx-on-raspberry-pi-javafx-8
date: "2012-12-29"
author: hendrik
categories: [IoT, JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2012-12-31-bindabletransition.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'BindableTransition'
slug: bindabletransition
date: "2012-12-31"
author: hendrik
categories: [General, JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2013-01-01-invokeandwait-for-javafx.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'invokeAndWait for JavaFX'
slug: invokeandwait-for-javafx
date: "2013-01-01"
author: hendrik
categories: [DataFX, General, JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Custom UI Controls with JavaFX (Part3)'
slug: custom-ui-controls-with-javafx-part3
date: "2013-01-10"
author: hendrik
categories: [JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2013-01-16-this-is-for-the-native-ones.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'This is for the native ones'
slug: this-is-for-the-native-ones
date: "2013-01-16"
author: hendrik
categories: [AquaFX, General, JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2013-02-08-change-java-version-on-mac-os.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Change Java version on Mac OS'
slug: change-java-version-on-mac-os
date: "2013-02-08"
author: hendrik
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'DataFX: ObservableExecutor Preview'
slug: datafx-observableexecutor-preview
date: "2013-02-09"
author: hendrik
categories: [DataFX, JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Global Stylesheet for your JavaFX Application'
slug: global-stylesheet-for-your-javafx-application
date: "2013-03-02"
author: hendrik
categories: [General, JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2013-03-02-update-for-the-native-ones.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Update for the native ones'
slug: update-for-the-native-ones
date: "2013-03-02"
author: claudine
categories: [AquaFX, General, JavaFX]
Expand Down
1 change: 1 addition & 0 deletions content/posts/2013-03-17-introducing-marvinfx.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Introducing MarvinFx'
slug: introducing-marvinfx
date: "2013-03-17"
author: hendrik
categories: [JavaFX]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
outdated: true
showInBlog: false
title: 'Assertions and Rules in MarvinFX'
slug: assertions-and-rules-in-marvinfx
date: "2013-03-20"
author: hendrik
categories: [JavaFX]
Expand Down
Loading
Loading