Adds language badges to tour overview table #39
4 changed files with 70 additions and 44 deletions
10
README.md
10
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.
|
||||
|
|
@ -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.).
|
||||
|
|
@ -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).
|
||||
16
layouts/shortcodes/lang.html
Normal file
16
layouts/shortcodes/lang.html
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{{- $code := .Get 0 | lower -}}
|
||||
{{- $validCodes := slice "de" "en" "deen" -}}
|
||||
{{- if not (in $validCodes $code) -}}
|
||||
<span style="color: red; font-weight: bold;">Warning: Invalid or missing language code '{{ $code }}'. Use 'de', 'en', or 'deen'.</span>
|
||||
{{- 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 -}}
|
||||
<abbr style="font-size: .65em; vertical-align: super;" title="{{ $title }}">{{ $label }}</abbr>
|
||||
|
|
||||
{{- end -}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue
Initially used classes and added them to
/assets/sass/_custom.scss, but this way logic and styling of the badges are limited to one file. Happy to change this, if requested.