Skip to content

Commit dd52a45

Browse files
author
Anne-Julia Seitz
committed
Implement complete events system with modern styling and navigation
- Added comprehensive event content structure with taxonomy support - Implemented speaker and tags taxonomies with full template system - Created event migration from Jekyll format with proper frontmatter - Added modern Bulma-based styling with Berlin PHP color palette - Implemented paginated events listing (20 per page) - Added clickable taxonomy links with orange hover effects - Removed all text underlines, replaced with background hover effects - Added Meetup.com integration in navigation and footer - Created comprehensive documentation in CLAUDE.md - Fixed link styling to use colors instead of underlines
1 parent 0cb251f commit dd52a45

18 files changed

Lines changed: 784 additions & 299 deletions

File tree

.claude/settings.local.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"Bash(mkdir:*)",
88
"Bash(curl:*)",
99
"Bash(zola serve:*)",
10-
"Bash(git add:*)"
10+
"Bash(git add:*)",
11+
"mcp__playwright__browser_navigate"
1112
],
1213
"deny": []
1314
}

CLAUDE.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is the **Berlin PHP Usergroup** website built with **Zola** static site generator. The site was migrated from Jekyll and focuses on showcasing meetup events, talks, and community information.
8+
9+
**Key Architecture Decisions:**
10+
- **Zola SSG**: Uses Zola for fast static site generation
11+
- **Bulma CSS**: All styling uses Bulma framework (NEVER use Tailwind CSS)
12+
- **Event-Centric**: Content is organized around meetup events with rich metadata
13+
- **English Content**: Events and pages support only English
14+
15+
## Essential Commands
16+
17+
```bash
18+
# Development server
19+
zola serve --port 8082
20+
21+
# Build for production
22+
zola build
23+
24+
# Check internal links
25+
zola check
26+
```
27+
28+
## Content Structure & Architecture
29+
30+
### Events Architecture
31+
Events are the core content type with a specific structure:
32+
33+
**Directory Structure:**
34+
```
35+
content/events/
36+
├── _index.md # Events listing page (paginated, 20 per page)
37+
└── YYYY-MM-DD-event-name/
38+
└── index.md # Individual event page
39+
```
40+
41+
**Event Frontmatter Schema:**
42+
```toml
43+
+++
44+
title = "Event Title"
45+
description = "SEO description"
46+
date = "YYYY-MM-DD"
47+
48+
[taxonomies]
49+
speaker = ["Speaker Name 1", "Speaker Name 2"]
50+
tags = ["Topic1", "Topic2"]
51+
52+
[extra]
53+
location = "Venue Name"
54+
+++
55+
```
56+
57+
### Taxonomies System
58+
The site uses two main taxonomies defined in `config.toml`:
59+
- `speaker`: Links events by speakers (generates `/speaker/` pages)
60+
- `tags`: Links events by topics (generates `/tags/` pages)
61+
62+
### Template Architecture
63+
- `base.html`: Main layout with Bulma navbar, footer, meta tags
64+
- `events.html`: Event listing with pagination and sidebar
65+
- `event.html`: Individual event page template
66+
- `taxonomy_list.html`: Lists all speakers/tags
67+
- `taxonomy_single.html`: Shows all events for a specific speaker/tag
68+
69+
## CSS Framework: Bulma Only
70+
71+
**CRITICAL**: This site uses **Bulma CSS framework exclusively**.
72+
73+
**Bulma Classes to Use:**
74+
- Layout: `container`, `columns`, `column`, `section`
75+
- Components: `box`, `tag`, `button`, `pagination`
76+
- Typography: `title is-1`, `subtitle`, `content`
77+
- Styling: `is-primary`, `is-light`, `is-php` (custom), `is-magenta` (custom)
78+
79+
**Color System:**
80+
All colors are defined in `static/styles.css` as CSS custom properties based on the Berlin PHP brand palette:
81+
82+
```css
83+
:root {
84+
--dark-charcoal: #333333; /* Dark gray/black */
85+
--dark-blue: #4F5B93; /* Primary brand blue */
86+
--php-blue: #8892BF; /* Light PHP blue */
87+
--orange-red: #F75900; /* Bright orange accent */
88+
--warning-yellow: #FFAA00; /* Warning/highlight yellow */
89+
--light-gray: #F2F2F2; /* Background gray */
90+
--dark-magenta-color: #793862; /* Speaker tags magenta */
91+
}
92+
```
93+
94+
**Tag Color Usage:**
95+
- `.tag.is-php` - Light blue (`--php-blue`) for topic/technology tags
96+
- `.tag.is-magenta` - Magenta (`--dark-magenta-color`) for speaker tags
97+
- `.tag.is-warning` - Yellow (`--warning-yellow`) for warnings/important items
98+
- `.tag.is-highlight` - Orange (`--orange-red`) for special highlights
99+
- `.tag.is-dark` - Dark (`--dark-charcoal`) for secondary elements
100+
101+
**Assets:**
102+
- CSS: `static/lib/bulma.min.css` + `static/styles.css`
103+
- Branding: `static/logo.svg`, `static/social-banner.png`
104+
105+
## Event Migration Process
106+
107+
When migrating events from old Jekyll site (`/home/dazz/Code/berlinphp/berlinphp.github.com.git/_posts/`):
108+
109+
1. Convert Jekyll frontmatter (YAML) to Zola (TOML)
110+
2. Transform speaker list to `[taxonomies]` format
111+
3. Move `date` from `[extra]` to main frontmatter for pages
112+
4. Create directory structure: `content/events/YYYY-MM-DD-name/index.md`
113+
5. Preserve bilingual content (English + German sections), but in most cases the site will only display English content.
114+
115+
## Configuration Notes
116+
117+
**config.toml Key Settings:**
118+
- Taxonomies: `speaker` and `tags` with RSS feeds enabled
119+
- Pagination: Events paginated at 20 per page
120+
- Feeds: RSS enabled for main content and taxonomies
121+
- Social: Mastodon, GitHub, Flickr integration configured
122+
123+
**Build Settings:**
124+
- SASS compilation enabled
125+
- HTML minification enabled
126+
- Search index generation enabled
127+
- Syntax highlighting with "base16-ocean-dark" theme
128+
129+
## Development Workflow
130+
131+
1. **Local Development**: Use `zola serve --port 8082` for live reload
132+
2. **Content Creation**: Follow event directory structure exactly
133+
3. **Styling**: Only use Bulma classes, extend with `static/styles.css` if needed
134+
4. **Templates**: Maintain Bulma compatibility across all templates
135+
5. **Testing**: Check with `zola check` before deployment
136+
137+
## Site Structure
138+
139+
**Content Sections:**
140+
- `/`: Homepage with hero and recent events
141+
- `/events/`: Paginated archive of all meetups
142+
- `/speaker/`: Taxonomy pages for speakers
143+
- `/tags/`: Taxonomy pages for topics
144+
- `/pages/`: Static pages (contact, imprint, etc.)
145+
146+
**Static Assets in `/static/`:**
147+
- Bulma CSS framework
148+
- Custom site styles
149+
- Brand assets (logos, social banner)
150+
- Favicon and icons

config.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Berlin PHP Usergroup Website
22
# Zola Configuration
33

4-
base_url = "https://www.bephpug.de"
4+
base_url = "/"
55
title = "Berlin PHP Usergroup"
66
description = "The Berlin PHP Usergroup community - Monthly meetups, talks, and networking for PHP developers in Berlin"
77

@@ -19,6 +19,7 @@ generate_feeds = true
1919
# Taxonomies
2020
taxonomies = [
2121
{ name = "tags", feed = true },
22+
{ name = "speaker", feed = true },
2223
]
2324

2425
# Markdown configuration
@@ -40,6 +41,7 @@ mastodon_url = "https://phpc.social/@bephpug"
4041
twitter_url = "https://twitter.com/berlinphp"
4142
github_url = "https://github.com/berlinphp"
4243
flickr_url = "https://www.flickr.com/groups/bephpug/"
44+
meetup_url = "https://www.meetup.com/de-DE/berlin-php-usergroup/"
4345

4446
# Default meetup location
4547
default_location = "Co-Up Berlin"
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
+++
2+
title = "Meetup on March, 6th 2012 / Treffen am 6. März 2012"
3+
description = "March 2012 meetup focused on shop systems with talks about various e-commerce platforms including Sylius, OXID, Magento, osCommerce, and TYPO3."
4+
date = "2012-03-06"
5+
6+
[taxonomies]
7+
speaker = ["Daniel Fahlke", "Thomas Lohner", "Martin Rothenberger", "Fabian Blechschmidt", "Markus Will", "Nicole Cordes"]
8+
tags = ["E-commerce", "Shop Systems", "Sylius", "OXID", "Magento", "osCommerce", "TYPO3"]
9+
10+
[extra]
11+
location = "co.up"
12+
+++
13+
14+
## English
15+
16+
This month's meetup has a focus on shop systems. Nearly everybody dealt with
17+
them at some point and there are countless e-commerce systems around.
18+
In several talks we try to give an overview of pros and cons of a handful
19+
shopping systems.
20+
21+
So far the following shop systems will be presented:
22+
23+
* "Sylius" by Daniel Fahlke
24+
* "OXID" by Thomas Lohner
25+
* "Magento Commerce & Magento Enterprise" by Martin Rothenberger
26+
* "Preview to Magento 2" by Fabian Blechschmidt
27+
* "osCommerce 2.x and a sneak peak into 3.x" by Markus Will
28+
* "TYPO3 shopping solutions" by Nicole Cordes
29+
30+
As usual the meetup will be at [co.up](http://www.bephpug.de/location.html)
31+
and drinks will be available for a small fee. We'll meet on March, 6th at 7pm,
32+
the talks start around 7:30pm.
33+
34+
Happy to see you there!
35+
36+
## Deutsch
37+
38+
Nahezu jeder hat mal mit Shoppingsystemen zu tun gehabt oder immer noch damit
39+
zu tun und den Überblick über die Systeme zu behalten ist nahezu unmöglich.
40+
Das März Treffen versucht ein wenig Licht auf die Auswahl zu werfen und stellt
41+
einige Shopsysteme vor.
42+
43+
Bisher haben wir folgende Vorträge:
44+
45+
* "Sylius" von Daniel Fahlke
46+
* "OXID" von Thomas Lohner
47+
* "Magento Commerce & Magento Enterprise" von Martin Rothenberger
48+
* "Preview to Magento 2" von Fabian Blechschmidt
49+
* "osCommerce 2.x und Ausblick auf 3.x" von Markus Will
50+
* "TYPO3 Shoplösungen" von Nicole Cordes
51+
52+
Wie immer treffen wir uns bei [co.up](http://www.bephpug.de/location.html),
53+
Getränke sind gegen ein kleines Entgelt zu haben. Wir treffen uns am 6. März um 19 Uhr,
54+
die Vorträge beginnen gegen 19:30.
55+
56+
Wir freuen uns auf euch.

content/events/2023-12-21-scalable-apis-laravel/_index.md

Lines changed: 0 additions & 77 deletions
This file was deleted.

content/events/_index.md

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
11
+++
2-
title = "Meetup Archive"
2+
title = "Previous Events"
33
description = "Archive of all Berlin PHP Usergroup meetups, talks, and presentations. Browse our history of community events and technical content."
44
sort_by = "date"
5-
template = "archive.html"
6-
page_template = "talk.html"
5+
template = "events.html"
6+
page_template = "event.html"
7+
paginate_by = 20
78
+++
8-
9-
# Meetup Archive
10-
11-
Welcome to our archive of past **Berlin PHP Usergroup** meetups! Here you'll find information about all our events, including talk summaries, speaker details, and resources shared during our monthly gatherings.
12-
13-
## Browse by Year
14-
15-
Use the filters below to explore our meetup history, or scroll down to see all events chronologically.
16-
17-
---
18-
19-
*Looking for something specific? Use your browser's search function (Ctrl+F / Cmd+F) to find topics, speakers, or technologies.*
54.4 KB
Loading
49.8 KB
Loading

docs/screenshots/colors.jpg

9.01 KB
Loading

public/search_index.en.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)