www/README.md
Hauke Mehrtens c145161bc4 README: Erkläre, wie man den Kalender lokal sieht.
`hugo serve` rendert die Tabelle „Nächste Veranstaltungen" auf der
Startseite nicht — die wird erst durch `./build.sh` per sed in
`public/index.html` eingefügt. Die README beschreibt jetzt den
Build-und-Servieren-Workflow inklusive Python-Abhängigkeiten und
benötigtem Locale.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-03 16:54:15 +02:00

72 lines
2.4 KiB
Markdown

# CCCB Website
This is the website of the CCCB.
![CCCB logo](assets/img/logo.png)
## 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 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'`
## 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 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` should work
- Python including required packages will be available, so the `build.sh` should work without a venv
- 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).