- HTML 32.5%
- SCSS 24.4%
- Python 18%
- CSS 13.5%
- JavaScript 11.6%
| .forgejo/workflows | ||
| admin | ||
| archetypes | ||
| content | ||
| data | ||
| layouts/shortcodes | ||
| static | ||
| themes/nightfall | ||
| .gitignore | ||
| .hugo_build.lock | ||
| hugo.toml | ||
| README.md | ||
Henkka Laukka Personal Website
A personal portfolio website built with Hugo and hosted at henkkalaukka.fi.
Overview
This repository contains the complete source code for a customized Hugo-based personal website featuring a blog, poetry gallery, and an interactive book tracker. The site is automatically built and deployed to Hetzner via CI/CD pipeline whenever changes are pushed to the main branch.
Tech Stack
- Static Site Generator: Hugo (Extended version)
- Base Theme: Nightfall (heavily customized)
- Styling: Dart Sass for SCSS compilation
- Deployment: GitHub Actions → FTP to Hetzner
- Admin: Python Flask application
Features
📝 Blog
A custom blog section with personalized layout and styling for articles and posts.
🖼️ Poems Gallery
An interactive poetry gallery featuring:
- Responsive modal layout
- Mobile-optimized viewing experience
- Clean presentation of poems
📚 Book Tracker Gallery
A custom-built book tracking system displaying your reading history:
- Sleek gallery layout showcasing book covers
- Dynamically fetches book metadata from
/data/books.json - Ground-up custom implementation with custom styling and functionality
🎨 Custom Theme Modifications
The base Nightfall theme has been extensively modified with custom layouts, components, and styling to match the personal branding and feature requirements.
Project Structure
├── .github/workflows # github actions deployment
├── archetypes/ # Page archetypes for hugo
├── content/ # Markdown source files for all pages
├── data/ # books.json file for book tracker data
├── layouts/ # Custom Hugo templates
├── static/ # Static assets
│ └── blogi/ # Blog images
│ └── books/ # Book cover images
│ └── lyhkarit/ # Book "review" images
│ └── screenshots/ # Blog screenshot images
├── themes/ # Hugo themes (Nightfall base)
└── admin/ # Python Admin application
Admin
A Python-based admin tool for maintaining the whole site:
Features
- Add new blog posts, short posts (lyhkärit which is my personal naming thing), poems to the site
- Manage the books in your collection
- Manage all book metadata and properties
- Web-based interface running on
localhost:5555 - Automatically updates
/data/books.json - Automatically pushes and thus publishes the blog posts
- Includes a dashboard with statistics about different site features
- Dashboard includes buttons to do git pull, git add ., git commit and git push tasks.
Getting Started
- Install Python onto your machine (instructions elsewhere)
- Install the requirements with
pip install -r requirements.txt - Run the app with python app.py
- Access the interface at http://localhost:5555
- Use the UI to manage the site
All these instructions and settings may vary depending on your needs.