Files
markusgraf_ch/openspec/changes/archive/2025-10-30-migrate-site-content/design.md
T
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

71 lines
2.7 KiB
Markdown

# Design: Content Migration from markusgraf.ch
## Overview
This change migrates all existing content from the live markusgraf.ch website into the Hugo-based project structure. The migration is a one-time content extraction and conversion process.
## Approach
### Content Extraction Strategy
Since the live site cannot be automatically fetched, we rely on the user to provide:
1. HTML source code from the live site (via browser "Save As" or inspector)
2. Direct access to image URLs for downloading
### Content Conversion
- **HTML to Markdown**: Extract semantic content from HTML and convert to clean markdown
- **Preserve Structure**: Maintain the section hierarchy and flow from the live site
- **Hugo Integration**: Use Hugo's front matter and content organization patterns
### Image Handling
Images follow Hugo's static asset conventions:
- Store in `static/images/` (or appropriate subdirectory)
- Reference in markdown as `/images/filename.ext`
- Organize by purpose (e.g., `static/images/projects/`, `static/images/profile/`)
### Content Organization
```
content/
_index.md # Homepage with bio, intro, projects
about.md # About/CV page (if exists)
static/
images/
profile/ # Profile photos
projects/ # Project-related images
icons/ # Icons or small graphics (if any)
```
## Trade-offs
### Why Not Automate Extraction?
- WebFetch requires authentication (not available)
- Manual provision ensures accuracy and allows user to curate content
- One-time migration doesn't justify complex scraping infrastructure
### Content Structure Decisions
- **Single vs Multiple Pages**: If live site is single-page, we keep it as `_index.md`. If multi-page, we create separate content files
- **Project Organization**: Depending on number of projects, either:
- Inline in homepage (few projects)
- Separate section with list page (many projects)
### Image Optimization
- Accept images as-is from live site initially
- Future optimization (resizing, format conversion) can be separate change
- Prioritize content parity over optimization
## Dependencies
- Requires user to provide HTML source and ensure images are accessible
- Depends on existing Hugo site structure from `add-minimal-hugo-site` change
## Validation Strategy
- Visual comparison: Hugo build vs live site side-by-side
- Checklist verification: Every section, image, and link accounted for
- Browser console: No 404 errors or missing resources
- Accessibility: All images have alt text
## Rollback Plan
Since this is additive content migration:
- Git revert to restore placeholder content
- No breaking changes to existing Hugo structure
- Image assets can be removed from static/ directory