Compare commits

..

16 commits

Author SHA1 Message Date
8e280c350b Update .forgejo/workflows/deploy.yaml
All checks were successful
deploy blog / deploy (push) Successful in 1m19s
Signed-off-by: xengi <cccb-git@xengi.de>
2026-05-10 15:18:56 +02:00
3261862f52 Merge pull request 'Korrigiere Link auf Club Discordia und Rechtschreibfehler.' (#31) from hauke/www:fix-discordia-links into staging
All checks were successful
deploy blog / deploy (push) Successful in 1m16s
Reviewed-on: #31
2026-05-07 09:29:47 +02:00
1cda263641 Merge pull request 'Korrigiere Datum des Neujahrsempfangs und entferne kaputte rrule.' (#32) from hauke/www:fix-nje-date into staging
Some checks are pending
deploy blog / deploy (push) Waiting to run
Reviewed-on: #32
2026-05-07 09:29:28 +02:00
e36b498092 Merge pull request 'Füge DI.Day als Veranstaltung hinzu.' (#33) from hauke/www:diday into staging
Some checks are pending
deploy blog / deploy (push) Waiting to run
Reviewed-on: #33
2026-05-07 09:29:02 +02:00
0f27c16b64 Merge pull request 'README: Erkläre, wie man den Kalender lokal sieht.' (#35) from hauke/www:improve-readme into staging
Some checks are pending
deploy blog / deploy (push) Waiting to run
Reviewed-on: #35
2026-05-07 09:27:43 +02:00
8d66fffcf0 Merge branch 'staging' into improve-readme 2026-05-07 09:27:07 +02:00
f744215c13 Merge pull request 'Kalender-UI: Berücksichtige INTERVAL und DTSTART bei monatlichen RRULEs.' (#36) from hauke/www:support-calender-interval into staging
Some checks are pending
deploy blog / deploy (push) Waiting to run
Reviewed-on: #36
2026-05-07 09:26:52 +02:00
654e53e8f5 Merge branch 'staging' into improve-readme 2026-05-07 09:26:10 +02:00
e43f3ccda9 Merge branch 'staging' into support-calender-interval 2026-05-07 09:25:43 +02:00
4896fee8d2 Merge pull request 'OpenWrt Stammtisch: Stelle auf vierteljährlichen Rhythmus um.' (#29) from hauke/www:openwrt-date into staging
Some checks are pending
deploy blog / deploy (push) Waiting to run
Reviewed-on: #29
2026-05-07 09:25:07 +02:00
430662fa44 Füge DI.Day als Veranstaltung hinzu.
Der Berliner Di.Day (Digital Independence Day) findet jeden ersten
Sonntag im Monat im Wechsel zwischen CCCB (ungerade Monate) und xHain
(gerade Monate) statt. Im Kalender erscheinen nur die CCCB-Termine.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-06 02:01:22 +02:00
c145161bc4 README: Erkläre, wie man den Kalender lokal sieht.
`hugo serve` rendert die Tabelle „Nächste Veranstaltungen" auf der
Startseite nicht — die wird erst durch `./build.sh` per sed in
`public/index.html` eingefügt. Die README beschreibt jetzt den
Build-und-Servieren-Workflow inklusive Python-Abhängigkeiten und
benötigtem Locale.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 16:54:15 +02:00
0b67ad4cfb Kalender-UI: Berücksichtige INTERVAL und DTSTART bei monatlichen RRULEs.
Der JS-RRULE-Parser im Kalender ignorierte bisher INTERVAL=, sodass
z.B. FREQ=MONTHLY;INTERVAL=3 als reines monatliches Event angezeigt
wurde. Außerdem wurden monatliche Events auch in Monaten vor ihrem
DTSTART angezeigt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 16:53:50 +02:00
aebd59d283 OpenWrt Stammtisch: Stelle auf vierteljährlichen Rhythmus um.
Das Treffen findet ab November 2025 nur noch jeden 3. Mittwoch
im Februar, Mai, August und November statt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 15:42:35 +02:00
b27b3899ce Korrigiere Link auf Club Discordia und Rechtschreibfehler.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 15:41:51 +02:00
89f6c9198d Korrigiere Datum des Neujahrsempfangs und entferne kaputte rrule.
Der dtstart stand auf 2025 statt 2026, und die rrule "FREQ=MOTHLY"
enthielt einen Tippfehler, sodass das Event nicht im Kalender auftauchte.
Der Neujahrsempfang ist ein Einzeltermin und braucht keine rrule.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 15:41:23 +02:00
9 changed files with 57 additions and 18 deletions

View file

@ -2,7 +2,7 @@ name: deploy blog
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *' # at 10:00 on wednesday
- cron: '0 10 * * *' # daily at 10:00
push:
branches:
- staging

View file

@ -27,10 +27,24 @@ This is the website of the CCCB.
5. Point your browser to: <http://localhost:1313/>
To ready your site for upload, run `./build.sh`, which also generates `all.ics`
and adds the calendar table to `index.html`.
Every change you make on the project will be reflected in your browser
as long as `hugo serve` is running.
Every change you make on the project will be reflected in your browser as long
as `hugo serve` is running.
The *"Nächste Veranstaltungen"* table on the home page is generated by
post-processing in `./build.sh`, not by Hugo, so it is **not** visible under
`hugo serve`. To preview the fully-built site (including the home-page
calendar), or to ready the site for upload, run:
```shell
./build.sh
python3 -m http.server -d public 1313
```
`build.sh` generates `all.ics` and replaces the `CALENDAR` placeholder in
`index.html` with the upcoming-events table. It depends on Python with the
`icalendar`, `python-dateutil`, and `pytz` packages, plus a `de_DE.UTF-8`
locale (used to format weekday names). Inside `nix develop` these are
provided automatically.
To build with *nix*: `nix build '.?submodules=1#production-content'`

View file

@ -131,6 +131,12 @@ document.addEventListener('DOMContentLoaded', function() {
else if (rruleStr.includes("FREQ=MONTHLY") && rruleStr.includes("BYDAY")) {
const bydayMatch = rruleStr.match(/BYDAY=([^;]+)/);
if (bydayMatch) {
const intervalMatch = rruleStr.match(/INTERVAL=(\d+)/);
const interval = intervalMatch ? parseInt(intervalMatch[1]) : 1;
const monthsFromStart = (year - startDate.getFullYear()) * 12 + (month - startDate.getMonth());
if (monthsFromStart < 0 || monthsFromStart % interval !== 0) {
return [];
}
const bydays = bydayMatch[1].split(',');
const dayMap = {
'MO': 1, 'TU': 2, 'WE': 3, 'TH': 4, 'FR': 5, 'SA': 6, 'SU': 0

View file

@ -26,7 +26,7 @@ draft: true
{{< alert "circle-info" >}}
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/page/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/veranstaltungen/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Generell sind aber alle, die schonmal im Club waren, herzlich eingeladen, an den Bastelabenden vorbeizukommen.
Generell sind aber alle, die schon mal im Club waren, herzlich eingeladen, an den Bastelabenden vorbeizukommen.
{{< /alert >}}

View file

@ -0,0 +1,20 @@
---
title: "Di.Day"
subtitle: "Digital Independence Day im CCCB"
date: 2026-01-04T12:23:00+01:00
dtstart: 20260104T122300
dtend: 20260104T174200
rrule: "FREQ=MONTHLY;INTERVAL=2;BYDAY=1SU;WKST=MO"
menu:
main:
parent: "Veranstaltungen"
tag: ["Veranstaltung"]
---
**Jeden ersten Sonntag im Monat von 12:23 bis 17:42 Uhr** findet der Berliner Digital Independence Day statt. Der Veranstaltungsort wechselt monatlich zwischen den Räumen des CCCB (in den ungeraden Monaten Januar, März, Mai, …) und dem [xHain](https://x-hain.de/) (in den geraden Monaten).
Der CCCB und das xHain beteiligen sich gemeinsam an der internationalen [Digital Independence Day](https://diday.org)-Initiative. Diese Graswurzelbewegung ruft dazu auf, zu demokratiefreundlichen digitalen Alternativen zu wechseln, um die Abhängigkeit von großen Technologiekonzernen zu verringern.
Vor Ort gibt es praktische Hilfe beim Wechsel zu datenschutzfreundlichen Diensten, beim Einrichten von Linux oder beim Betrieb von Smartphones ohne große Tech-Konzerne. Egal ob Anfänger:in oder Fortgeschrittene:r. Kommt vorbei und bringt eure Geräte und Fragen mit.
Weitere Informationen gibt es im [Ankündigungsbeitrag](https://berlin.ccc.de/post/2026/02/22/berlin-%23didit/).

View file

@ -2,9 +2,8 @@
title: "Neujahresempfang"
subtitle: "#NJE 26"
date: 2025-03-05T18:00:00+02:00
dtstart: 20250523T180000
dtend: 20250524T100000
rrule: "FREQ=MOTHLY;BYDAY=4SA;WKST=MO"
dtstart: 20260523T180000
dtend: 20260524T100000
menu:
main:
parent: "Veranstaltungen"

View file

@ -2,9 +2,9 @@
title: "OpenWrt"
subtitle: "OpenWrt Stammtisch"
date: 2025-01-08T20:00:00+02:00
dtstart: 20250115T200000
dtend: 20250115T230000
rrule: "FREQ=MONTHLY;BYDAY=3WE;WKST=MO"
dtstart: 20251119T200000
dtend: 20251119T230000
rrule: "FREQ=MONTHLY;INTERVAL=3;BYDAY=3WE;WKST=MO"
menu:
main:
parent: "Veranstaltungen"
@ -13,7 +13,7 @@ tag: ["Veranstaltung"]
![Verschiedene Platinen im CCCB](/img/club/42300970272_667569d239.jpg)
**Jeden 3. Mittwoch im Monat ab 20 Uhr** treffen sich die OpenWrt begeisterten und die es werden wollen zum OpenWrt Stammtisch im CCCB.
**Jeden 3. Mittwoch im Februar, Mai, August und November ab 20 Uhr** treffen sich die OpenWrt begeisterten und die es werden wollen zum OpenWrt Stammtisch im CCCB.
Das OpenWrt Meetup richtet sich an alle die OpenWrt benutzen oder benutzen wollen aber auch Leute die an OpenWrt entwickeln.

View file

@ -16,7 +16,7 @@ tag: ["Veranstaltung"]
**Jeden 2. und 4. Samstag im Monat ist ab 17 Uhr Spieleabend im Club.**
{{< alert "circle-info" >}}
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/page/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/veranstaltungen/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Generell sind aber alle, die schonmal im Club waren, herzlich eingeladen, an den Spieleabenden vorbeizukommen.
Generell sind aber alle, die schon mal im Club waren, herzlich eingeladen, an den Spieleabenden vorbeizukommen.
{{< /alert >}}

View file

@ -23,8 +23,8 @@ Der Begriff [Subbotnik](https://de.wikipedia.org/wiki/Subbotnik) ist eine in Sow
---
{{< alert "circle-info" >}}
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/page/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Wenn ihr neu seid und den CCCB zum ersten Mal besuchen wollt, kommt am besten an einem Donnerstag zum [Club Discordia](/veranstaltungen/clubdiscordia/), da samstags nicht immer genug Leute da sind, um euch zu empfangen.
Generell sind aber alle, die schonmal im Club waren, herzlich eingeladen am Subbotnik vorbeizukommen und mitzuhelfen.
Generell sind aber alle, die schon mal im Club waren, herzlich eingeladen am Subbotnik vorbeizukommen und mitzuhelfen.
{{< /alert >}}