CCCB Website (https://berlin.ccc.de/)
  • JavaScript 49%
  • HTML 29.6%
  • CSS 15.8%
  • Nix 4.5%
  • Shell 1.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Hauke Mehrtens c4f7605150 Update Blowfish to v2.106.0
The theme was pinned at v2.86.0, which declares that it works with Hugo 0.137.0
to 0.147.5. Hugo has been 0.165.0 here and 0.163.3 in the pinned nixpkgs branch
for a while, so every build complained:

  WARN  Module "blowfish" is not compatible with this Hugo version: 0.87.0/0.147.5
  WARN  deprecated: .Site.LanguageCode was deprecated in Hugo v0.158.0
  WARN  deprecated: .Site.Data was deprecated in Hugo v0.156.0

The two deprecated calls were in the templates of the theme, in head.html,
baseof.html, schema.html and several shortcodes, so they could not be fixed
from here. v2.106.0 accepts 0.158.0 to 0.165.0, which covers both Hugo versions
we build with, and no longer uses either of them. The build is free of warnings
now. v3 was not taken, it is a new major version.

The theme reorganised its JavaScript along the way and dropped js/process.js.
Our layouts/partials/footer.html is a copy of the footer of the theme with a
link to the Git repository added to the "powered by" line, and it still loaded
that file, which broke the build outright:

  ERROR ... execute of template failed: ... <resources is nil

Take the footer of v2.106.0 and add the link to it again. It is the only
template we override that belongs to the theme, the others are our own, and
nothing else in layouts/ refers to a file the theme removed. The German strings
for the 404 page still apply, the theme keeps its translations as YAML now but
the keys are unchanged, and no configuration parameter we set was dropped.

The site builds identically apart from the theme itself: no page is lost, none
lost its content, the largest pages grow by about a third from added markup,
and the churn in public/ is the renamed bundles, the dropped jQuery and
differently named image derivatives.

While at it, replace the note in the README that told the reader not to update
nixpkgs because it would bring a Hugo the theme cannot handle. That is what
just got resolved, so name the actual range instead.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-08-27 21:42:54 +02:00
.forgejo/workflows Update .forgejo/workflows/deploy.yaml 2026-08-25 20:57:44 +02:00
archetypes Move out datengartens into their own section 2018-05-21 18:31:39 +02:00
assets Move what the two calendar views share into one module 2026-08-23 01:07:25 +02:00
config/_default Do not ask for a calendar of every page 2026-08-27 21:42:54 +02:00
content Vendor ical.js instead of loading it from unpkg.com 2026-08-23 01:07:25 +02:00
i18n fix 404 2025-06-06 18:39:07 +02:00
layouts Update Blowfish to v2.106.0 2026-08-27 21:42:54 +02:00
static Vendor ical.js instead of loading it from unpkg.com 2026-08-23 01:07:25 +02:00
themes Update Blowfish to v2.106.0 2026-08-27 21:42:54 +02:00
tools switch to ics files; make calendars work; fix some minor issues 2026-08-12 02:01:58 +02:00
.editorconfig switch to ics files; make calendars work; fix some minor issues 2026-08-12 02:01:58 +02:00
.gitignore README: describe the calendar as it is built today 2026-08-22 21:22:02 +02:00
.gitmodules removed old beautifulhugo theme 2025-03-12 12:50:25 +01:00
.hugo-params improved calendar and fixed url temporarily 2025-03-12 16:06:29 +01:00
build.sh switch to ics files; make calendars work; fix some minor issues 2026-08-12 02:01:58 +02:00
devShells.nix split flake into multiple files 2025-06-07 15:40:38 +02:00
flake.lock switch to ics files; make calendars work; fix some minor issues 2026-08-12 02:01:58 +02:00
flake.nix switch to ics files; make calendars work; fix some minor issues 2026-08-12 02:01:58 +02:00
LICENSE Add LICENSE 2018-08-14 23:11:06 +02:00
old_config.yaml.txt new images, new content, new theme almost finished 2025-02-27 00:21:42 +01:00
packages.nix flake lib.mkWwwContent 2025-06-07 19:22:56 +02:00
README.md Update Blowfish to v2.106.0 2026-08-27 21:42:54 +02:00
TODO.md update readme, markdown lint 2025-06-07 15:35:43 +02:00

CCCB Website

This is the website of the CCCB.

CCCB logo

Getting started

  1. Get Hugo: https://gohugo.io/getting-started/installing

  2. Clone this repo (--recursive is needed to check out submodules)

    git clone --recursive https://git.berlin.ccc.de/cccb-website-team/www.git cccb-website
    
  3. Switch directory

    cd cccb-website
    
  4. Run hugo webserver

    hugo serve
    
  5. Point your browser to: http://localhost:1313/

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 and the calendar under /verein/calendar/ are rendered in the browser by assets/js/upcoming.js and assets/js/calendar.js. Both fetch /calendars/all.ics, which is not generated by Hugo and is not part of this repo — it is published separately on the web server. Without it both tables stay empty. Download the published calendar into static/, which Hugo serves under the same path, and they work locally, under hugo serve as well as in a built site:

mkdir -p static/calendars
curl -o static/calendars/all.ics https://berlin.ccc.de/calendars/all.ics

The file is only there to look at the site, it is not checked in. Download it again whenever you want the events that are currently published.

Hugo does generate an .ics feed per section (for example /veranstaltungen/index.ics) from the dtstart, dtend and rrule front matter of the pages in content/veranstaltungen/, using the .ics templates under layouts/.

The site must not make the browser load anything from an external server, so third party JavaScript is checked into assets/js/vendor/ and bundled in by Hugo instead of being pulled from a CDN. See the README there before updating it.

To build the site for upload, run:

./build.sh

This deletes public/ and runs hugo with the parameters from .hugo-params. To build with nix instead: nix build '.?submodules=1#production-content'

Making a change

  1. Use your local dev setup (see Getting started) or via the Forgejo editor.
  2. Make your change in staging branch.
  3. Commit (and push) your change.
  4. GitHub Actions is running the release workflow.
  5. Create a merge request to merge changes from staging to production branch. Ask somebody to check merge request or if small change, merge yourself.
  6. GitHub Actions is running the release workflow.
    • If successfull, check Website if change is correct.
  7. Profit!

Nix stuff

  • After entering the shell with nix develop, hugo is available and hugo serve and ./build.sh should work
  • You can build the staging and production builds with nix build .#staging-content and nix build .#production-content
  • The theme accepts a limited range of Hugo versions, declared as [module.hugoVersion] in themes/blowfish/config.toml. Blowfish v2.106.0 wants 0.158.0 to 0.165.0, the nixpkgs branch pinned in flake.nix carries 0.163.3. Keep the two in range when updating either of them, Hugo warns on every build otherwise.

Made with ❤️ and Hugo.