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>
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>
Complete content migration from live site to Hugo project including:
- Fetched HTML from live markusgraf.ch using curl
- Downloaded and organized all images (1 profile, 3 project images)
- Migrated complete homepage content with all sections
- Removed unnecessary about.md placeholder page
- Updated all image references to Hugo static paths
- Verified content parity with live site
- Added descriptive alt text to all images for accessibility
Images organized as:
- static/images/profile/markusgraf.jpg
- static/images/projects/laufbahndiagnostik.png
- static/images/projects/persoenlichkeitsdiagnostik.png
- static/images/projects/cpd.png
All 13 tasks completed and verified successfully.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Create comprehensive proposal to migrate all content from live markusgraf.ch
to the Hugo project, including text content, images, and structure.
- Add proposal.md with rationale and impact analysis
- Add design.md with content extraction strategy and trade-offs
- Add tasks.md with 13 ordered, verifiable implementation tasks
- Add content-migration spec with 5 requirements and 11 scenarios
- Add image-assets spec with 5 requirements and 10 scenarios
Validated with: openspec validate migrate-site-content --strict
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Initialize minimal Hugo site structure with Bootstrap 5.3.2 integration for
markusgraf.ch conversion. Implements OpenSpec proposal add-minimal-hugo-site.
Features:
- Hugo project structure with standard directories
- Base layout template (baseof.html) with Bootstrap 5.3.2 via CDN
- Homepage (index.html) and single page (single.html) templates
- Reusable partials: header, footer, navigation
- Responsive Bootstrap grid layout
- Mobile-first design with semantic HTML5
- Valid HTML output with basic accessibility features
- Taxonomies disabled for minimal site (see docs/TAXONOMIES.md)
Documentation:
- IMPLEMENTATION_SUMMARY.md - Complete implementation guide
- docs/TAXONOMIES.md - Guide for re-enabling categories/tags
- static/README.md - Guide for placing static assets
Configuration:
- hugo.toml configured for markusgraf.ch
- .gitignore for Hugo build artifacts
All 24 tasks from OpenSpec proposal completed successfully.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>