cleanup templates:

- move out shared functions to shared templates
  - remove useless classes
  - simplify
  - various cleanups & enhancements
This commit is contained in:
Denys Konovalov 2023-07-24 12:02:51 +02:00
parent f66ed70c82
commit 18a823cb6a
37 changed files with 298 additions and 393 deletions

@ -414,6 +414,12 @@ details[open] summary {
color: var(--gcg-color-primary); color: var(--gcg-color-primary);
} }
.tag-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.tag-list a { .tag-list a {
display: block; display: block;
padding: 5px 10px; padding: 5px 10px;
@ -976,3 +982,15 @@ link:focus,
padding-right: 10%; padding-right: 10%;
} }
} }
#map {
height: 50vh;
}
.object-cover {
object-fit: cover;
}
.min-w-0 {
min-width: 0;
}

@ -3,7 +3,7 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 order-2 order-lg-1"> <div class="col-lg-8">
<div class="row"> <div class="row">
{{ $paginator := .Paginate ( where .Data.Pages "Type" "post") }} {{ $paginator := .Paginate ( where .Data.Pages "Type" "post") }}
{{ range $paginator.Pages }} {{ range $paginator.Pages }}

@ -3,46 +3,31 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 order-2 order-lg-1"> <div class="col-lg-8">
<div class="row"> <img src="{{ .Params.image | relURL }}" alt="{{ .Title }}" class="img-fluid w-100 mb-4">
<div class="col-12 mb-4"> <div class="d-flex flex-wrap gap-2 justify-content-between">
<img src="{{ .Params.image | relURL }}" alt="{{ .Title }}" class="img-fluid w-100"> <div class="text-body-secondary">
<span class="fw-bold me-1">Geschrieben von:</span>
{{ partial "authors" (dict "Site" .Site "author" .Params.author )}}
</div> </div>
<div class="col-12"> <div class="text-body-secondary">
<div class="row mb-3"> <span class="fw-bold me-1">Datum:</span>
<div class="col-6 mb-md-0 text-white text-body-tertiary"> {{ time.Format "02. Jan 2006" .PublishDate }}
<span class="fw-bold me-1">Geschrieben von:</span>
{{ range $index, $elements := where (where .Site.RegularPages "Type" "author") "File.BaseFileName" "in" .Params.author }}
{{ if ne $index 0 }}, {{ end }}
{{ if .Params.simplified }}
{{ .Title }}
{{ else }}
<a href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}
</div>
<div class="col-6 mb-3 mb-md-0 text-body-tertiary">
<span class="fw-bold me-1">Datum:</span>
{{ time.Format "02. Jan 2006" .PublishDate }}
</div>
</div> </div>
<div class="row"> <div class="text-body-secondary">
<div class="col-12 mb-md-0 text-body-tertiary">
<span class="fw-bold me-1">Kategorien:</span> <span class="fw-bold me-1">Kategorien:</span>
{{ range $index, $elements := .Params.categories }} {{ range $index, $elements := .Params.categories }}
{{ if ne $index 0 }}, {{ end }} {{ if ne $index 0 }}, {{ end }}
<a href="{{ `categories/` | relURL }}{{ . | urlize | lower }}">{{ . | title }}</a> <a href="{{ `categories/` | relURL }}{{ . | urlize | lower }}">{{ . | title }}</a>
{{ end }} {{ end }}
</div>
</div>
</div>
<div class="col-12 my-4">
<div class="border-bottom"></div>
</div>
<div class="col-12 mb-5 content text-justify">
{{ .Content }}
</div> </div>
</div> </div>
<div class="my-4">
<div class="border-bottom"></div>
</div>
<div class="mb-4 content text-justify">
{{ .Content }}
</div>
</div> </div>
{{ partial "blog-sidebar.html" . }} {{ partial "blog-sidebar.html" . }}
</div> </div>

@ -4,9 +4,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
{{ range .Pages }} {{ range .Pages }}
<div class="col-lg-4 col-sm-6"> {{ partial "card-btn" . }}
{{ partial "card-btn" . }}
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>

@ -2,13 +2,9 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <img src="{{ .Params.image | relURL }}" class="img-fluid w-100 mb-4">
<div class="col-12 mb-4"> <div class="content">
<img src="{{ .Params.image | relURL }}" class="img-fluid w-100"> {{ .Content }}
</div>
<div class="col-12 content">
{{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>

@ -2,13 +2,11 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> {{ with .Params.image }}
<div class="col-12"> <img class="img-fluid w-100 mb-4" src="{{ . | relURL }}" alt="Foto der Schule">
{{ with .Params.image }} {{ end }}
<img class="img-fluid w-100 mb-4" src="{{ . | relURL }}" alt="about image"> <div class="content text-justify">
{{ end }} {{ .Content }}
{{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>
@ -32,6 +30,6 @@
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ partial "info.html" . }} {{ partial "info" . }}
{{ end }} {{ end }}

@ -2,91 +2,86 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <form
<div class="col-lg-12">{{ .Content }}</div> action="https://php.cantorgymnasium.de/formtools/process.php"
<div class="col-lg-8 mb-4 mb-lg-0"> method="post"
<form >
action="https://php.cantorgymnasium.de/formtools/process.php" <input type="hidden" name="form_tools_form_id" value="7" />
method="post" <div hidden>
> <input type="text" name="bad_email" value="" />
<input type="hidden" name="form_tools_form_id" value="7" />
<div hidden>
<input type="text" name="bad_email" value="" />
</div>
<div class="input-group">
<input
type="text"
class="form-control mb-3"
id="surname"
name="surname"
placeholder="Name"
required
/>
<input
type="text"
class="form-control mb-3"
id="name"
name="name"
placeholder="Vorname"
required
/>
</div>
<input
type="text"
class="form-control mb-3"
id="year"
name="year"
placeholder="Abiturjahrgang"
required
/>
<input
type="email"
class="form-control mb-3"
id="mail"
name="mail"
placeholder="E-Mail-Adresse"
required
/>
<textarea
name="message"
id="message"
class="form-control mb-3"
placeholder="Nachricht/Sonstiges"
></textarea>
<div class="input-group mb-3">
<div class="input-group-text">
<input
type="checkbox"
class="form-check-input"
id="accept"
name="accept"
required
/>
</div>
<p class="form-control mb-0">
Ich willige hiermit ein, dass meine E-Mail-Adresse zur
Kontaktaufnahme eingesetzt wird.
</p>
</div>
<div class="input-group mb-3">
<div class="input-group-text">
<input
type="checkbox"
class="form-check-input"
id="public_email"
name="public_email"
/>
</div>
<p class="form-control mb-0">
Meine E-Mail-Adresse darf für andere Adressaten sichtbar sein.
</p>
</div>
<button type="submit" value="send" class="btn btn-primary">
Speichern
</button>
</form>
</div> </div>
</div> <div class="input-group">
<input
type="text"
class="form-control mb-3"
id="surname"
name="surname"
placeholder="Name"
required
/>
<input
type="text"
class="form-control mb-3"
id="name"
name="name"
placeholder="Vorname"
required
/>
</div>
<input
type="text"
class="form-control mb-3"
id="year"
name="year"
placeholder="Abiturjahrgang"
required
/>
<input
type="email"
class="form-control mb-3"
id="mail"
name="mail"
placeholder="E-Mail-Adresse"
required
/>
<textarea
name="message"
id="message"
class="form-control mb-3"
placeholder="Nachricht/Sonstiges"
></textarea>
<div class="input-group mb-3">
<div class="input-group-text">
<input
type="checkbox"
class="form-check-input"
id="accept"
name="accept"
required
/>
</div>
<p class="form-control mb-0">
Ich willige hiermit ein, dass meine E-Mail-Adresse zur
Kontaktaufnahme eingesetzt wird.
</p>
</div>
<div class="input-group mb-3">
<div class="input-group-text">
<input
type="checkbox"
class="form-check-input"
id="public_email"
name="public_email"
/>
</div>
<p class="form-control mb-0">
Meine E-Mail-Adresse darf für andere Adressaten sichtbar sein.
</p>
</div>
<button type="submit" value="send" class="btn btn-primary">
Speichern
</button>
</form>
</div> </div>
</section> </section>

@ -2,10 +2,8 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row mb-4"> <div class="content">
<div class="col-md-6 content"> {{ .Content }}
{{ .Content }}
</div>
</div> </div>
<div class="row"> <div class="row">
{{ range .Params.elements }} {{ range .Params.elements }}

@ -2,36 +2,29 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> {{ range .Pages }}
<div class="col-12"> <div class="card mb-4">
<div class="container"> <div class="d-flex">
{{ range .Pages }} <div class="flex-shrink-0">
<div class="card mb-4"> {{ if .Params.image }}
<div class="row g-0"> <img class="rounded-circle m-3 object-cover" src="{{.Params.image | relURL }}" width="128px" height="128px">
<div class="col-md-2 col-5"> {{ else if .Params.email }}
{{ if .Params.image }} <img class="rounded-circle img-fluid m-3"
<img class="rounded img-fluid w-100" src="{{.Params.image | relURL }}" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=128&pg&d=identicon">
style="height: 160px;object-fit: cover;">
{{ else if .Params.email }}
<img class="rounded img-fluid w-100"
src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=160&pg&d=identicon" style="height: 160px;object-fit: cover;">
{{ end }}
</div>
<div class="col-md-10 col-7">
<div class="card-body text-end">
<h5 class="card-title text-start">{{ .Title }}</h5>
<p class="card-text text-truncate text-start">{{ .Summary }}</p>
{{ if not .Params.simplified }}
<a href="{{ .Permalink }}" class="btn btn-primary">Mehr anzeigen</a>
{{ end }}
</div>
</div>
</div>
</div>
{{ end }} {{ end }}
</div> </div>
<div class="flex-grow">
<div class="card-body">
<h5 class="card-title">{{ .Title }}</h5>
<p class="card-text">{{ partial "summary" .Content }}</p>
{{ if not .Params.simplified }}
<a href="{{ .Permalink }}" class="btn btn-primary">Mehr anzeigen</a>
{{ end }}
</div>
</div>
</div> </div>
</div> </div>
{{ end }}
</div> </div>
</section> </section>

@ -2,43 +2,31 @@
<section class="section bg-light"> <section class="section bg-light">
<div class="container"> <div class="container">
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="text-center"> <div class="text-center">
<figure> {{ if .Params.image }}
{{ if .Params.image }} <img class="rounded-circle img-fluid mb-4" src="{{.Params.Image | relURL }}" width="128px" height="128px">
<img class="rounded-circle img-fluid mb-4" src="{{.Params.Image | relURL }}" width="128px">
{{ else if .Params.email}} {{ else if .Params.email}}
<img class="rounded-circle img-fluid mb-4" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=128&pg&d=identicon"> <img class="rounded-circle img-fluid mb-4" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=128&pg&d=identicon">
{{ end }} {{ end }}
<figcaption> <h4 class="fw-bold">{{ .Title }}</h4>
<h4 class="fw-bold">{{ .Title }}</h4>
</figcaption>
</figure>
<hr> <hr>
{{ .Content }} {{ .Content }}
<hr> <hr>
<ul class="list-inline"> {{ with .Params.email }}
{{ with .Params.email }} <a href="mailto:{{ . }}"><i class="mdi mdi-at"></i></a>
<li class="list-inline-item"><a href="mailto:{{ . }}"><i class="mdi mdi-at"></i></a></li> {{ end }}
{{ end }}
</ul>
</div> </div>
</div>
</div>
</div> </div>
</section> </section>
<section class="section"> <section class="section pt-0 bg-light">
<div class="container"> <div class="container">
<div class="row"> <div class="title text-center">
<div class="col-lg-12">
<div class="title text-center">
<h2 class="mb-4">Geschrieben von {{ .Title }}</h2> <h2 class="mb-4">Geschrieben von {{ .Title }}</h2>
</div> </div>
</div> <div class="row">
{{ range where .Site.RegularPages "Params.author" "intersect" (slice .File.BaseFileName) }} {{ range where .Site.RegularPages "Params.author" "intersect" (slice .File.BaseFileName) }}
<div class="col-lg-4 col-sm-6 mb-4 mb-lg-0 d-flex align-items-stretch"> <div class="col-lg-4 col-sm-6 d-flex align-items-stretch">
{{ partial "card" . }} {{ partial "card" . }}
</div> </div>
{{ end }} {{ end }}

@ -3,14 +3,9 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
{{ .Content }} {{ range .Pages }}
</div> {{ partial "card-btn" . }}
<div class="row"> {{ end }}
{{ range .Pages }}
<div class="col-lg-4 col-sm-6">
{{ partial "card-btn" . }}
</div>
{{ end }}
</div> </div>
</div> </div>
</section> </section>

@ -1,22 +1,14 @@
{{ define "main" }} {{ define "main" }}
{{ partial "header-cl-url" (dict "Params" .Params "Content" .Content) }} {{ partial "header-cl-url" . }}
<section class="section pt-0"> <section class="section pt-0">
<div class="container"> <div class="container">
<div class="row"> <h2 class="mb-4">Weitere Begabtenförderungsangebote</h2>
<div class="col-12">
<h2 class="mb-4">Weitere Begabtenförderungsangebote</h2>
</div>
</div>
<div class="row" data-pagefind-ignore="all"> <div class="row" data-pagefind-ignore="all">
{{ $related := (where .Site.RegularPages "Type" "begabte") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}} {{ range partial "related" . }}
{{ range first 3 $related }} {{ partial "card-btn" . }}
<div class="col-lg-4 col-sm-6"> {{ end }}
{{ partial "card-btn" . }}
</div>
{{ end }}
</div> </div>
</div> </div>
</section> </section>

@ -2,21 +2,13 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="content">
<div class="col-12"> {{ .Content }}
<div class="content">
{{ .Content }}
</div>
</div>
</div> </div>
</div>
<div class="container">
<div class="row"> <div class="row">
{{ range sort .Data.Pages ".Params.index" }} {{ range sort .Data.Pages ".Params.index" }}
<div class="col-lg-4 col-sm-6 d-flex align-items-stretch"> {{ partial "card-btn" . }}
{{ partial "card-btn" . }} {{ end }}
</div>
{{ end }}
</div> </div>
</div> </div>
</section> </section>

@ -2,13 +2,9 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <img src="{{ .Params.Image | relURL }}" class="img-fluid w-100 mb-4">
<div class="col-12 mb-4"> <div class="content text-justify">
<img src="{{ .Params.Image | relURL }}" class="img-fluid w-100"> {{ .Content }}
</div>
<div class="col-12 content">
{{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>

@ -4,11 +4,11 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
{{ range .Pages }} {{ range .Pages }}
<div class="col-lg-3 col-sm-4 col-6"> <div class="col-lg-3 col-sm-4 col-6 d-flex align-items-stretch">
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="card border-primary rounded-0 hover-shadow mb-4">
<a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}" alt="{{ .Title }}"></a> <a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}" alt="{{ .Title }}"></a>
<div class="card-body"> <div class="card-body d-flex flex-column">
<h4 class="card-title"><a href="{{ .Permalink }}">{{ .Title }}</a></h4> <h4 class="card-title mt-auto"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<p class="card-text">{{ .Params.name }}</p> <p class="card-text">{{ .Params.name }}</p>
</div> </div>
</div> </div>

@ -3,14 +3,14 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-5 mb-5"> <div class="col-sm-5 mb-4">
<img class="img-fluid w-75" src="{{ .Params.Image | relURL }}" alt="{{ .Title }}"> <img class="img-fluid w-100" src="{{ .Params.Image | relURL }}" alt="{{ .Title }}">
</div> </div>
<div class="col-md-7 mb-5"> <div class="col-sm-7">
<h3>{{ .Params.Name }}</h3> <h3>{{ .Params.Name }}</h3>
<h6 class="text-body-secondary">{{ .Title }}</h6> <h6 class="text-body-secondary">{{ .Title }}</h6>
<div class="content"> <div class="content">
{{ .Content | markdownify }} {{ .Content }}
</div> </div>
</div> </div>
</div> </div>

@ -2,21 +2,15 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> {{ range .Data.Pages }}
<div class="col-12"> <div class="card flex-row border-primary hover-shadow p-4 mb-2 align-items-center flex-wrap gap-3">
<div class="container"> <div class="flex-grow-1">
{{ range .Data.Pages }} <a href="{{ .Permalink }}" class="h4 mb-3 card-title">{{ .Title }}</a>
<div class="card d-md-table w-100 border-primary hover-shadow p-3 mb-2"> <p class="mb-0">{{ partial "summary" .Content }}</p>
<div class="d-md-table-cell px-4 align-middle mb-4 mb-md-0">
<a href="{{ .Permalink }}" class="h4 mb-3 d-block card-title">{{ .Title }}</a>
<p class="mb-0">{{ .Summary | truncate 100 }}</p>
</div>
<div class="d-md-table-cell text-end pe-0 pe-md-4" data-pagefind-ignore><a href="{{ .Permalink }}" class="btn btn-primary">Mehr anzeigen</a></div>
</div>
{{ end }}
</div> </div>
<div class="flex-shrink-0" data-pagefind-ignore><a href="{{ .Permalink }}" class="btn btn-primary">Mehr anzeigen</a></div>
</div> </div>
</div> {{ end }}
</div> </div>
</section> </section>

@ -2,18 +2,12 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <h2 class="mb-4">{{ .Title }}</h2>
<div class="col-12"> <div class="content text-justify">
<h2 class="mb-4">{{ .Title }}</h2> {{ range .Params.files }}
</div> {{ partial "download" . }}
</div> {{ end }}
<div class="row"> {{ .Content }}
<div class="col-12 content">
{{ range .Params.files }}
{{ partial "download" . }}
{{ end }}
{{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>

@ -3,13 +3,13 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
{{ partial "filter-controls" . }} {{ partial "filter-controls" . }}
<div class="row filtr-container"> <div class="filtr-container">
{{ range .Data.Pages }} {{ range .Data.Pages }}
<div data-category="{{ .Params.category | urlize }}" class="col-lg-4 col-sm-6 mb-5 filtr-item"> <div data-category="{{ .Params.category | urlize }}" class="col-lg-4 col-sm-6 filtr-item">
{{ partial "ganztag" . }} {{ partial "ganztag" . }}
</div> </div>
{{ end }} {{ end }}
</div> </div>
</div> </div>
</section> </section>

@ -69,8 +69,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
{{ $related := (where .Site.RegularPages "Type" "ganztagsangebote") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}} {{ range partial "related" . }}
{{ range first 3 $related }}
<div class="col-lg-4 col-sm-6"> <div class="col-lg-4 col-sm-6">
{{ partial "ganztag" . }} {{ partial "ganztag" . }}
</div> </div>

@ -126,18 +126,11 @@
<div class="row mb-2"> <div class="row mb-2">
<div class="col-12"> <div class="col-12">
<i class="mdi mdi-fountain-pen-tip me-2"></i> <i class="mdi mdi-fountain-pen-tip me-2"></i>
{{ range $index, $elements := where (where $.Site.RegularPages "Type" "author") "File.BaseFileName" "in" .author }} {{ partial "authors" (dict "Site" $.Site "author" .author)}}
{{ if ne $index 0 }}, {{ end }}
{{ if .Params.simplified }}
{{ .Title }}
{{ else }}
<a href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}
</div> </div>
</div> </div>
<h4 class="card-title text-truncate" onclick="$('#{{ md5 .title }}').modal('show');">{{ .title }}</h4> <h4 class="card-title text-truncate" onclick="$('#{{ md5 .title }}').modal('show');">{{ .title }}</h4>
<p class="card-text" onclick="$('#{{ md5 .title }}').modal('show');">{{ .content | markdownify | plainify | truncate 100 }}</p> <p class="card-text" onclick="$('#{{ md5 .title }}').modal('show');">{{ partial "summary" .content }}</p>
<button type="button" class="btn btn-primary btn-sm mt-auto align-self-start" onclick="$('#{{ md5 .title }}').modal('show');">Mehr anzeigen</button> <button type="button" class="btn btn-primary btn-sm mt-auto align-self-start" onclick="$('#{{ md5 .title }}').modal('show');">Mehr anzeigen</button>
</div> </div>
</div> </div>

@ -51,22 +51,24 @@ crossorigin=""/>
<section class="section bg-body-tertiary"> <section class="section bg-body-tertiary">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div id="map" class="card col-12" style="height: 50vh;"> <div class="col-12">
<script> <div id="map" class="card">
var map = L.map('map', { <script>
scrollWheelZoom: false var map = L.map('map', {
}).setView([51.473361, 11.965619], 100); scrollWheelZoom: false
}).setView([51.473361, 11.965619], 100);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map); }).addTo(map);
var marker = L.marker([51.473361, 11.965619]).addTo(map); var marker = L.marker([51.473361, 11.965619]).addTo(map);
map.on('click', (e) => { map.on('click', (e) => {
marker.bindPopup('Georg-Cantor-Gymnasium<br>Torstraße 13<br>06110 Halle (Saale)<br><b><a href="https://www.qwant.com/maps/place/osm:way:54033279@Georg-Cantor-Gymnasium">Route</a>').openPopup(); marker.bindPopup('Georg-Cantor-Gymnasium<br>Torstraße 13<br>06110 Halle (Saale)<br><b><a href="https://www.qwant.com/maps/place/osm:way:54033279@Georg-Cantor-Gymnasium">Route</a>').openPopup();
}); });
</script> </script>
</div>
</div> </div>
</div> </div>
</div> </div>

@ -0,0 +1,8 @@
{{ range $index, $elements := where (where .Site.RegularPages "Type" "author") "File.BaseFileName" "in" .author }}
{{ if ne $index 0 }}, {{ end }}
{{ if .Params.simplified }}
{{ .Title }}
{{ else }}
<a href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}

@ -1,14 +1,14 @@
<aside class="col-lg-4 order-4 order-lg-2" data-pagefind-ignore="all"> <aside class="col-lg-4 mt-4 mt-lg-0" data-pagefind-ignore="all">
<div class="bg-white mb-4"> <div class="bg-white mb-4">
<h4 class="mb-4">Kategorien</h4> <h4 class="mb-4">Kategorien</h4>
{{ $transliterations := .Site.Data.transliterations.transliterations }} {{ $transliterations := .Site.Data.transliterations.transliterations }}
{{- if isset .Site.Taxonomies "categories" }} {{- if isset .Site.Taxonomies "categories" }}
{{- if not (eq (len .Site.Taxonomies.categories) 0) }} {{- if not (eq (len .Site.Taxonomies.categories) 0) }}
<ul class="list-inline tag-list"> <div class="tag-list">
{{- range $name, $items := .Site.Taxonomies.categories }} {{- range $name, $items := .Site.Taxonomies.categories }}
<li class="list-inline-item mb-2"><a href="{{ `categories/` | relURL }}{{ $name | urlize | lower }}">{{ if (index $transliterations $name) }}{{ index $transliterations $name }}{{ else }}{{ $name | title }}{{end}}</a></li> <a href="{{ `categories/` | relURL }}{{ $name | urlize | lower }}">{{ if (index $transliterations $name) }}{{ index $transliterations $name }}{{ else }}{{ $name | title }}{{end}}</a>
{{- end }} {{- end }}
</ul> </div>
{{- end }} {{- end }}
{{- end }} {{- end }}
</div> </div>
@ -16,11 +16,11 @@
<h4 class="mb-4">Tags</h4> <h4 class="mb-4">Tags</h4>
{{- if isset .Site.Taxonomies "tags" }} {{- if isset .Site.Taxonomies "tags" }}
{{- if not (eq (len .Site.Taxonomies.tags) 0) }} {{- if not (eq (len .Site.Taxonomies.tags) 0) }}
<ul class="list-inline tag-list"> <div class="tag-list">
{{- range $name, $items := .Site.Taxonomies.tags }} {{- range $name, $items := .Site.Taxonomies.tags }}
<li class="list-inline-item mb-2"><a href="{{ `tags/` | relURL }}{{ $name | urlize | lower }}">{{ $name }}</a></li> <a href="{{ `tags/` | relURL }}{{ $name | urlize | lower }}">{{ $name }}</a>
{{- end }} {{- end }}
</ul> </div>
{{- end }} {{- end }}
{{- end }} {{- end }}
</div> </div>
@ -31,7 +31,7 @@
<a href="{{ .Permalink }}"><img class="me-3 post-thumb-sm" src="{{ .Params.Image | absURL }}"></a> <a href="{{ .Permalink }}"><img class="me-3 post-thumb-sm" src="{{ .Params.Image | absURL }}"></a>
<div class="flex-grow-1"> <div class="flex-grow-1">
<a href="{{ .Permalink }}"> <a href="{{ .Permalink }}">
<h5 class="mt-0">{{ .Title }}</h5> <h5>{{ .Title }}</h5>
</a> </a>
{{ time.Format "02. Jan 2006" .PublishDate }} {{ time.Format "02. Jan 2006" .PublishDate }}
</div> </div>

@ -1,7 +1,9 @@
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="col-lg-4 col-sm-6">
<div class="card-body"> <div class="card border-primary rounded-0 hover-shadow mb-4">
<h4 class="card-title text-truncate"><a href="{{ .link }}">{{ .title }}</a></h4> <div class="card-body">
<a href="{{ .link }}" class="btn btn-primary btn-sm" data-pagefind-ignore>Mehr anzeigen</a> <h4 class="card-title text-truncate"><a href="{{ .link }}">{{ .title }}</a></h4>
</div> <a href="{{ .link }}" class="btn btn-primary btn-sm" data-pagefind-ignore>Mehr anzeigen</a>
</div>
</div> </div>
</div>

@ -1,8 +1,10 @@
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="col-lg-4 col-sm-6 d-flex align-items-stretch">
<a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}" <div class="card border-primary rounded-0 hover-shadow mb-4">
alt="{{ .Title }}"></a> <a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}"
<div class="card-body d-flex flex-column"> alt="{{ .Title }}"></a>
<h4 class="card-title text-truncate mt-auto"><a href="{{ .Permalink }}">{{ .Title }}</a></h4> <div class="card-body d-flex flex-column">
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm text-uppercase align-self-start" data-pagefind-ignore>Mehr anzeigen</a> <h4 class="card-title text-truncate mt-auto"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm text-uppercase align-self-start" data-pagefind-ignore>Mehr anzeigen</a>
</div>
</div> </div>
</div> </div>

@ -1,9 +0,0 @@
<div class="card border-primary rounded-0 hover-shadow mb-4">
<div class="container fb-tile-color" style="background-color:{{ .bg_color }};">
<i class="{{ .icon }} fb-tile-icon" style="color: {{ .font_color }}"></i>
</div>
<div class="card-body">
<h4 class="card-title text-truncate">{{ .title }}</h4>
<button type="button" class="btn btn-primary btn-sm" onclick="$('#{{ md5 .title }}').modal('show');">Mehr anzeigen</button>
</div>
</div>

@ -1,22 +1,15 @@
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="card border-primary rounded-0 hover-shadow mb-4">
<a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}" alt="{{ .Title }}"></a> <a href="{{ .Permalink }}"><img class="card-img-top rounded-0" src="{{ .Params.image | relURL }}" alt="{{ .Title }}"></a>
<div class="card-body d-flex flex-column"> <div class="card-body d-flex flex-column">
<div class="row mb-2"> <div class="d-flex justify-content-between gap-1 flex-wrap mb-2">
<div class="col-6"><i class="mdi mdi-calendar-today me-2"></i>{{ time.Format "02. Jan 2006" .PublishDate }}</div> <span><i class="mdi mdi-calendar-today me-2"></i>{{ time.Format "02. Jan 2006" .PublishDate }}</span>
<div class="col-6 text-truncate"> <span class="text-truncate">
<i class="mdi mdi-fountain-pen-tip me-2"></i> <i class="mdi mdi-fountain-pen-tip me-2"></i>
{{ range $index, $elements := where (where .Site.RegularPages "Type" "author") "File.BaseFileName" "in" .Params.author }} {{ partial "authors" (dict "Site" .Site "author" .Params.author )}}
{{ if ne $index 0 }}, {{ end }} </span>
{{ if .Params.simplified }}
{{ .Title }}
{{ else }}
<a href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}
</div>
</div> </div>
<h4 class="card-title text-truncate"><a href="{{ .Permalink }}">{{ .Title }}</a></h4> <h4 class="card-title text-truncate"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<p class="card-text">{{ .Summary | truncate 100 }}</p> <p class="card-text">{{ partial "summary" .Summary }}</p>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm mt-auto align-self-start" data-pagefind-ignore>Mehr anzeigen</a> <a href="{{ .Permalink }}" class="btn btn-primary btn-sm mt-auto align-self-start" data-pagefind-ignore>Mehr anzeigen</a>
</div> </div>
</div> </div>

@ -0,0 +1,2 @@
{{ $related := (where .Site.RegularPages "Type" .Type) | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3 }}
{{ return $related }}

@ -0,0 +1 @@
{{ . | markdownify | plainify | truncate 100 }}

@ -0,0 +1,27 @@
<section class="section superhaufen">
<div class="container">
<div class="row">
<div class="col-12 content">
{{ .Content }}
</div>
</div>
</div>
<div class="container">
<div class="row">
{{ range .Params.tiles }}
{{ partial "modal" . }}
<div class="col-lg-4 col-sm-6">
<div class="card border-primary rounded-0 hover-shadow mb-4">
<div class="container fb-tile-color" style="background-color:{{ .bg_color }};">
<i class="{{ .icon }} fb-tile-icon" style="color: {{ .font_color }}"></i>
</div>
<div class="card-body">
<h4 class="card-title text-truncate">{{ .title }}</h4>
<button type="button" class="btn btn-primary btn-sm" onclick="$('#{{ md5 .title }}').modal('show');" data-pagefind-ignore>Mehr anzeigen</button>
</div>
</div>
</div>
{{ end }}
</div>
</div>
</section>

@ -4,9 +4,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
{{ range .Pages }} {{ range .Pages }}
<div class="col-lg-4 col-sm-6"> {{ partial "card-btn-ni" (dict "title" .Title "link" .Permalink) }}
{{ partial "card-btn-ni" (dict "title" .Title "link" .Permalink) }}
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>

@ -1,23 +1,5 @@
{{ define "main" }} {{ define "main" }}
<section class="section"> {{ partial "tile-modals" . }}
<div class="container">
<div class="row">
<div class="col-12 mb-4 content">
{{ .Content }}
</div>
</div>
</div>
<div class="container">
<div class="row">
{{ range .Params.tiles }}
{{ partial "modal" . }}
<div class="col-lg-4 col-sm-6">
{{ partial "card-icon" . }}
</div>
{{ end }}
</div>
</div>
</section>
{{ end }} {{ end }}

@ -27,9 +27,7 @@
<h2 class="mb-4">Informationsseiten</h2> <h2 class="mb-4">Informationsseiten</h2>
<div class="row"> <div class="row">
{{ range .Params.links }} {{ range .Params.links }}
<div class="col-lg-4 col-sm-6"> {{ partial "card-btn-ni" . }}
{{ partial "card-btn-ni" . }}
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>
@ -37,9 +35,7 @@
<h2 class="mb-4">Chronik</h2> <h2 class="mb-4">Chronik</h2>
<div class="row"> <div class="row">
{{ range (where .Data.Pages "Params.type" "schulchronik") }} {{ range (where .Data.Pages "Params.type" "schulchronik") }}
<div class="col-lg-4 col-sm-6">
{{ partial "card-btn-ni" (dict "title" .Title "link" .Permalink) }} {{ partial "card-btn-ni" (dict "title" .Title "link" .Permalink) }}
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>

@ -4,38 +4,34 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-12 mb-4"> <div class="col-12 mb-4">
{{ if or .Params.Cantorpreisträger (where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten") }} {{ if or .Params.cantorpreisträger (where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten") }}
<div class="col-12"> <div class="col-12">
<div class="card-group"> <div class="card-group">
{{ range where (where .Site.RegularPages "Title" .Params.Title ) "Type" "=" "cantorpreis" }} {{ range where (where .Site.RegularPages "Title" .Params.Title ) "Type" "=" "cantorpreis" }}
<div class="card"> <div class="card d-flex flex-row flex-wrap">
<div class="row"> <div class="flex-shrink-0">
<div class="col-md-3 col-4"> <a href="{{ .Permalink }}"><img src="{{ .Params.Image | relURL }}" class="rounded-circle m-3 object-cover" height="128px" width="128px"></a>
<a href="{{ .Permalink }}"><img src="{{ .Params.Image | relURL }}" class="img-fluid rounded w-100" style="height:150px; object-fit: cover;"></a>
</div> </div>
<div class="col-md-9 col-8 card-body"> <div class="flex-grow card-body min-w-0">
<a href="/cantorpreis"><h3 class="card-title">Cantorpreisträger:in</h3></a> <a href="/cantorpreis"><h3 class="card-title">Cantorpreisträger:in</h3></a>
<a href="{{ .Permalink }}"><p class="h4 card-text">{{ .Params.name }}</p></a> <a href="{{ .Permalink }}"><p class="h4 card-text">{{ .Params.name }}</p></a>
</div> </div>
</div>
</div> </div>
{{ end }} {{ end }}
{{ range where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten" }} {{ range where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten" }}
<div class="card pe-0"> <div class="card d-flex flex-row flex-wrap-reverse">
<div class="row"> <div class="flex-grow card-body min-w-0">
<div class="col-7 card-body ps-4">
<a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a> <a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a>
{{ $abiturdurchschnitte := getJSON "static/data/abiturdurchschnitte.json" }} {{ $abiturdurchschnitte := getJSON "static/data/abiturdurchschnitte.json" }}
{{ range $abiturdurchschnitte.abiturdurchschnitte }} {{ range $abiturdurchschnitte.abiturdurchschnitte }}
{{ if eq (string (index . "jahr")) "2008" }}<a href="/chronikseiten/abiturdurchschnitte"><p class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</p></a>{{ end }} {{ if eq (string (index . "jahr")) "2008" }}<a href="/chronikseiten/abiturdurchschnitte"><p class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</p></a>{{ end }}
{{ end }} {{ end }}
</div> </div>
<div class="col-5"> <div class="">
<a href="{{ .Permalink }}"> <a href="{{ .Permalink }}">
<img src="{{ .Params.Image | relURL }}" class="img-fluid rounded align-self-end w-100" style="height: 150px;object-fit: cover;"> <img src="{{ .Params.Image | relURL }}" class="rounded-circle object-cover m-3" width="128px" height="128px">
</a> </a>
</div> </div>
</div>
</div> </div>
{{ end }} {{ end }}
</div> </div>

@ -1,23 +1,5 @@
{{ define "main" }} {{ define "main" }}
<section class="section"> {{ partial "tile-modals" . }}
<div class="container">
<div class="row">
<div class="col-12 content">
{{ .Content }}
</div>
</div>
</div>
<div class="container">
<div class="row">
{{ range .Params.tiles }}
{{ partial "modal" . }}
<div class="col-lg-4 col-sm-6">
{{ partial "card-icon" . }}
</div>
{{ end }}
</div>
</div>
</section>
{{ end }} {{ end }}

@ -1,6 +1,6 @@
{{ define "main" }} {{ define "main" }}
{{ partial "header-cl-url" (dict "Params" .Params "Content" .Content) }} {{ partial "header-cl-url" . }}
<section class="section pt-0"> <section class="section pt-0">
<div class="container"> <div class="container">
@ -10,8 +10,7 @@
</div> </div>
</div> </div>
<div class="row" data-pagefind-ignore="all"> <div class="row" data-pagefind-ignore="all">
{{ $related := (where .Site.RegularPages "Type" "wettbewerbe") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}} {{ range partial "related" 3 }}
{{ range first 3 $related }}
<div class="col-lg-4 col-sm-6"> <div class="col-lg-4 col-sm-6">
{{ partial "card-category" . }} {{ partial "card-category" . }}
</div> </div>