www.trr379.de/layouts/participate/list.html
Jennifer Krzemien eb4e53f5cf
All checks were successful
Deploy on webserver / Build site and deploy on success (push) Successful in 5m40s
Add Mannheim study site, replace Aachen with the current flyer
2026-09-21 05:59:16 +02:00

106 lines
5 KiB
HTML

{{ define "main" }}
{{/* ═════════════════════════════════════════════════════════════════
PARTICIPATE PAGE ("Ich möchte teilnehmen")
All content lives in the frontmatter of `content/participate/_index.md`
and `content/participate/_index.de.md` — one entry per study site under
`locations:`. To add a site, append an entry there; nothing in this
template needs to change.
Each location renders as a native <details> accordion. They share a
`name` attribute, so browsers that support exclusive accordions close
the other panels when one is opened; older browsers simply allow
several open at once. Each <details> carries the location `id` as its
HTML id, so /participate/#frankfurt links to a specific site.
The three UI labels (contact heading, PDF button, PDF language note)
come from `i18n/de.yaml` / `i18n/en.yaml`.
══════════════════════════════════════════════════════════════════ */}}
<link rel="stylesheet" href="/css/participate.css">
<div class="participate-page">
<h1 class="participate-title">{{ .Title }}</h1>
{{ with .Params.intro }}<p class="participate-intro">{{ . }}</p>{{ end }}
<div class="participate-sites">
{{ range .Params.locations }}
{{ $loc := . }}
<details class="site-acc" id="{{ $loc.id }}" name="participate-site">
<summary class="site-summary">
<span class="site-summary-text">
<span class="site-city">{{ $loc.city }}</span>
<span class="site-inst">{{ $loc.institution }}</span>
{{ with $loc.teaser }}<span class="site-teaser">{{ . }}</span>{{ end }}
</span>
<span class="site-chevron" aria-hidden="true"></span>
</summary>
<div class="site-body">
{{ with $loc.department }}<p class="site-dept">{{ . }}</p>{{ end }}
{{ with $loc.intro }}<p class="site-intro">{{ . }}</p>{{ end }}
{{ range $loc.blocks }}
<div class="site-block">
<h3 class="site-block-title">{{ .title }}</h3>
{{ with .text }}<p>{{ . }}</p>{{ end }}
{{ with .items }}
<ul class="site-list">
{{ range . }}<li>{{ . }}</li>{{ end }}
</ul>
{{ end }}
</div>
{{ end }}
{{ with $loc.contact }}
<div class="site-contact">
<h3 class="site-block-title">{{ i18n "participate_contact" }}</h3>
{{ with .lead }}<p class="site-contact-lead">{{ . }}</p>{{ end }}
{{ with .extra }}<p class="site-contact-lead">{{ . }}</p>{{ end }}
{{ with .address }}<p class="site-contact-line">{{ . }}</p>{{ end }}
{{/* `people` is a list because a site can name more than one
contact (Aachen has separate ones for Viersen and Düren).
Phone and e-mail are both optional — Mannheim deliberately
lists only an address. */}}
{{ range .people }}
{{ $p := . }}
<div class="site-contact-person">
{{ with $p.role }}<span class="site-contact-role">{{ . }}</span>{{ end }}
<span class="site-contact-name">{{ $p.name }}</span>
{{ with $p.phone }}
<a class="site-contact-link" href="tel:{{ $p.phone_link | default . }}">{{ . }}</a>
{{ end }}
{{ with $p.email }}
<a class="site-contact-link" href="mailto:{{ . }}">{{ . }}</a>
{{ end }}
</div>
{{ end }}
</div>
{{ end }}
{{ with $loc.pdf }}
<div class="site-actions">
<a class="site-pdf-btn" href="{{ . }}" download>
<svg class="site-pdf-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
<polyline points="7 10 12 15 17 10" />
<line x1="12" y1="15" x2="12" y2="3" />
</svg>
{{ i18n "participate_download" }}
</a>
</div>
{{ end }}
</div>
</details>
{{ end }}
</div>
{{ with .Params.pdf_note }}<p class="participate-note">{{ . }}</p>{{ end }}
{{ with .Content }}<div class="participate-outro">{{ . }}</div>{{ end }}
</div>
{{ end }}