From d4092d97b657159e40b63da97bc03935fd5281f6 Mon Sep 17 00:00:00 2001 From: Vincent Mahnke Date: Sat, 8 Nov 2025 17:33:51 +0100 Subject: [PATCH 1/6] feat: Adds language badges to tour overview table --- content/de/39c3/_index.md | 44 ++++++++++++++++++------------------ content/en/39c3/_index.md | 44 ++++++++++++++++++------------------ layouts/shortcodes/README.MD | 9 ++++++++ layouts/shortcodes/lang.html | 16 +++++++++++++ 4 files changed, 69 insertions(+), 44 deletions(-) create mode 100644 layouts/shortcodes/README.MD create mode 100644 layouts/shortcodes/lang.html diff --git a/content/de/39c3/_index.md b/content/de/39c3/_index.md index 8d9d928..a8e8ebb 100644 --- a/content/de/39c3/_index.md +++ b/content/de/39c3/_index.md @@ -14,28 +14,28 @@ cascade: Diese Touren bieten wir zum 39C3 Chaos Communication Congress an: -**Tag 0 (26.12.)**: [Miniatur Wunderland](./miwula/) um 12:25 und 17:15. +**Tag 0 (26.12.)**: [Miniatur Wunderland](./miwula/) um 12:25 {{< lang deen >}} und 17:15 {{< lang deen >}}. -| Zeit | Tag 1 (27.12.) | Tag 2 (28.12.) | Tag 3 (29.12.) | -| ----- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| 10:00 | | 10:30 [Rote Flora](./flora/) | 09:30 [Feuerwehr eHLF](./firestation/) | -| 11:00 | - | - | - | -| 12:00 | 12:00 [Stadtrundgang](./city-walk/) | 12:00 [Stadtrundgang](./city-walk/) | 12:00 [Stadtrundgang](./city-walk/) | -| | | 12:15 [Eisenbahnmuseum](./eisenbahnmuseum/) | | -| | | 12:30 [Rote Flora](./flora/) | | -| 13:00 | 13:00 [Retro Spiele Museum](./retro-games-museum/) | | | -| | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) | -| | 13:45 [Freies Sender Kombinat](./fsk/) | | | -| 14:00 | 14:00 [Stadtrundgang](./city-walk/) | 14:00 [Stadtrundgang](./city-walk/) | 14:00 [Stadtrundgang](./city-walk/) | -| | 14:15 [Miniatur Wunderland](./miwula/) | 14:15 [Miniatur Wunderland](./miwula/) | 14:15 [Miniatur Wunderland](./miwula/) | -| | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) | | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) | -| | | | 14:45 [Freies Sender Kombinat](./fsk/) | -| 15:00 | 15:45 [Congress Lounge](./lounge/) | | | -| 16:00 | | | | -| 17:00 | 17:15 [Miniatur Wunderland](./miwula/) | 17:15 [Miniatur Wunderland](./miwula/) | 17:15 [Miniatur Wunderland](./miwula/) | -| | | 17:30 [Alsterdampfer](./alsterdampfer/) | 17:30 [Alsterdampfer](./alsterdampfer/) | -| | 17:45 [Tour der Giganten](./tour-der-giganten/) | 17:45 [Tour der Giganten](./tour-der-giganten/) | 17:45 [Tour der Giganten](./tour-der-giganten/) | -| 18:00 | | | | -| 19:00 | 19:00 [Alsterdampfer](./alsterdampfer/) | | | +| Zeit | Tag 1 (27.12.) | Tag 2 (28.12.) | Tag 3 (29.12.) | +|-------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------| +| 10:00 | | 10:30 [Rote Flora](./flora/) {{< lang de >}} | 09:30 [Feuerwehr eHLF](./firestation/) {{< lang de >}} | +| 11:00 | - | - | - | +| 12:00 | 12:00 [Stadtrundgang](./city-walk/) {{< lang de >}} | 12:00 [Stadtrundgang](./city-walk/) {{< lang de >}} | 12:00 [Stadtrundgang](./city-walk/) {{< lang de >}} | +| | | 12:15 [Eisenbahnmuseum](./eisenbahnmuseum/) {{< lang deen >}} | | +| | | 12:30 [Rote Flora](./flora/) {{< lang deen >}} | | +| 13:00 | 13:00 [Retro Spiele Museum](./retro-games-museum/) {{< lang deen >}} | | | +| | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) {{< lang de >}} | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) {{< lang de >}} | 13:30 [Alternative Hafenrundfahrt](./alternative-harbor-cruise/) {{< lang en >}} | +| | 13:45 [Freies Sender Kombinat](./fsk/) {{< lang de >}} | | | +| 14:00 | 14:00 [Stadtrundgang](./city-walk/) {{< lang en >}} | 14:00 [Stadtrundgang](./city-walk/) {{< lang en >}} | 14:00 [Stadtrundgang](./city-walk/) {{< lang en >}} | +| | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | +| | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) {{< lang de >}} | | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) {{< lang en >}} | +| | | | 14:45 [Freies Sender Kombinat](./fsk/) {{< lang de >}} | +| 15:00 | 15:45 [Congress Lounge](./lounge/) {{< lang deen >}} | | | +| 16:00 | | | | +| 17:00 | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | +| | | 17:30 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | 17:30 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | +| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | +| 18:00 | | | | +| 19:00 | 19:00 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | | | Wir haben keine Touren an Tag 4 (30.12.). \ No newline at end of file diff --git a/content/en/39c3/_index.md b/content/en/39c3/_index.md index 916a81c..f79ae9d 100644 --- a/content/en/39c3/_index.md +++ b/content/en/39c3/_index.md @@ -13,28 +13,28 @@ cascade: These are the tours on offer for 39C3 Chaos Communication Congress: -**Day 0 (26.12.)**: [Miniatur Wunderland](./miwula/) at 12:25 and 17:15. +**Day 0 (26.12.)**: [Miniatur Wunderland](./miwula/) at 12:25 {{< lang deen >}} and 17:15 {{< lang deen >}}. -| Time | Day 1 (27.12.) | Day 2 (28.12.) | Day 3 (29.12.) | -| ----- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| 10:00 | | 10:30 [Rote Flora](./flora/) | 09:30 [Electric Firetruck](./firestation/) | -| 11:00 | - | - | - | -| 12:00 | 12:00 [City Walk](./city-walk/) | 12:00 [City Walk](./city-walk/) | 12:00 [City Walk](./city-walk/) | -| | | 12:15 [Train Museum](./eisenbahnmuseum/) | | -| | | 12:30 [Rote Flora](./flora/) | | -| 13:00 | 13:00 [Retro Games Museum](./retro-games-museum/) | | | -| | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) | -| | 13:45 [Freies Sender Kombinat Radio](./fsk/) | | | -| 14:00 | 14:00 [City Walk](./city-walk/) | 14:00 [City Walk](./city-walk/) | 14:00 [City Walk](./city-walk/) | -| | 14:15 [Miniatur Wunderland](./miwula/) | 14:15 [Miniatur Wunderland](./miwula/) | 14:15 [Miniatur Wunderland](./miwula/) | -| | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) | | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) | -| | | | 14:45 [Freies Sender Kombinat Radio](./fsk/) | -| 15:00 | 15:45 [Congress Lounge](./lounge/) | | | -| 16:00 | | | | -| 17:00 | 17:15 [Miniatur Wunderland](./miwula/) | 17:15 [Miniatur Wunderland](./miwula/) | 17:15 [Miniatur Wunderland](./miwula/) | -| | | 17:30 [Alster Steamer](./alsterdampfer/) | 17:30 [Alster Steamer](./alsterdampfer/) | -| | 17:45 [Tour der Giganten](./tour-der-giganten/) | 17:45 [Tour der Giganten](./tour-der-giganten/) | 17:45 [Tour der Giganten](./tour-der-giganten/) | -| 18:00 | | | | -| 19:00 | 19:00 [Alster Steamer](./alsterdampfer/) | | | +| Time | Day 1 (27.12.) | Day 2 (28.12.) | Day 3 (29.12.) | +|-------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------| +| 10:00 | | 10:30 [Rote Flora](./flora/) {{< lang de >}} | 09:30 [Electric Firetruck](./firestation/) {{< lang de >}} | +| 11:00 | - | - | - | +| 12:00 | 12:00 [City Walk](./city-walk/) {{< lang de >}} | 12:00 [City Walk](./city-walk/) {{< lang de >}} | 12:00 [City Walk](./city-walk/) {{< lang de >}} | +| | | 12:15 [Train Museum](./eisenbahnmuseum/) {{< lang deen >}} | | +| | | 12:30 [Rote Flora](./flora/) {{< lang deen >}} | | +| 13:00 | 13:00 [Retro Games Museum](./retro-games-museum/) {{< lang deen >}} | | | +| | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) {{< lang de >}} | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) {{< lang de >}} | 13:30 [Alternative Harbour Cruise](./alternative-harbor-cruise/) {{< lang en >}} | +| | 13:45 [Freies Sender Kombinat Radio](./fsk/) {{< lang de >}} | | | +| 14:00 | 14:00 [City Walk](./city-walk/) {{< lang en >}} | 14:00 [City Walk](./city-walk/) {{< lang en >}} | 14:00 [City Walk](./city-walk/) {{< lang en >}} | +| | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 14:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | +| | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) {{< lang de >}} | | 14:15 [Alter Elbtunnel](./alter-elbtunnel/) {{< lang en >}} | +| | | | 14:45 [Freies Sender Kombinat Radio](./fsk/) {{< lang de >}} | +| 15:00 | 15:45 [Congress Lounge](./lounge/) {{< lang deen >}} | | | +| 16:00 | | | | +| 17:00 | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | +| | | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | +| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | +| 18:00 | | | | +| 19:00 | 19:00 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | | | There are no tours on day 4 (30 December). \ No newline at end of file diff --git a/layouts/shortcodes/README.MD b/layouts/shortcodes/README.MD new file mode 100644 index 0000000..8e05dd5 --- /dev/null +++ b/layouts/shortcodes/README.MD @@ -0,0 +1,9 @@ +## Shortcode: Language badge + +Use the `lang` shortcode to mark whether a tour is in German, English or bilingual. It renders a small superscript badge next to the text, with details when hovered over or parsed by a screenreader. + +- German: `{{< lang de >}}` +- English: `{{< lang en >}}` +- Bilingual: `{{< lang deen >}}` + +For usage references check the [German](/content/de/39c3/_index.md) and [English](/content/en/39c3/_index.md) tour overview. \ No newline at end of file diff --git a/layouts/shortcodes/lang.html b/layouts/shortcodes/lang.html new file mode 100644 index 0000000..d3a1a63 --- /dev/null +++ b/layouts/shortcodes/lang.html @@ -0,0 +1,16 @@ +{{- $code := .Get 0 | lower -}} +{{- $validCodes := slice "de" "en" "deen" -}} +{{- if not (in $validCodes $code) -}} + Warning: Invalid or missing language code '{{ $code }}'. Use 'de', 'en', or 'deen'. +{{- else -}} + {{- $label := cond (eq $code "de") "DE" (cond (eq $code "en") "EN" (cond (eq $code "deen") "DE/EN" "")) -}} + {{- $title := "" -}} + {{- if eq $code "deen" -}} + {{- $title = cond (eq .Site.Language.Lang "de") "Diese Tour wird zweisprachig stattfinden (Deutsch und Englisch)" "This tour will be bilingual (German and English)" -}} + {{- else if eq $code "de" -}} + {{- $title = cond (eq .Site.Language.Lang "de") "Diese Tour wird auf Deutsch stattfinden" "This tour will be held in German" -}} + {{- else if eq $code "en" -}} + {{- $title = cond (eq .Site.Language.Lang "de") "Diese Tour wird auf Englisch stattfinden" "This tour will be held in English" -}} + {{- end -}} + {{ $label }} +{{- end -}} \ No newline at end of file From 166ac52b342083db32721eb4611fab0f7e221f8b Mon Sep 17 00:00:00 2001 From: Vincent Mahnke Date: Sat, 8 Nov 2025 17:38:37 +0100 Subject: [PATCH 2/6] chrore: Relocates README note for the language badge --- README.md | 10 ++++++++++ layouts/shortcodes/README.MD | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) delete mode 100644 layouts/shortcodes/README.MD diff --git a/README.md b/README.md index 1722bb7..f4d205f 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,13 @@ hugo server --buildFuture --buildDrafts ``` Then open http://localhost:1313 + +## Shortcode: Language badge + +Use the `lang` shortcode to mark whether a tour is in German, English or bilingual. It renders a small superscript badge next to the text, with details when hovered over or parsed by a screenreader. + +- German: `{{< lang de >}}` +- English: `{{< lang en >}}` +- Bilingual: `{{< lang deen >}}` + +For usage references check the [German](/content/de/39c3/_index.md) and [English](/content/en/39c3/_index.md) tour overview. \ No newline at end of file diff --git a/layouts/shortcodes/README.MD b/layouts/shortcodes/README.MD deleted file mode 100644 index 8e05dd5..0000000 --- a/layouts/shortcodes/README.MD +++ /dev/null @@ -1,9 +0,0 @@ -## Shortcode: Language badge - -Use the `lang` shortcode to mark whether a tour is in German, English or bilingual. It renders a small superscript badge next to the text, with details when hovered over or parsed by a screenreader. - -- German: `{{< lang de >}}` -- English: `{{< lang en >}}` -- Bilingual: `{{< lang deen >}}` - -For usage references check the [German](/content/de/39c3/_index.md) and [English](/content/en/39c3/_index.md) tour overview. \ No newline at end of file From 20389679723a43f45ad0b5c1c23651122e126b57 Mon Sep 17 00:00:00 2001 From: ViMaSter Date: Mon, 10 Nov 2025 11:43:03 +0100 Subject: [PATCH 3/6] fix: Mentions correct language for day 2 --- content/en/39c3/tour-der-giganten/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/39c3/tour-der-giganten/index.md b/content/en/39c3/tour-der-giganten/index.md index 401ffa7..40f3c31 100644 --- a/content/en/39c3/tour-der-giganten/index.md +++ b/content/en/39c3/tour-der-giganten/index.md @@ -44,7 +44,7 @@ Hansaport is Germany's largest seaport terminal for iron ore and coal. Inconspic ## Details * Tours: * Day 1 (27 December) **17:45** German - * Day 2 (28 December) **17:45** German + * Day 2 (28 December) **17:45** English * Day 3 (29 December) **17:45** German * Duration: about 3.5 hours including a short (toilet) break * Language: German From 532e0be9edd0d275cc2da1ee95e4d43d14213f28 Mon Sep 17 00:00:00 2001 From: ViMaSter Date: Mon, 10 Nov 2025 11:43:48 +0100 Subject: [PATCH 4/6] fix: Mentions correct language for day 2 of Tour der Giganten --- content/en/39c3/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/39c3/_index.md b/content/en/39c3/_index.md index f79ae9d..fd50467 100644 --- a/content/en/39c3/_index.md +++ b/content/en/39c3/_index.md @@ -33,7 +33,7 @@ These are the tours on offer for 39C3 Chaos Communication Congress: | 16:00 | | | | | 17:00 | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | | | | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | -| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | +| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang en >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | | 18:00 | | | | | 19:00 | 19:00 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | | | From d3810fbc48eef242098657bcdd67f5908fc0b9ab Mon Sep 17 00:00:00 2001 From: ViMaSter Date: Mon, 10 Nov 2025 11:44:40 +0100 Subject: [PATCH 5/6] fix: Mentions correct language for day 2 of Tour der Giganten --- content/de/39c3/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/de/39c3/_index.md b/content/de/39c3/_index.md index a8e8ebb..0da2ca4 100644 --- a/content/de/39c3/_index.md +++ b/content/de/39c3/_index.md @@ -34,7 +34,7 @@ Diese Touren bieten wir zum 39C3 Chaos Communication Congress an: | 16:00 | | | | | 17:00 | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | | | | 17:30 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | 17:30 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | -| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | +| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang en >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | | 18:00 | | | | | 19:00 | 19:00 [Alsterdampfer](./alsterdampfer/) {{< lang de >}} | | | From 95467ac0f066d4ab65447dc2a7e84ceb60f00e77 Mon Sep 17 00:00:00 2001 From: ViMaSter Date: Mon, 10 Nov 2025 11:45:46 +0100 Subject: [PATCH 6/6] fix: Renames Tour der Giganten on english overview table --- content/en/39c3/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/39c3/_index.md b/content/en/39c3/_index.md index fd50467..41b8f7f 100644 --- a/content/en/39c3/_index.md +++ b/content/en/39c3/_index.md @@ -33,7 +33,7 @@ These are the tours on offer for 39C3 Chaos Communication Congress: | 16:00 | | | | | 17:00 | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | 17:15 [Miniatur Wunderland](./miwula/) {{< lang deen >}} | | | | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | 17:30 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | -| | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang en >}} | 17:45 [Tour der Giganten](./tour-der-giganten/) {{< lang de >}} | +| | 17:45 [Tour of the Giants](./tour-der-giganten/) {{< lang de >}} | 17:45 [Tour of the Giants](./tour-der-giganten/) {{< lang en >}} | 17:45 [Tour of the Giants](./tour-der-giganten/) {{< lang de >}} | | 18:00 | | | | | 19:00 | 19:00 [Alster Steamer](./alsterdampfer/) {{< lang de >}} | | |