merge staging to production #58
2 changed files with 26 additions and 11 deletions
README: describe the calendar as it is built today
`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 next to the site and is
not built from this repository. That also replaces the old advice to preview
them via `./build.sh` plus a local HTTP server, which no longer helps.
Without that file the two of them stay empty. Hugo serves everything below
`static/` from the root of the site, so it can simply be put there, and the
command that downloads it is worth writing down. Checked from an empty state:
afterwards the file is served under `/calendars/all.ics` by `hugo serve` and the
table on the start page fills with the upcoming events. It is a copy of
published data and has no business in the repository, so ignore it.
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>
commit
b11d80aac2
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -202,3 +202,8 @@ $RECYCLE.BIN/
|
|||
*.lnk
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos,hugo,pycharm+all,vim,direnv
|
||||
|
||||
### CCCB ###
|
||||
# The calendar the site reads its events from is published next to the site and
|
||||
# only downloaded here to look at the site locally, see the README.
|
||||
/static/calendars/
|
||||
|
|
|
|||
32
README.md
32
README.md
|
|
@ -29,20 +29,31 @@ This is the website of the CCCB.
|
|||
|
||||
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:
|
||||
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. 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:
|
||||
|
||||
```shell
|
||||
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/`.
|
||||
|
||||
To build the site for upload, run:
|
||||
|
||||
```shell
|
||||
./build.sh
|
||||
python3 -m http.server -d public 1313
|
||||
```
|
||||
|
||||
`build.sh` 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'`
|
||||
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
|
||||
|
||||
|
|
@ -59,8 +70,7 @@ To build with *nix*: `nix build '.?submodules=1#production-content'`
|
|||
|
||||
## 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
|
||||
- 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
|
||||
|
|
|
|||
Loading…
Reference in a new issue