199 lines
4.4 KiB
Markdown
199 lines
4.4 KiB
Markdown
# Personal Website (aron.petau.net)
|
|
|
|
A multilingual personal website and blog built with [Zola](https://www.getzola.org/) and the
|
|
[Duckquill](https://duckquill.daudix.one) 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
|
|
|
|
```text
|
|
.
|
|
├── 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
|
|
|
|
1. Install [Zola](https://www.getzola.org/documentation/getting-started/installation/)
|
|
2. Clone this repository:
|
|
|
|
```bash
|
|
git clone https://github.com/arontaupe/awebsite.git
|
|
cd awebsite
|
|
```
|
|
|
|
3. Run the development server:
|
|
|
|
```bash
|
|
zola serve
|
|
```
|
|
|
|
4. Visit `http://localhost:1111` to see the site
|
|
|
|
## Content Management
|
|
|
|
### Adding New Content
|
|
|
|
- **Pages**: Create `.md` (English) and `.de.md` (German) files in `content/pages/`
|
|
- **Projects**: Create new folder in `content/project/` with `index.md` and `index.de.md`
|
|
|
|
### Frontmatter Structure
|
|
|
|
```toml
|
|
+++
|
|
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
|
|
|
|
```md
|
|
{% 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
|
|
|
|
```md
|
|
{% mermaid() %}
|
|
graph TD
|
|
A[Start] --> B[End]
|
|
{% end %}
|
|
```
|
|
|
|
Renders Mermaid diagrams for visualizing flowcharts, sequences, and more.
|
|
|
|
#### Skills
|
|
|
|
```md
|
|
{% 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
|
|
|
|
```md
|
|
{% 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:
|
|
|
|
```bash
|
|
zola build
|
|
```
|
|
|
|
The generated site will be in the `public/` directory.
|
|
|
|
## Development Tools
|
|
|
|
- `scripts/add_update_frontmatter.sh`: Update frontmatter in content files
|
|
- `scripts/create_german_stubs.sh`: Create German translation stubs
|
|
- `scripts/organize.sh`: Content organization helper
|
|
- `scripts/youtube_rewrite.sh`: YouTube embed helper
|
|
|
|
## Project Conventions
|
|
|
|
1. **Multilingual Content**
|
|
- English files: `.md`
|
|
- German files: `.de.md`
|
|
- Keep filenames matching between languages
|
|
|
|
2. **Tags**
|
|
- Always use English tags for consistency
|
|
- Maintain uniform tag naming across all content
|
|
|
|
3. **Theme Customization**
|
|
- Modify only files in `themes/duckquill/` or `templates/`
|
|
- Avoid editing Zola core files
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create your feature branch
|
|
3. Commit your changes
|
|
4. Push to the branch
|
|
5. 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)](http://creativecommons.org/licenses/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.
|