forked from cccb-website-team/www
fix
This commit is contained in:
parent
75ae1c30a2
commit
a8450de7a8
4 changed files with 19 additions and 16 deletions
27
README.md
27
README.md
|
|
@ -29,19 +29,30 @@ 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.
|
Every change you make on the project will be reflected in your browser as long as `hugo serve` is running.
|
||||||
|
|
||||||
The *"Nächste Veranstaltungen"* calendar on the home page is rendered by
|
The *"Nächste Veranstaltungen"* table on the home page and the calendar under `/verein/calendar/` are rendered in the
|
||||||
Hugo via the `calendar` shortcode, which fetches `all.ics` client-side.
|
browser by `assets/js/upcoming.js` and `assets/js/calendar.js`. Both fetch `/calendars/all.ics`, which is **not**
|
||||||
`all.ics` is generated from the individual event pages by `./tools/merge_cals.py`.
|
generated by Hugo and is not part of this repo — it is published separately on the web server. Without it both tables
|
||||||
To preview the fully-built site (including `all.ics`), or to ready the site for
|
stay empty. Download the published calendar into `static/`, which Hugo serves under the same path, and they work
|
||||||
upload, run:
|
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
|
```shell
|
||||||
./build.sh
|
./build.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
`build.sh` runs `hugo`, generates `all.ics`, and copies it into `public/`.
|
This deletes `public/` and runs `hugo` with the parameters from `.hugo-params`.
|
||||||
It depends on Python with the `icalendar`, `python-dateutil`, and `pytz`
|
|
||||||
packages. Inside `nix develop` these are provided automatically.
|
|
||||||
|
|
||||||
To build with *nix*: `nix build '.?submodules=1#production-content'`
|
To build with *nix*: `nix build '.?submodules=1#production-content'`
|
||||||
|
|
||||||
|
|
|
||||||
2
build.sh
2
build.sh
|
|
@ -5,5 +5,3 @@ set -ex
|
||||||
rm -rf public/ # delete old generated files
|
rm -rf public/ # delete old generated files
|
||||||
|
|
||||||
hugo $(cat .hugo-params)
|
hugo $(cat .hugo-params)
|
||||||
./tools/merge_cals.py
|
|
||||||
cp static/all.ics public/all.ics
|
|
||||||
|
|
|
||||||
3
dev.sh
3
dev.sh
|
|
@ -2,9 +2,6 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Regenerate the merged calendar so the JS calendar widget has fresh data
|
|
||||||
./tools/merge_cals.py 2>/dev/null || echo "Note: merge_cals.py skipped (no public/ dir yet)"
|
|
||||||
|
|
||||||
hugo server \
|
hugo server \
|
||||||
--buildDrafts \
|
--buildDrafts \
|
||||||
--buildFuture \
|
--buildFuture \
|
||||||
|
|
|
||||||
|
|
@ -58,9 +58,6 @@
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
mkdir -p public
|
mkdir -p public
|
||||||
hugo --baseURL=https://${domain}/
|
hugo --baseURL=https://${domain}/
|
||||||
|
|
||||||
python3 ./tools/merge_cals.py
|
|
||||||
cp static/all.ics public/all.ics
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Install phase - copy the public directory to the output
|
# Install phase - copy the public directory to the output
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue