Initial commit: Astro 6 static blog site
All checks were successful
Deploy / deploy (push) Successful in 49s

- German (default) and English i18n support
- Categories and tags
- Blog posts with hero images
- Dark/light theme switcher
- View Transitions removed to fix reload ghost images
- Webmentions integration
- RSS feeds per locale

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Adrian Altner 2026-04-22 10:55:29 +02:00
commit 5bb63bacf5
95 changed files with 12199 additions and 0 deletions

39
scripts/new-post.sh Executable file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
# Usage: new-post.sh "Post Title"
# Creates a new blog post in the Obsidian vault with correct frontmatter and folder structure.
set -euo pipefail
VAULT='/Users/adrian/Obsidian/Web/adrian-altner-com'
if [[ -z "${1:-}" ]]; then
echo "Usage: new-post.sh \"Post Title\"" >&2
exit 1
fi
TITLE="$1"
SLUG=$(echo "$TITLE" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9 -]//g' | sed 's/ \+/-/g' | sed 's/^-\+//;s/-\+$//')
DATE_FOLDER=$(date +%Y/%m/%d)
PUBLISH_DATE=$(date +%Y-%m-%dT%H:%M:%S%z)
DIR="$VAULT/content/blog/posts/$DATE_FOLDER"
FILE="$DIR/$SLUG.md"
mkdir -p "$DIR"
if [[ -f "$FILE" ]]; then
echo "File already exists: $FILE" >&2
exit 1
fi
cat > "$FILE" << EOF
---
title: "$TITLE"
description: ""
publishDate: $PUBLISH_DATE
tags:
-
draft: true
syndication:
---
EOF
echo "Created: $FILE"