Commit Graph
59 Commits
Author SHA1 Message Date
gurix e69a3fd0a6 feat: add Open Graph and Twitter Card meta tags for social sharing 2026-06-06 12:40:36 +02:00
gurix 0b5ef30434 feat: add hero image and fix blog post 'Der Butler war's' 2026-06-06 11:46:21 +02:00
gurix f03b96e9d2 feat: add blog post 'Der Butler war's' (DE + EN) 2026-06-05 23:23:56 +02:00
gurix 7811aed71d style: Emphasize blockquotes for clearer quoting 2026-05-10 22:16:07 +02:00
gurix 4fb502a296 feat: Add wecker demo video to blog posts 2026-05-05 16:46:55 +02:00
gurix c3d24abf17 feat: add english translation for MCP extension blog post 2026-05-05 14:12:38 +02:00
gurix 6663d92ef7 feat: add blog post about Raspberry Pi alarm clock 2026-05-05 14:02:31 +02:00
gurix f1eb9111bf Document MCP integration for both Pi and Claude Code 2026-04-26 11:15:45 +02:00
gurix ca44b70c0c Clarify intent of location tracking 2026-04-26 10:33:14 +02:00
gurix 44f0804a8f Neutralize agent naming (Carson -> Agent) 2026-04-26 08:21:02 +02:00
gurix ea6a5c2f25 Update blog post title 2026-04-26 08:13:41 +02:00
gurix f570c140b2 Added technical details about MCP server implementation 2026-04-25 08:39:44 +02:00
gurix d7d0438ee7 Refined blog post style to match persona and humor 2026-04-25 08:35:42 +02:00
gurix 30b17d510e Draft: Blog post about nanoclaw-mcp-ext and Carson 2026-04-24 22:48:35 +02:00
gurix 093b67f975 CV update 2026-03-19 15:09:01 +01:00
gurix 017db30d36 Fahlfehler gefixt 2026-03-19 10:57:43 +01:00
gurixandClaude Sonnet 4.6 c73f4551bd docs: update CV download link to new Tresorit URL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 11:17:57 +01:00
gurixandClaude Sonnet 4.6 65256db330 docs: remove TL;DR prefix from blog post descriptions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 21:41:41 +01:00
gurix 48ca084a89 Updated cv tresorit link 2026-02-09 11:38:17 +01:00
gurixandClaude Opus 4.5 803bd79dc8 feat: add bilingual blog post about digital media literacy for children
Add new blog post "Ein alter Laptop, Linux und Pi-hole: Digitale
Medienkompetenz für Kinder" in German and English, covering setting up
a child's first computer with Ubuntu and Pi-hole, open source philosophy,
and the balance between protection and freedom.

Also adds i18n support for localized month names in date formatting
across blog templates.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:43:58 +01:00
gurixandClaude Sonnet 4.5 053ca08475 feat: add SPH2025 video presentation page
- Create English-only page at /SPH2025 for job application video
- Embed video with HTML5 player and native browser controls
- Add URL aliases for /SPH2025/ and /sph2025/ accessibility
- Move video to static/videos/ directory for proper Hugo serving
- Responsive layout using Bootstrap grid

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 10:25:40 +01:00
gurix 0742913c81 docs: relocate OpenSpec instructions to the beginning of AGENTS.md 2025-11-30 21:10:35 +01:00
gurixandClaude f46e4178d2 chore: archive completed OpenSpec change homepage-recent-posts
- Moved homepage-recent-posts to archive with 2025-10-31 date
- Created new spec at specs/homepage-recent-posts/
- All validation checks pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 23:38:20 +01:00
gurixandClaude 40fe93b9e4 chore: archive completed OpenSpec change add-dialogbasierte-anwendungen-post
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 17:01:37 +01:00
gurixandClaude e599e0404c feat: add bilingual blog post about dialog-based applications
Add new blog post "Computer, ..." exploring how modern language models
enable Star Trek-like computer interactions. Includes a practical
experiment with dialog-based member management using MCP and GraphQL.

Features:
- German version at /de/blog/dialogbasierte-anwendungen/
- English version at /en/blog/dialog-based-applications/
- Translated URL slugs linked via translationKey
- Content sourced from Notion with natural English translation
- OpenSpec proposal with validation passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 16:53:55 +01:00
gurix 285f7a2eed fix: Spacing on mobile view underneath the image. 2025-11-03 07:36:38 +01:00
gurix 61f99d4781 Merge feature/homepage-recent-posts into main 2025-10-31 10:16:53 +01:00
gurix e206348243 feat: display 3 most recent blog posts on homepage
- Add recent posts section to homepage after description
- Query and filter blog posts by language context
- Display post title as link and formatted publication date
- Implement multilingual section headings (Neueste Beiträge/Recent Posts)
- Maintain responsive design with Bootstrap styling
- Handle edge cases (0 posts, <3 posts)
- File size increase <1KB, no new HTTP requests
- Hugo build completes in 21ms without errors
2025-10-31 10:11:38 +01:00
gurix cdd65e5548 docs: add OpenSpec proposal for homepage recent posts display 2025-10-31 10:08:43 +01:00
gurixandClaude 0cc6e6a75e chore: archive completed OpenSpec change add-blog-section
Archive blog section proposal and update main specs.
Specs created:
- openspec/specs/blog-content/
- openspec/specs/blog-templates/

Archived to: openspec/changes/archive/2025-10-31-add-blog-section/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 09:34:57 +01:00
gurixandClaude db1ac4b0fa Merge feature/add-blog-section into main
Add complete blog section with German and English support.
Includes first blog post "KI Generierte Website - ein Praxisbeispiel"
about building this site with AI-assisted development.

Features:
- Blog list and single post templates
- Multilingual content structure
- Navigation integration
- Responsive design with Bootstrap
- Semantic HTML and accessibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 09:31:23 +01:00
gurixandClaude 89a7ae08dd feat: add English translation of first blog post
Translate "KI Generierte Website - ein Praxisbeispiel" to English as
"AI-Generated Website - A Practical Example". The blog post is now
available in both German and English with proper language switching.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 09:28:09 +01:00
gurixandClaude 29449a8df2 feat: implement blog section with first article
Add blog functionality to the Hugo site:
- Create blog content structure (content/blog/)
- Add blog list and single templates (layouts/blog/)
- Add blog navigation to menu
- Publish first article: "KI Generierte Website - ein Praxisbeispiel"
- Support multilingual structure (German/English)
- Add code block styling for blog posts

The blog section is now accessible at /de/blog/ and /en/blog/
with proper navigation, responsive design, and semantic HTML.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 08:55:03 +01:00
gurixandClaude e3f78f2522 fix: correct back to blog button URL with language prefix
Change from .Section | relURL to "/blog/" | relLangURL to ensure
the back button properly includes the language prefix (/de/blog/ or
/en/blog/) instead of just /blog/.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 08:54:40 +01:00
gurix 2741f12b94 Merge branch 'main' into feature/add-blog-section 2025-10-31 08:43:17 +01:00
gurix 87f4f9045a Precise the script location so the agent can save a search. 2025-10-31 08:43:08 +01:00
gurixandClaude caf4c0b755 docs: create OpenSpec proposal for blog section
Add proposal, tasks, and specifications for implementing a blog section
with multilingual support. First article will be "KI Generierte Website -
ein Praxisbeispiel" from Notion.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 22:20:06 +01:00
gurix f587cdf13f Adjusted layout 2025-10-30 19:51:02 +01:00
gurixandClaude 28361b7d5c feat: add open source supporter information to homepage
Added bullet point highlighting open source enthusiasm and support
for free and open source software to both English and German versions
of the homepage.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 19:35:45 +01:00
gurixandClaude 24f162eb91 feat: add hugo-deployer agent for automated deployments
Add specialized agent for deploying Hugo site to production.
The agent handles:
- Branch verification (main only)
- Hugo build execution
- Deployment via rsync to markusgraf.ch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:29:40 +01:00
gurixandClaude adbee2c655 chore: archive completed OpenSpec changes
Archive all 6 deployed changes following OpenSpec workflow:
- add-minimal-hugo-site → hugo-site spec
- add-multilingual-support → internationalization spec
- migrate-site-content → content-migration + image-assets specs
- add-custom-bootstrap-styling → styling spec
- add-cv-page → content-management spec
- simple-deployment → deployment spec

All changes moved to archive/ with 2025-10-30 date prefix.
Created 7 capability specs reflecting deployed functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:22:03 +01:00
gurix 937e6a4ded Updated content 2025-10-28 16:43:31 +01:00
gurixandClaude 6af745f579 refactor: rename deployment change to simple-deployment
Rename the OpenSpec change from add-ftps-deployment to simple-deployment
to better reflect the current implementation using rsync over SSH.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 16:03:37 +01:00
gurixandClaude fcb82acc6f refactor: switch from FTPS/lftp to rsync for deployment
Replace the FTPS-based deployment approach with rsync over SSH for more
reliable and efficient mirroring of the Hugo site. This change addresses
issues with the previous approach and provides true mirror behavior.

Key changes:
- Replace lftp with rsync for file synchronization
- Add --delete flag for true mirror behavior (removes stale remote files)
- Simplify authentication to use SSH keys only (no password needed)
- Update all documentation and OpenSpec artifacts
- Add .envrc to gitignore for direnv users

Environment variables:
- SSH_USER: SSH username (required)
- SSH_HOST: server hostname (required)
- SSH_PORT: SSH port (optional, defaults to 22)
- REMOTE_ROOT: remote directory path (optional, defaults to /httpsdocs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 16:02:35 +01:00
gurixandClaude acdce1d15e fix: improve lftp mirror command for existing directories
Change mirror command to work better with existing target directories:
- Use cd/lcd to change to directories first
- Simplify mirror command to work from current directories
- Add mkdir fallback if target directory doesn't exist
- Fix SSL setting from ssl-allow to ssl-force for proper FTPS

This resolves issues when httpsdocs directory already exists on server.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 11:27:52 +01:00
gurixandClaude 90e5f3f2b6 feat: implement FTPS deployment script
Add automated deployment script that uploads the Hugo-built site to
www.markusgraf.ch via FTPS. Implementation includes:

- scripts/deploy.sh: Deployment script with full functionality
  - Prerequisite checks (public/, lftp, FTPS_PASSWORD)
  - FTPS connection with SSL/TLS to www.markusgraf.ch
  - Mirror upload from public/ to httpsdocs/ with parallel transfers
  - Colored output with progress reporting
  - Comprehensive error handling with actionable messages

- DEPLOYMENT.md: Complete deployment documentation
  - Setup instructions and prerequisites
  - Usage examples and workflow
  - Security best practices
  - Troubleshooting guide

- .gitignore: Add entries for .env files to prevent credential leaks

- tasks.md: Mark all implementation tasks as completed

All spec requirements satisfied:
- FTPS Deployment Script provided (scripts/deploy.sh:1)
- Secure Credential Management via environment variables
- Deployment Status Feedback with colored output
- Deployment Prerequisites verified before upload

Tested with missing prerequisites, all checks working correctly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 10:53:45 +01:00
gurixandClaude 4dc968e37f feat: add OpenSpec proposal for FTPS deployment
Create proposal for automated deployment script that uploads the Hugo site
to www.markusgraf.ch via FTPS. Includes:
- Deployment capability spec with 4 main requirements
- Implementation tasks for scripts/deploy.sh
- Secure credential management via environment variables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 10:38:12 +01:00
gurix f3e9e1d434 Duplicate git workflow into AGENTS.md 2025-10-28 09:24:23 +01:00
gurix 8f497b197b removed legacy artefact 2025-10-28 00:00:14 +01:00
gurix cb5f33c5cb Merge feature/add-multilingual-support into main 2025-10-27 23:52:28 +01:00
gurixandClaude c3c747b7fa feat: add multilingual support with German and English
Implement complete multilingual support using Hugo's multilingual mode with German (de) as default and English (en) as secondary language.

Changes:
- Configure Hugo multilingual mode with language-specific parameters
- Reorganize content using language suffix pattern (filename.de.md, filename.en.md)
- Translate all content to English (home page and CV page)
- Implement language switcher that maintains page context
- Add language-specific navigation menus
- Update templates to use language-aware URL functions (relLangURL)
- Fix navbar brand and Home links to respect current language
- Add translationKey to content frontmatter for explicit translation linking

URL Structure:
- German: /de/ (home), /de/cv/ (CV page)
- English: /en/ (home), /en/cv/ (CV page)

Key Implementation Details:
- Use filename.{lang}.md pattern instead of {lang}/filename.md subdirectories
- Always use relLangURL for internal navigation, never .Site.BaseURL
- Menu URLs must include language prefix when defaultContentLanguageInSubdir = true
- Added translationKey to frontmatter for proper translation discovery

Documented 5 critical bugs and their solutions in design.md for future reference.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 23:52:08 +01:00
gurix c7d86d226d Updated conten 2025-10-27 22:53:49 +01:00
gurix 94cb583606 remove old content 2025-10-27 22:52:19 +01:00
gurix f1bcde9928 Merge feature/add-cv-page into main 2025-10-27 22:49:58 +01:00
gurixandClaude e2c20051f3 feat: add curriculum vitae page with secure download
Add dedicated CV page for HR professionals and recruiters with secure Tresorit download link.

Changes:
- Add CV content page at /cv/ with German text
- Configure CV navigation menu item "Curriculum Vitae"
- Enhance navigation template with active state handling for menu items
- Add secure external link with target="_blank" and security attributes (noopener, noreferrer, nofollow)
- Include email verification notice and information about certificates/references availability
- Create OpenSpec proposal for content-management capability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 22:49:28 +01:00
gurix fb7c6f1d71 use german as language code 2025-10-27 22:23:15 +01:00
gurix a72c98fe00 Merge branch 'feature/custom-bootstrap-styling' 2025-10-27 22:05:07 +01:00
gurixandClaude bf52fda68f feat: add custom Bootstrap styling with SCSS support
Implement SCSS-based custom styling system to enable Bootstrap customization while maintaining CDN delivery for core framework.

Changes:
- Add Hugo Pipes SCSS processing pipeline using css.Sass
- Create modular SCSS file structure (main.scss, _variables.scss, _custom.scss)
- Implement custom typography (base font size 1.25rem, adjusted heading sizes)
- Add custom link colors (#0b0089 primary, #0052a3 hover)
- Configure CSS minification and SHA-384 fingerprinting for cache busting
- Add comprehensive SCSS styling documentation

Technical details:
- Updated baseof.html to compile SCSS with Hugo Pipes
- CSS loads after Bootstrap CDN for proper cascade
- Minified output (~154 bytes)
- Supports live reload in development mode

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 22:04:52 +01:00
gurix 7a9b4ccd54 improved content 2025-10-27 21:31:47 +01:00