My personal website and CV built with Jekyll, featuring automated content generation and dynamic components.
- Modern CV Page: Responsive CV with dark mode toggle and mobile optimization
- Curated News Feed: Automated RSS aggregation with deduplication and image lazy loading
- Maze Gallery: Procedurally generated mazes with monthly updates
- Dark Mode: System-aware theme switching with user preference persistence
- Mobile Optimized: Responsive design across all components
- Static Site Generator: Jekyll with Minima theme
- Frontend: HTML, CSS with custom dark mode support
- Backend Automation: Python scripts for RSS parsing and maze generation
- CI/CD: GitHub Actions for automated content updates
- Content: Markdown posts, collections, and curated RSS feeds
- Ruby and Jekyll installed locally
- Python 3.8+ with pip
- Git
-
Clone the repository
git clone https://github.com/sturlabragason.github.io.git cd sturlabragason.github.io -
Install Python dependencies
pip install -r scripts/requirements.txt
-
Install Jekyll dependencies
bundle install
-
Run the development server
bundle exec jekyll serve -
Generate content locally (optional)
# Update RSS feed python scripts/rss_parser.py # Generate new mazes python scripts/maze_generator.py python scripts/update_html.py
├── _config.yml # Jekyll configuration
├── assets/ # CSS and static assets
├── _posts/ # Blog posts
├── cv/ # CV content and PDFs
├── mazes/ # Generated maze gallery
├── curated_news/ # Generated news feed
├── scripts/ # Python automation scripts
│ ├── rss_parser.py # RSS feed parser with deduplication
│ ├── maze_generator.py # Procedural maze generation
│ └── update_html.py # HTML template renderer
└── .github/
├── workflows/ # GitHub Actions CI/CD
└── templates/ # Jinja2 templates for generated content
- Frequency: Hourly updates via GitHub Actions
- Features: Deduplication, image extraction, lazy loading
- Sources: Configured in
.github/scripts/feeds.json
- Frequency: Monthly regeneration
- Quantity: 50 unique mazes per batch
- Format: High-resolution PNG images
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally with
bundle exec jekyll serve - Submit a pull request
Personal project - All rights reserved.