Commit graph www/layouts
Author SHA1 Message Date
a0e1ef046a Vendor ical.js instead of loading it from unpkg.com
The upcoming events table pulled its ICS parser straight from a CDN with
`import ICAL from "https://unpkg.com/ical.js/dist/ical.min.js"`. That sends
every visitor of the start page to unpkg.com, which hands their IP address and
user agent to a third party before any of our own code runs. The URL is not
even pinned to a version, so whatever ical.js publishes next is executed on our
site without anybody looking at it, and the start page silently breaks when the
CDN is unreachable.

Check the parser into `assets/js/vendor/` and let Hugo bundle it. This is what
`js.Build` is for: it runs the esbuild that is built into Hugo, so it resolves
the import at build time and needs no node_modules and no extra tooling in the
build environment. The result is minified and fingerprinted like the other
scripts of the site, and the script tag carries a subresource integrity hash.

Since the bundle now has a content hash in its name, its URL cannot be written
by hand in the markdown any more. Move the table and the script tag into an
`upcoming` shortcode, which is the same pattern `calendar.html` already uses,
and move `upcoming.js` from `static/` to `assets/` so Hugo can process it.

The vendored file is the unminified `dist/ical.js` of the pinned release: it
carries the MPL-2.0 header and is the source form of what we ship, and Hugo
minifies it for delivery anyway. `assets/js/vendor/README.md` records the
version, where it came from and how to update it.

The built bundle renders the same table as before, checked against
https://berlin.ccc.de/calendars/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>
2026-08-23 01:07:25 +02:00
9363618157 Behebe Layoutauswahl unter aktuellem Hugo.
Die layouts/_default/*.calendar.html-Vorlagen werden in Hugo
≥0.158 fälschlich für die HTML-Ausgabe ausgewählt, sodass alle
Sektions- und Einzelseiten VCALENDAR- statt HTML-Inhalt
enthielten. Die Vorlagen waren ohnehin nie funktionsfähig
(Warnung „found no layout file for calendar"); die ICS-Feeds
liefern die abschnittsspezifischen Vorlagen unter
layouts/{veranstaltungen,datengarten,page}/.

list.xml.html bekommt aus demselben Grund die korrekte Endung
.xml.

tools/gen_upcoming.py vergleicht Datumsangaben jetzt
zeitzonenneutral, damit Events mit Z-Suffix keinen TypeError
auslösen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-07-04 22:22:53 +02:00
murmeldin
1e245cf6cd newly added club status, currently disabled until spaceapi is set public 2025-04-17 00:48:03 +02:00
murmeldin
6281666093 datengarten post design overhaul 2025-04-17 00:45:32 +02:00
murmeldin
ccdaa9d95d fixed config + ics timezone 2025-04-16 18:36:08 +02:00
Marek Krug
5db017f998 Neues Template Datengarten talk infobox und kleine Korrektur 2025-03-31 20:04:11 +02:00
Marek Krug
2b5277a3a0 fixed ics generation 2025-03-12 17:41:44 +01:00
Marek Krug
4068fab565 improved calendar and fixed url temporarily 2025-03-12 16:06:29 +01:00
Vinzenz Schroeter
fabc5ff0ea fix naming conflict to restore old gallery with thumbnails 2025-03-10 17:40:10 +01:00
Marek Krug
1cd3099e37 favicons 2025-02-27 23:27:39 +01:00
Marek Krug
ba414b0015 new images, new content, new theme almost finished 2025-02-27 00:21:42 +01:00
Marek Krug
b62b53674f new theme (work in progress) 2025-02-26 19:47:07 +01:00
8fbd620e63 fix: update templates 2024-10-17 00:01:56 +02:00
f80ce7c40a
reformat html end tags 2023-06-13 21:41:28 +02:00
2e3a02af0c
refacture all the things! 2023-06-13 12:47:07 +02:00
0ee7913adb End regular Datengarten in 2019 2022-06-13 22:19:16 +02:00
ae512a738e Information über Umbau 2019-08-14 11:46:27 +02:00
de5e2ea51c ICS: Link als DETAILS text 2018-07-19 21:51:03 +02:00
48d93b0986 Talk Infobox: Sprachen ausschreiben 2018-07-19 21:50:03 +02:00
b36d187b37 Generate ics files correctly, incl. merged all.ics 2018-07-13 00:03:45 +02:00
a01afb2dd3 Calendars for all events
(to be tested)
2018-07-09 01:44:11 +02:00
a3f03d2273 Fix schedule.xml rendering 2018-06-11 22:49:04 +02:00
dd4e68b439 Datengärten regelmäßig ohne Titel anzeigen...
...außer es gibt einen Eintrag, dann nur diesen anzeigen.
2018-06-11 21:22:47 +02:00
ff62faf23a Move out datengartens into their own section
- /datengarten/index.html returns a blog-like list
- /datengarten/index.ics returns a VCALENDAR
- /datengarten/index.xml returns a schedule.xml-style view

No more pretty rendering includes in the content pages,
some more cleanup in the front matter
2018-05-21 18:31:39 +02:00
adb1819fb6 More concise location for CCCB 2018-05-20 15:55:44 +02:00
7ebb0231c9 Link speakers 2018-05-20 15:55:06 +02:00
6df3c9e8ba Fix icons in infobox 2018-05-20 14:29:34 +02:00
2b111b73ae Correct Series sorting, show correct icon for episodes without recording 2018-05-20 14:28:44 +02:00
c93bd4c6e6 Datengarten als Serie, Nr. 88 als Beispiel.
Fuer andere braucht es noch ein Import-Script.
2018-05-18 13:36:00 +02:00