diff --git a/.forgejo/workflows/deploy.yaml b/.forgejo/workflows/deploy.yaml index edc6f77..b0b9a6c 100644 --- a/.forgejo/workflows/deploy.yaml +++ b/.forgejo/workflows/deploy.yaml @@ -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 diff --git a/README.md b/README.md index 86698bc..3b0af0f 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,24 @@ This is the website of the CCCB. 5. Point your browser to: -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'` diff --git a/assets/js/calendar.js b/assets/js/calendar.js index 5aa9d6b..ffb3c7e 100644 --- a/assets/js/calendar.js +++ b/assets/js/calendar.js @@ -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 diff --git a/content/veranstaltungen/bastelabend.md b/content/veranstaltungen/bastelabend.md index 5f3d995..c787c17 100644 --- a/content/veranstaltungen/bastelabend.md +++ b/content/veranstaltungen/bastelabend.md @@ -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 >}} diff --git a/content/veranstaltungen/didit.md b/content/veranstaltungen/didit.md new file mode 100644 index 0000000..707fe52 --- /dev/null +++ b/content/veranstaltungen/didit.md @@ -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/). diff --git a/content/veranstaltungen/neujahresempfang.md b/content/veranstaltungen/neujahresempfang.md index 6bcd354..9a97796 100644 --- a/content/veranstaltungen/neujahresempfang.md +++ b/content/veranstaltungen/neujahresempfang.md @@ -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" diff --git a/content/veranstaltungen/openwrt.md b/content/veranstaltungen/openwrt.md index c2e66e8..282c130 100644 --- a/content/veranstaltungen/openwrt.md +++ b/content/veranstaltungen/openwrt.md @@ -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. diff --git a/content/veranstaltungen/spieleabend.md b/content/veranstaltungen/spieleabend.md index e1122f9..ab3d120 100644 --- a/content/veranstaltungen/spieleabend.md +++ b/content/veranstaltungen/spieleabend.md @@ -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 >}} diff --git a/content/veranstaltungen/subbotnik.md b/content/veranstaltungen/subbotnik.md index 5e86aa2..a520035 100644 --- a/content/veranstaltungen/subbotnik.md +++ b/content/veranstaltungen/subbotnik.md @@ -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 >}}