- JavaScript 49%
- HTML 29.6%
- CSS 15.8%
- Nix 4.5%
- Shell 1.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The response of the fetch went to the parser without ever looking at it. When
the calendar could not be loaded the error page of the web server was parsed as
a calendar, which threw inside a promise nobody was waiting on. The result was
an empty table, an unhandled rejection in the console and an error message
about broken calendar syntax that says nothing about the actual problem, a
calendar that is not there.
Refuse a response that is not ok, naming the status, and log failures in the
chain, like the calendar page already does.
before: Uncaught (in promise) Error: invalid line (no token ";" or ":")
"<html>404 Not Found</html>"
after: Fehler beim Laden der Termine:
Error: /calendars/all.ics: 404 Not Found
The table stays empty either way, there is nothing to show without a calendar.
Fixes:
|
||
| .forgejo/workflows | ||
| archetypes | ||
| assets | ||
| config/_default | ||
| content | ||
| i18n | ||
| layouts | ||
| static | ||
| themes | ||
| tools | ||
| .editorconfig | ||
| .gitignore | ||
| .gitmodules | ||
| .hugo-params | ||
| build.sh | ||
| devShells.nix | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| old_config.yaml.txt | ||
| packages.nix | ||
| README.md | ||
| TODO.md | ||
CCCB Website
This is the website of the CCCB.
Getting started
-
Clone this repo (
--recursiveis needed to check out submodules)git clone --recursive https://git.berlin.ccc.de/cccb-website-team/www.git cccb-website -
Switch directory
cd cccb-website -
Run hugo webserver
hugo serve -
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 static/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. Locally those two
tables therefore stay empty; check them on the staging site instead.
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/.
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
- Use your local dev setup (see Getting started) or via the Forgejo editor.
- Make your change in
stagingbranch. - Commit (and push) your change.
GitHub Actions is running the release workflow.- If successful, check Staging Website if change is correct.
- Create a merge request to merge changes from
stagingtoproductionbranch. Ask somebody to check merge request or if small change, merge yourself. GitHub Actions is running the release workflow.- If successfull, check Website if change is correct.
- Profit!
Nix stuff
- After entering the shell with
nix develop, hugo is available andhugo serveand./build.shshould work - You can build the staging and production builds with
nix build .#staging-contentandnix build .#production-content - Do not update the nixpkgs branch - 25.05 contains a newer hugo version that is incompatible with the theme (last checked June 2025)
Made with ❤️ and Hugo.
