| .github | ||
| backups/tags_20251010_144459/project | ||
| content | ||
| i18n | ||
| public | ||
| sass | ||
| scripts | ||
| static | ||
| templates | ||
| themes | ||
| .gitignore | ||
| .gitmodules | ||
| .markdownlint.json | ||
| config.toml | ||
| LICENSE | ||
| README.md | ||
Personal Website (aron.petau.net)
A multilingual personal website and blog built with Zola and the Duckquill theme.
Features
- 🌍 Multilingual content (English/German)
- 📝 Blog posts and project documentation
- 🎨 Custom theme modifications
- 🖼️ Image processing and optimization
- 📊 Support for math equations via KaTeX
- 🔍 Full-text search functionality
Project Structure
.
├── content/ # Content files (markdown)
│ ├── _index.md # Main landing page (EN)
│ ├── _index.de.md # Main landing page (DE)
│ ├── pages/ # Static pages
│ └── project/ # Project posts
├── static/ # Static assets
├── sass/ # SCSS source files
├── templates/ # Custom templates
├── themes/ # Duckquill theme
└── public/ # Generated site (do not edit)
Setup
-
Install Zola
-
Clone this repository:
git clone https://github.com/arontaupe/awebsite.git cd awebsite -
Run the development server:
zola serve -
Visit
http://localhost:1111to see the site
Content Management
Adding New Content
- Pages: Create
.md(English) and.de.md(German) files incontent/pages/ - Projects: Create new folder in
content/project/withindex.mdandindex.de.md
Frontmatter Structure
+++
title = "Page Title"
date = 2025-10-06
authors = ["Aron Petau"]
description = "Page description"
[taxonomies]
tags = ["tag1", "tag2"]
[extra]
show_copyright = true
show_shares = true
+++
Custom Shortcodes
The site includes several custom shortcodes for enhanced content formatting:
Gallery
{% gallery() %}
[
{"file": "image1.jpg", "alt": "Description", "title": "Optional Caption"},
{"file": "image2.jpg", "alt": "Description"}
]
{% end %}
Creates a responsive image gallery with lightbox support. Images should be in the same directory as the content file.
Mermaid
{% mermaid() %}
graph TD
A[Start] --> B[End]
{% end %}
Renders Mermaid diagrams for visualizing flowcharts, sequences, and more.
Skills
{% skills() %}
[
{
"name": "Category Name",
"skills": [
{"name": "Skill Name", "icon": "fa-icon-class", "link": "optional-url"},
{"name": "Another Skill"}
]
}
]
{% end %}
Displays a formatted skills section with optional icons and links.
Timeline
{% timeline() %}
[
{
"from": "2025-01",
"to": "2025-12",
"title": "Event Title",
"location": "Optional Location",
"icon": "optional-icon-class",
"body": "Event description",
"link": "optional-url"
}
]
{% end %}
Creates a vertical timeline for events, experiences, or history.
Assets
- Place images in
static/images/ - CSS modifications go in
sass/ - JavaScript files go in
static/js/
Building
To build the site for production:
zola build
The generated site will be in the public/ directory.
Development Tools
scripts/add_update_frontmatter.sh: Update frontmatter in content filesscripts/create_german_stubs.sh: Create German translation stubsscripts/organize.sh: Content organization helperscripts/youtube_rewrite.sh: YouTube embed helper
Project Conventions
-
Multilingual Content
- English files:
.md - German files:
.de.md - Keep filenames matching between languages
- English files:
-
Tags
- Always use English tags for consistency
- Maintain uniform tag naming across all content
-
Theme Customization
- Modify only files in
themes/duckquill/ortemplates/ - Avoid editing Zola core files
- Modify only files in
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
License
This project's content and code (except theme) is licensed under Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). This means you can:
- Share and copy the content
- Adapt and transform it
- Use it non-commercially
As long as you provide appropriate attribution and indicate any changes made. Commercial use is not permitted without explicit permission.
The Duckquill theme is under its original MIT license.