Compare commits

..

6 commits

Author SHA1 Message Date
ed931f49cc update image of club room on home page (#139)
Some checks failed
/ build (push) Failing after 2m26s
Reviewed-on: #139
Reviewed-by: chris <c6ristian+git-ccchh@christian.moe>
2026-05-26 17:55:41 +02:00
28b9784e36 Ankündigung: kein DIDAY im Juni (#147)
All checks were successful
/ build (push) Successful in 16s
Reviewed-on: #147
Reviewed-by: lilly <lilly@noreply.git.hamburg.ccc.de>
2026-05-26 15:07:46 +02:00
1d0e8d59c4
fix plural casing in nolympia post
Some checks failed
/ build (pull_request) Successful in 42s
/ build (push) Successful in 15s
/ cleanup-staging (pull_request) Failing after 2s
2026-05-24 22:28:04 +02:00
ff9cbb8d8d
fix publish date of nolympia post 2026-05-24 22:27:37 +02:00
76ba862b7c fix grammar of nolympia announcement (#144)
All checks were successful
/ build (push) Successful in 15s
Reviewed-on: #144
Reviewed-by: forestcat-admin <forestcat-admin@noreply.git.hamburg.ccc.de>
2026-05-24 00:08:52 +02:00
239598dc4e add nolympia announcement (#142)
All checks were successful
/ build (push) Successful in 15s
Reviewed-on: #142
Reviewed-by: stb <stb@noreply.git.hamburg.ccc.de>
2026-05-23 23:32:20 +02:00
14 changed files with 122 additions and 40 deletions

View file

@ -13,7 +13,7 @@ jobs:
build:
runs-on: docker
container:
image: hugomods/hugo:exts-0.158.0
image: hugomods/hugo:exts-0.148.1
steps:
- name: Pipeline info
run: |

View file

@ -34,8 +34,6 @@ Please note, that the website should be re-deployed at least daily to update the
### Add Pages
To run a local version, just install HUGO by following the [instructions](https://gohugo.io/installation/) for your operating system.
Note that you also need to install the [Dart Sass compiler](https://sass-lang.com/dart-sass/).
To build the website and run a development webserver, execute:
```shell
hugo server

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

View file

@ -0,0 +1,50 @@
---
categories: article
title: 'Der CCCHH sagt NEIN zu Olympia in Hamburg'
date: '2026-05-31T23:59:59+02:00'
publishDate: '2026-05-23T20:00:00+02:00'
draft: false
authors:
- lilly
tags:
- überwachung
- ki
- vorratsdatenspeicherung
header:
caption: >-
Logo des NOLYMPIA Hamburg Bündnisses.
Es ist ein schwarzer Schriftzug mit dick gedrucktem NO und anschließendem LYMPIA auf rotem Hintergrund.
Das Wort Hamburg ist klein und nach rechts versetzt unter NOLYMPIA zu sehen.
image: header.png
---
Der Senat Hamburgs möchte sich gerne mit unserer schönen Stadt als Austragungsort für die olympischen Spiele 2036, 2040 oder 2044 bewerben[^1].
Wir teilen die Meinung des Senats und der regierenden Fraktionen nicht, dass olympische Spiele in Hamburg unzählige und eindeutige Vorteile bringen würde. Ganz im Gegenteil!
Bei der Austragung der letzten Spiele in Paris und auch davor haben wir gesehen, dass die Stadt zwar in aller Munde kommt, aber die Spiele selbst für die Menschen dort ein riesiger Kostenpunkt und massive Belastung sind[^2][^3].
Eine konkrete oder belastbare Planung zur Umsetzung der Sicherheit während der Spiele hat die Stadt noch nicht veröffentlicht, aber den bereits durchgesickerten Eckpunkten stehen wir sehr kritisch gegenüber.
Das Konzept der Stadt sieht vor, die Spiele in das bestehende Stadtleben zu integrieren[^4].
Dies würde bedeuten, dass in diversen Stadtteilen in den Wohnvierteln und Sportstätten vor der Haustür Sicherheitszonen eingerichtet werden.
Sicherheitszonen bedeuten den massiven Ausbau von Überwachungskameras, wahrscheinlich mit undurchsichtiger und massenhafter KI-Auswertung jedes öffentlichen Verhaltens <q>integriert</q> in das komplette Stadtleben[^5].
Wie der Senat die Zugangskontrolle in diesen Sicherheitszonen gestalten will ist auch noch unklar.
Ob wir hier eine Einschränkung der Bewegungsfreiheit für Menschen ohne Tickets mitsamt übergriffigen und dauerhaften Polizeikontrollen wie in Paris[^6] zu erwarten haben oder ob es hier eine digitale Version über irgendwelche hastig gebauten Apps erzwungen wird, können wir noch nicht sagen.
Keines von beiden ist eine hinnehmbare Option.
Ein weiterer Punkt für uns als stark queerer Verein, der von einem bunten Miteinander **aller** Arten von Menschen lebt, sind die trans\*- und menschenfeindlichen Vorstellungen des IOC[^7].
Das Organisationskommittee steht hier nicht für die moderne pluralistische Gesellschaft, die der Senat uns verkaufen will, sondern für ein rückwärtsgewanntes Weltbild, welches vor der Hetze rechter Mobs kuscht.
Damit schadet das IOC nicht nur der queeren Community in Hamburg sondern der Sicherheit und Selbstbestimmung aller Frauen[^8]!
Long story Short: Es gibt in Hamburg viel Potential und Möglichkeiten für positive Stadtgestaltung.
Wir brauchen aber kein Prestigeprojekt Olympia, um eine bessere Realität zu schaffen.
[^1]: https://www.ndr.de/sport/mehr_sport/olympia-referendum-in-hamburg-alle-fragen-und-antworten,olympia-526.html
[^2]: https://www.nolympia-hamburg.de/stellungnahme/
[^3]: https://www.nolympia-hamburg.de/nolympiahh/wp-content/uploads/2026/01/10-Min-NOlympische-Fakten-Links-und-Quellen-28012026.pdf
[^4]: https://www.hamburg-activecity.de/olympia-konzept
[^5]: https://taz.de/Ueberwachung-von-Drogenszene/!5933508/
[^6]: https://www.zeit.de/digital/datenschutz/2024-07/ki-olympische-spiele-ueberwachung-sicherheit-paris
[^7]: https://www.spiegel.de/sport/olympia/ioc-internationales-olympisches-komitee-verlangt-kuenftig-geschlechtertest-von-sportlerinnen-a-81fa279b-1e7f-4d8a-9aa0-f4799a0590d6
[^8]: https://www.klassegegenklasse.org/trans-frauen-sind-frauen-egal-was-das-gericht-sagt/

View file

@ -0,0 +1,23 @@
---
categories: event
title: 'Kein DIDAY im Juni 2026'
date: '2026-06-07T14:00:00+01:00' # date of the event
publishDate: '2026-06-01T12:00:00+01:00' # when to publish
draft: false
location: Z9
authors:
- June
tags:
- DID
- digitale selbstverteidigung
# header:
# caption: A caption für the picture will be used as Alt-Text
# image: Path to the image
---
Leider können wir im Juni, am 06.07.2026, keinen [Digital Independence Day](https://diday.org) für euch anbieten.
<!--more-->
Wir laden euch aber dazu ein, eine der vielzähligen alternativen Veranstaltungen in Hamburg zu besuchen. Was wann wo stattfindet, könnt ihr im [DIDAY Terminkalender](https://events.diday.org) herausfinden.
Und selbstverständlich könnt ihr auch die zahlreichen Onlne-Ressourcen rund ums Thema Digital Independence nutzen, um euch selbstständig zu einem neuen Thema zu informieren. Dazu gibt es die [Anleitungen auf diday.org](https://diday.org/de/guides/), die [Wechselrezepte auf di.day](https://di.day/de/wechselrezepte) oder auch die Folien zu unseren vergangen DIDAYs zu den Themen [Messenger](https://hamburg.ccc.de/blog/2026/03/01/diday-messenger-alternativen-zu-whatsapp-und-co./diday_Messenger.pdf) und [Cloud](https://hamburg.ccc.de/blog/2026/05/03/diday-die-eigene-cloud/diday_Die_eigene_Cloud.pdf).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View file

@ -8,11 +8,11 @@ headless: true
Wenn du uns kennenlernen möchtest, komm doch einfach mal zum [Open Chaos](https://wiki.hamburg.ccc.de/club:terminserien:openchaos) vorbei.
Gelegentlich bieten wir außerdem Vorträge zu spezifischen Themen an, die hier im [Blog]({{< ref "/blog" >}}) und im Kalender veröffentlichen.
{{< img-resize "2-visit/Z9-hauptraum-202301-leinwand.jpeg" "300x" "float-right" >}}
{{< img-resize "2-visit/Z9-hauptraum-202512-leinwand.jpeg" "400x" "float-right" >}}
Wir haben einen großen Raum für Vorträge, Workshops oder gemütliches Hacken an Projekten mit Tischen für ca. 20 Personen, Küche und Sofaecke.
{{< clearfix >}}
{{< img-resize "2-visit/Z9-hauptraum-202301-kueche.jpeg" "300x" "float-right" >}}
{{< img-resize "2-visit/Z9-hauptraum-202301-kueche.jpeg" "400x" "float-right" >}}
Zusätzlich befinden sich direkt nebenan zwei Werkstatträume zum Löten, 3D-Drucken, Lasercutten, Schreinern, etc.
{{< clearfix >}}

View file

@ -1,5 +1,5 @@
baseURL = 'https://hamburg.ccc.de/'
locale = 'de-de'
languageCode = 'de-de'
defaultContentLanguage = 'de'
timeZone = 'Europe/Berlin'
title = 'CCC Hansestadt Hamburg e.V.'

View file

@ -1,6 +1,3 @@
@use "sass:map";
@use "sass:math";
$roomstate_color_unknown: #dda218;
$roomstate_color_open: var(--ins-color);
$roomstate_color_closed: var(--del-color);
@ -167,12 +164,7 @@ body>main {
margin-bottom: 1rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
h1, h2, h3, h4, h5, h6 {
margin: 0.5rem 1rem;
}
@ -210,7 +202,7 @@ body>main {
display: block;
margin: 0 auto;
// (250px - 2*var(--grid-spacing-horizontal)) * 3/4
max-height: math.div(222px * 3, 4);
max-height: (222px * 3/4);
}
// 2*250px + 2*var(--spacing) + 1px
@ -219,7 +211,7 @@ body>main {
img.groups-img {
// (150px - 2*var(--grid-spacing-horizontal)) * 3/4
max-height: math.div(122px*3, 4);
max-height: (122px*3/4);
}
}
@ -229,7 +221,7 @@ body>main {
img.groups-img {
// (350px - 2*var(--grid-spacing-horizontal)) * 3/4
max-height: math.div(322px*3, 4);
max-height: (322px*3/4);
}
// 2*350px + 2*var(--spacing) + 1px
@ -238,7 +230,7 @@ body>main {
img.groups-img {
// (250px - 2*var(--grid-spacing-horizontal)) * 3/4
max-height: math.div(222px*3, 4);
max-height: (222px*3/4);
}
}
}
@ -303,7 +295,7 @@ body>main {
// When the header content doesn't display nicely anymore, switch to mobile mode.
@import "../pico-1.5.11/scss/variables";
@media (max-width: map.get($breakpoints, md)) {
@media (max-width: map-get($breakpoints, md)) {
.hamburger-button {
display: unset;
position: absolute;
@ -383,15 +375,15 @@ body>main {
}
// Use the media queries, which we need, from here:
@if map.get($breakpoints, "sm") {
@media (min-width: map.get($breakpoints, "sm")) {
@if map-get($breakpoints, "sm") {
@media (min-width: map-get($breakpoints, "sm")) {
ul {
padding-left: 0;
padding-right: 0;
}
.main-nav {
max-width: map.get($viewports, "sm");
max-width: map-get($viewports, "sm");
}
}
}
@ -462,12 +454,17 @@ div.nav-aside {
margin: 15px var(--block-spacing-horizontal);
}
img {
padding: 15px var(--block-spacing-horizontal);
width: 100%;
height: 25cqw;
object-fit: cover;
object-position: top;
.image-container {
margin: 0;
padding: 0;
display: flex;
justify-content: center;
img {
padding: 15px var(--block-spacing-horizontal);
max-width: 100%;
max-height: 100%;
}
}
}

View file

@ -1,3 +1,4 @@
{{- /* Deprecate site.Author.email in favor of site.Params.author.email */}}
{{- $authorEmail := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
@ -5,8 +6,14 @@
{{- $authorEmail = . }}
{{- end }}
{{- end }}
{{- else }}
{{- with site.Author.email }}
{{- $authorEmail = . }}
{{- warnf "The author key in site configuration is deprecated. Use params.author.email instead." }}
{{- end }}
{{- end }}
{{- /* Deprecate site.Author.name in favor of site.Params.author.name */}}
{{- $authorName := "" }}
{{- with site.Params.author }}
{{- if reflect.IsMap . }}
@ -16,6 +23,11 @@
{{- else }}
{{- $authorName = . }}
{{- end }}
{{- else }}
{{- with site.Author.name }}
{{- $authorName = . }}
{{- warnf "The author key in site configuration is deprecated. Use params.author.name instead." }}
{{- end }}
{{- end }}
{{- $pctx := . }}
@ -36,12 +48,12 @@
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{ . }} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo</generator>
<language>{{ site.Language.Locale }}</language>{{ with $authorEmail }}
<generator>Hugo -- gohugo.io</generator>
{{ with $authorEmail }}
<managingEditor>{{.}}{{ with $authorName }} ({{ . }}){{ end }}</managingEditor>{{ end }}{{ with $authorEmail }}
<webMaster>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</webMaster>{{ end }}{{ with .Site.Copyright }}
<copyright>{{ . }}</copyright>{{ end }}{{ if not .Date.IsZero }}
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{- end }}
@ -57,7 +69,7 @@
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{- with $authorEmail }}<author>{{ . }}{{ with $authorName }} ({{ . }}){{ end }}</author>{{ end }}
<guid>{{ .Permalink }}</guid>
<description>{{ .Content | transform.XMLEscape | safeHTML }}</description>
<description>{{ .Content | html }}</description>
</item>
{{- end }}
</channel>

View file

@ -46,8 +46,10 @@
{{- end }}
</div>
{{- if isset .Params "header" }}
{{- $img := .Resources.GetMatch .Params.header.image }}
<img class="container" src="{{ $img.RelPermalink }}" alt="{{ .Params.header.caption }}" />
{{- end }}
<div class="image-container">
{{- $img := .Resources.GetMatch .Params.header.image }}
<img src="{{ $img.RelPermalink }}" alt="{{ .Params.header.caption }}" />
{{- end }}
</div>
</header>
{{- end }}

View file

@ -1,5 +1,5 @@
{{- $cssOptionsMain := dict "transpiler" "dartsass" "targetPath" "css/style.css" -}}
{{- $cssOptionsPico := dict "transpiler" "dartsass" "targetPath" "css/pico.css" -}}
{{- $cssOptionsMain := dict "transpiler" "libsass" "targetPath" "css/style.css" -}}
{{- $cssOptionsPico := dict "transpiler" "libsass" "targetPath" "css/pico.css" -}}
{{- $jsResources := resources.Match "js/*.js" }}
<meta name="viewport" content="width=device-width, initial-scale=1.0">

View file

@ -1,4 +1,4 @@
{{- index hugo.Data "calendar.json" }}
{{- index .Site.Data "calendar.json" }}
<table>
<thead>
<tr>
@ -8,7 +8,7 @@
</tr>
</thead>
<tbody>
{{- range first 7 (sort hugo.Data.calendar "dtstart" ) }}
{{- range first 7 (sort $.Site.Data.calendar "dtstart" ) }}
{{- if eq ._type "vevent"}}
<tr>
{{- $start := time .dtstart }}