`build.sh` no longer post-processes anything: since the switch to ICS files it
just deletes `public/` and runs `hugo`. The `CALENDAR` placeholder, the Python
dependency on `icalendar`, `python-dateutil` and `pytz`, and the `de_DE.UTF-8`
locale requirement are all gone, and nothing in `packages.nix`, `devShells.nix`
or `flake.nix` pulls in Python any more. Drop those claims.
Describe instead where the two calendar views actually come from: the
"Nächste Veranstaltungen" table and the calendar page are rendered in the
browser from `/calendars/all.ics`, which is published separately on the web
server and is not generated by Hugo, so both stay empty in a local build. That
also replaces the old advice to preview them via `./build.sh` plus a local HTTP
server, which no longer helps.
Mention the per-section `.ics` feeds Hugo does generate, so the ICS templates
under `layouts/` are not mistaken for the source of `all.ics`.
Fixes: c28f04c6e8 ("switch to ics files; make calendars work; fix some minor issues")
Assisted-by: Claude:claude-opus-5
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
# CCCB Website
|
|
|
|
This is the website of the CCCB.
|
|
|
|

|
|
|
|
## Getting started
|
|
|
|
1. Get Hugo: <https://gohugo.io/getting-started/installing>
|
|
2. Clone this repo (`--recursive` is needed to check out submodules)
|
|
|
|
```shell
|
|
git clone --recursive https://git.berlin.ccc.de/cccb-website-team/www.git cccb-website
|
|
```
|
|
|
|
3. Switch directory
|
|
|
|
```shell
|
|
cd cccb-website
|
|
```
|
|
|
|
4. Run hugo webserver
|
|
|
|
```shell
|
|
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 `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](https://staging.berlin.ccc.de/) 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:
|
|
|
|
```shell
|
|
./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.~~
|
|
- If successful, check [Staging Website](https://staging.berlin.ccc.de/) if change is correct.
|
|
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](https://berlin.ccc.de/) 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`
|
|
- 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](https://gohugo.io).
|
|
|