Compare commits

...

13 Commits

Author SHA1 Message Date
5248bae90a Sync dev with master
Some checks failed
website-dev / dev-build (push) Failing after 59s
2023-07-31 20:59:17 +02:00
5d7b32d3c9
Merge branch 'refactor/layouts-cleanup'
Some checks failed
website-main / prod-build (push) Failing after 1m1s
website-main / test-build (push) Failing after 50s
website-main / auto-rebuild (push) Has been skipped
2023-07-31 20:55:36 +02:00
b1d3a2156f
update cms previews to new layouts. close #234 2023-07-31 20:54:52 +02:00
de38c3da9f Merge pull request 'Cleanup templates' (#233) from refactor/layouts-cleanup into master
Some checks failed
website-main / prod-build (push) Has been cancelled
website-main / test-build (push) Has been cancelled
website-main / auto-rebuild (push) Has been cancelled
Reviewed-on: #233
2023-07-30 09:53:48 +02:00
1af5f54900
WIP 2023-07-30 09:53:00 +02:00
93fb7f1b1a
WIP 2023-07-29 13:16:25 +02:00
7e86759eb5 Merge branch 'master' into refactor/layouts-cleanup 2023-07-24 12:06:15 +02:00
18a823cb6a cleanup templates:
- move out shared functions to shared templates
  - remove useless classes
  - simplify
  - various cleanups & enhancements
2023-07-24 12:02:51 +02:00
d82fa673aa Artikel gratulation-zum-vizeeuropameister-titel aktualisiert
All checks were successful
website-main / prod-build (push) Successful in 1m17s
website-main / test-build (push) Successful in 1m10s
website-main / auto-rebuild (push) Has been skipped
2023-07-23 17:50:46 +02:00
da35869812 Artikel gratulation-zum-vizeeuropameister-titel aktualisiert
All checks were successful
website-main / prod-build (push) Successful in 1m34s
website-main / test-build (push) Successful in 1m3s
website-main / auto-rebuild (push) Has been skipped
2023-07-23 17:50:34 +02:00
f66ed70c82 Artikel gratulation-zum-vizeeuropameister-titel aktualisiert
All checks were successful
website-main / prod-build (push) Successful in 51s
website-main / test-build (push) Successful in 50s
website-main / auto-rebuild (push) Has been skipped
2023-07-23 17:00:57 +02:00
7feaef33ae Artikel gratulation-zum-vizeeuropameister-titel aktualisiert
All checks were successful
website-main / prod-build (push) Successful in 1m11s
website-main / test-build (push) Successful in 1m3s
website-main / auto-rebuild (push) Has been skipped
2023-07-23 16:59:43 +02:00
709ca3e9da Artikel gratulation-zum-vizeeuropameister-titel erstellt
All checks were successful
website-main / prod-build (push) Successful in 1m39s
website-main / test-build (push) Successful in 1m5s
website-main / auto-rebuild (push) Has been skipped
2023-07-23 16:55:32 +02:00
78 changed files with 986 additions and 1370 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;
@ -531,7 +537,7 @@ details[open] summary {
.intro-video .play-btn { .intro-video .play-btn {
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 0; left: calc(50% - 40px);
transform: translateY(-50%); transform: translateY(-50%);
} }
@ -908,12 +914,6 @@ link:focus,
} }
} }
@media (min-width: 768px) {
.termin-tc {
width: 25%;
}
}
@media (max-width: 991px) { @media (max-width: 991px) {
.navigation { .navigation {
background: var(--gcg-color-secondary); background: var(--gcg-color-secondary);
@ -976,3 +976,15 @@ link:focus,
padding-right: 10%; padding-right: 10%;
} }
} }
#map {
height: 50vh;
}
.object-cover {
object-fit: cover;
}
.min-w-0 {
min-width: 0;
}

@ -0,0 +1,28 @@
---
title: Gratulation zum Vizeeuropameister-Titel
date: 2023-07-23T16:41:40.796+02:00
draft: false
image: /media/blog/2023/gratulationelias.webp
author:
- herr-berger
categories:
- Wettbewerbe
- Sport
- Sonstiges
tags:
- "2023"
type: post
---
## Wir gratulieren Elias Peschek zum Vizeeuropameister-Titel im Speedskating mit dem Halleschen Inline Skate Club.
**Das #TEAMD gewinnt beim Staffellauf die Silbermedaille.**
Weitere Eindrücke vom Wettbewerb:
{{< card title="Instagram-Post des Halleschen ISC" link="https://www.instagram.com/p/Cu-ZtanNZHc/?igshid=MTc4MmM1YmI2Ng==" >}}
_Bildquelle:_ [_https://www.instagram.com/p/CuctCMntYtL/?igshid=MTc4MmM1YmI2Ng==_](https://www.instagram.com/p/CuctCMntYtL/?igshid=MTc4MmM1YmI2Ng==)

@ -2,13 +2,9 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="content">
<div class="col-12"> <h3>Hier geht es leider nicht weiter.</h3>
<div class="content"> <a class="btn btn-primary" href="{{ .Site.BaseURL | relURL }}">Zurück zur Startseite</a>
<h3>Hier geht es leider nicht weiter.</h3>
<a class="btn btn-primary" href="{{ .Site.BaseURL | relURL }}">Zurück zur Startseite</a>
</div>
</div>
</div> </div>
</div> </div>
</section> </section>

@ -3,12 +3,12 @@
<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 }}
<div class="col-md-6 d-flex align-items-stretch"> <div class="col-md-6 d-flex align-items-stretch">
{{ partial "card" . }} {{ partial "card-article" . }}
</div> </div>
{{ end }} {{ end }}
<div class="col-12 mt-4"> <div class="col-12 mt-4">

@ -3,46 +3,29 @@
<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="border-bottom my-4"></div>
<div class="content text-justify mb-4">
{{ .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 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>

@ -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>

@ -1,6 +1,6 @@
{{ define "main" }} {{ define "main" }}
<section class="section bg-body-tertiary"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-8 mb-4 mb-lg-0"> <div class="col-lg-8 mb-4 mb-lg-0">

@ -2,10 +2,8 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row mb-4"> <div class="content text-justify">
<div class="col-md-6 content"> {{ .Content }}
{{ .Content }}
</div>
</div> </div>
<div class="row"> <div class="row">
{{ range .Params.elements }} {{ range .Params.elements }}
@ -13,7 +11,7 @@
<div class="card rounded-0 hover-shadow border-primary"> <div class="card rounded-0 hover-shadow border-primary">
<div class="card-body"> <div class="card-body">
<h4 class="card-title mb-3">{{ .title }}</h4> <h4 class="card-title mb-3">{{ .title }}</h4>
<div class="content">{{ .content | markdownify }}</div> <div class="content text-justify">{{ .content | markdownify }}</div>
</div> </div>
</div> </div>
</div> </div>

@ -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>

@ -1,45 +1,33 @@
{{ define "main" }} {{ define "main" }}
<section class="section bg-light">
<div class="container">
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="text-center">
<figure>
{{ if .Params.image }}
<img class="rounded-circle img-fluid mb-4" src="{{.Params.Image | relURL }}" width="128px">
{{ 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">
{{ end }}
<figcaption>
<h4 class="fw-bold">{{ .Title }}</h4>
</figcaption>
</figure>
<hr>
{{ .Content }}
<hr>
<ul class="list-inline">
{{ with .Params.email }}
<li class="list-inline-item"><a href="mailto:{{ . }}"><i class="mdi mdi-at"></i></a></li>
{{ end }}
</ul>
</div>
</div>
</div>
</div>
</section>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="text-center">
<div class="col-lg-12"> {{ if .Params.image }}
<div class="title text-center"> <img class="rounded-circle img-fluid mb-4" src="{{.Params.Image | relURL }}" width="128px" height="128px">
{{ 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">
{{ end }}
<h4 class="fw-bold">{{ .Title }}</h4>
<hr>
{{ .Content }}
<hr>
{{ with .Params.email }}
<a href="mailto:{{ . }}"><i class="mdi mdi-at"></i></a>
{{ end }}
</div>
</div>
</section>
<section class="section pt-0">
<div class="container">
<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-article" . }}
</div> </div>
{{ end }} {{ end }}
</div> </div>

@ -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-contest" . }}
<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 text-justify">
<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 text-justify">
{{ .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>

@ -2,75 +2,26 @@
<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"> <h2 class="mb-4">{{ .Title }}</h2>
<img src="{{ .Params.image | relURL }}" class="img-fluid w-100"> <div class="row mb-4">
</div> {{ partial "icon-element" (dict "size" 3 "icon" "mdi-calendar-today-outline" "title" "Zeit" "content" .Params.schedule) }}
{{ partial "icon-element" (dict "size" 3 "icon" "mdi-timer-sand" "title" "Dauer" "content" .Params.duration) }}
{{ partial "icon-element" (dict "size" 3 "icon" "mdi-crowd" "title" "Klassen" "content" .Params.class) }}
{{ partial "icon-element" (dict "size" 3 "icon" "mdi-map-marker-radius-outline" "title" "Raum" "content" .Params.room) }}
</div> </div>
<h2>{{ .Title }}</h2> <hr class="mb-4">
<div class="row align-items-center mb-4"> <div class="content text-justify">
<div class="col-12">
<div class="row">
<div class="col-lg-3 col-sm-6 mb-3 mb-sm-0">
<div class="d-flex align-items-center">
<i class="mdi mdi-calendar-today-outline text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Zeit</h6>
<p class="mb-0">{{ .Params.schedule }}</p>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-6 mb-3 mb-sm-0">
<div class="d-flex align-items-center">
<i class="mdi mdi-timer-sand text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Dauer</h6>
<p class="mb-0">{{ .Params.duration }}</p>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-6 mb-3 mb-sm-0">
<div class="d-flex align-items-center">
<i class="mdi mdi-crowd text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Klassen</h6>
<p class="mb-0">{{ .Params.class }}</p>
</div>
</div>
</div>
<div class="col-lg-3 col-sm-6 mb-3 mb-sm-0">
<div class="d-flex align-items-center">
<i class="mdi mdi-map-marker-radius-outline text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Raum</h6>
<p class="mb-0">{{ .Params.room }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 mt-4">
<div class="border-bottom border-primary"></div>
</div>
</div>
<div class="row">
<div class="col-12 content">
{{ .Content }} {{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>
<section class="section pt-0" data-pagefind-ignore="all"> <section class="section pt-0" data-pagefind-ignore="all">
<div class="container"> <div class="container">
<h2 class="mb-4">Andere Arbeitsgemeinschaften</h2>
<div class="row"> <div class="row">
<div class="col-12"> {{ range partial "related" . }}
<h2 class="mb-4">Andere Arbeitsgemeinschaften</h2>
</div>
</div>
<div class="row">
{{ $related := (where .Site.RegularPages "Type" "ganztagsangebote") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}}
{{ 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>

@ -6,20 +6,20 @@
{{ with $data.homepage.slider }} {{ with $data.homepage.slider }}
<section class="hero-section overlay bg-cover hero-default" data-background="{{ .bg_image | absURL }}"> <section class="hero-section overlay bg-cover hero-default" data-background="{{ .bg_image | absURL }}">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<h2 class="text-white position-relative">{{ $data.homepage.slider.title | markdownify }}</h2> <h2 class="text-white position-relative">{{ $data.homepage.slider.title | markdownify }}</h2>
<div class="hero-slider"> <div class="hero-slider">
{{ range .slider_item }} {{ range .slider_item }}
<div class="hero-slider-item"> <div class="hero-slider-item">
<p class="text-muted mb-4" >{{ .content | markdownify }}</p> <p class="text-muted mb-4" >{{ .content | markdownify }}</p>
{{ if .button.enable }} {{ if .button.enable }}
<a href="{{ .button.link | absURL }}" class="btn btn-primary">{{ .button.label }}</a> <a href="{{ .button.link | absURL }}" class="btn btn-primary">{{ .button.label }}</a>
{{ end }}
</div>
{{ end }} {{ end }}
</div>
</div> </div>
{{ end }}
</div>
</div>
</div> </div>
</div> </div>
</section> </section>
@ -56,7 +56,7 @@
<div class="container"> <div class="container">
<div class="row align-items-center"> <div class="row align-items-center">
{{ range .logos }} {{ range .logos }}
<div class="col-md-3 col-6 order-1 order-md-2 mt-4"> <div class="col-md-3 col-6 mt-4">
<a href="{{ .link }}" target="_blank" title="{{ .title }}"><img class="img-fluid w-100" src="{{ .image }}"></a> <a href="{{ .link }}" target="_blank" title="{{ .title }}"><img class="img-fluid w-100" src="{{ .image }}"></a>
</div> </div>
{{ end }} {{ end }}
@ -73,7 +73,7 @@
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-md-10 order-2 order-md-1"> <div class="col-md-10 order-2 order-md-1">
<h3 class="mb-4">{{ .title | markdownify }}</h3> <h3 class="mb-4">{{ .title | markdownify }}</h3>
<div class="content"> <div class="content text-justify">
{{ .content | markdownify }} {{ .content | markdownify }}
</div> </div>
{{ if .button.enable }} {{ if .button.enable }}
@ -102,42 +102,29 @@
{{ if $data.homepage.blog.enable }} {{ if $data.homepage.blog.enable }}
<section class="section mb-4"> <section class="section mb-4">
<div class="container"> <div class="container">
<div class="row"> <div class="d-flex align-items-center mb-4 justify-content-between">
<div class="col-12"> <h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.blog.title }}</h2>
<div class="d-flex align-items-center mb-4 justify-content-between"> <div class="border-top w-100 border-primary d-none d-sm-block"></div>
<h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.blog.title }}</h2> <div>
<div class="border-top w-100 border-primary d-none d-sm-block"></div> <a href="{{ `blog` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block">Alle anzeigen</a>
<div>
<a href="{{ `blog` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block">Alle anzeigen</a>
</div>
</div>
</div> </div>
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">
{{ if $data.ausblick.enable }} {{ if $data.ausblick.enable }}
{{ with $data.ausblick }} {{ with $data.ausblick }}
<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 mb-4 mb-lg-0 d-flex align-items-stretch">
<div class="card border-info rounded-0 hover-shadow mb-4"> <div class="card border-info rounded-0 hover-shadow mb-2">
<span class="position-absolute top-0 start-0 ms-5 translate-middle p-2 text-bg-info border border-light rounded-pill"> <span class="position-absolute top-0 start-0 ms-5 translate-middle p-2 text-bg-info border border-info rounded-pill">
<i class="mdi mdi-pin me-2">Angeheftet</i> <i class="mdi mdi-pin me-2">Angeheftet</i>
</span> </span>
<img class="card-img-top rounded-0" src="{{ .image | relURL }}" alt="{{ .title }}" onclick="$('#{{ md5 .title }}').modal('show');"> <img class="card-img-top rounded-0" src="{{ .image | relURL }}" alt="{{ .title }}" onclick="$('#{{ md5 .title }}').modal('show');">
<div class="card-body d-flex flex-column"> <div class="card-body d-flex flex-column">
<div class="row mb-2"> <span class="text-truncate mb-2">
<div class="col-12"> <i class="mdi mdi-fountain-pen-tip me-2"></i>
<i class="mdi mdi-fountain-pen-tip me-2"></i> {{ partial "authors" (dict "Site" $.Site "author" .author )}}
{{ range $index, $elements := where (where $.Site.RegularPages "Type" "author") "File.BaseFileName" "in" .author }} </span>
{{ if ne $index 0 }}, {{ end }}
{{ if .Params.simplified }}
{{ .Title }}
{{ else }}
<a href="{{ .Permalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}
</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>
@ -146,7 +133,7 @@
{{ end }} {{ end }}
{{ range first (cond $data.ausblick.enable (int $data.homepage.blog.number) (add $data.homepage.blog.number 1)) (where .Site.RegularPages "Type" "post")}} {{ range first (cond $data.ausblick.enable (int $data.homepage.blog.number) (add $data.homepage.blog.number 1)) (where .Site.RegularPages "Type" "post")}}
<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 mb-4 mb-lg-0 d-flex align-items-stretch">
{{ partial "card" . }} {{ partial "card-article" . }}
</div> </div>
{{ end }} {{ end }}
</div> </div>
@ -158,25 +145,21 @@
{{ with $data.homepage.success_banner }} {{ with $data.homepage.success_banner }}
<section class="section bg-cover" data-background="{{ .image | absURL }}" id="success"> <section class="section bg-cover" data-background="{{ .image | absURL }}" id="success">
<div class="container"> <div class="container">
<div class="row no-gutters"> <div class="row feature-blocks bg-white justify-content-between">
<div class="col-12"> {{ range .feature_item }}
<div class="row feature-blocks bg-white justify-content-between"> <div class="col-xl-5 mb-xl-5 mb-4">
{{ range .feature_item }} {{ with .image }}
<div class="col-xl-5 mb-xl-5 mb-4"> <img src="{{ . }}" class="mb-xl-4 mb-lg-3 mb-4 feature-icon"></img>
{{ with .image }} {{ end }}
<img src="{{ . }}" class="mb-xl-4 mb-lg-3 mb-4 feature-icon"></img> {{ with .icon }}
{{ end }} <i class="{{ . }} mb-xl-4 mb-lg-3 mb-4 feature-icon"></i>
{{ with .icon }} {{ end }}
<i class="{{ . }} mb-xl-4 mb-lg-3 mb-4 feature-icon"></i> <h3 class="mb-xl-4 mb-lg-3 mb-4">{{ .name | markdownify }}</h3>
{{ end }} <div class="content">
<h3 class="mb-xl-4 mb-lg-3 mb-4">{{ .name | markdownify }}</h3> {{ .content | markdownify }}
<div class="content">
{{ .content | markdownify }}
</div>
</div>
{{ end }}
</div> </div>
</div> </div>
{{ end }}
</div> </div>
</div> </div>
</section> </section>
@ -186,15 +169,11 @@
{{ if $data.homepage.ganztagsangebote.enable }} {{ if $data.homepage.ganztagsangebote.enable }}
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="d-flex align-items-center mb-4 justify-content-between">
<div class="col-12"> <h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.ganztagsangebote.title }}</h2>
<div class="d-flex align-items-center mb-4 justify-content-between"> <div class="border-top w-100 border-primary d-none d-sm-block"></div>
<h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.ganztagsangebote.title }}</h2> <div>
<div class="border-top w-100 border-primary d-none d-sm-block"></div> <a href="{{ `ganztagsangebote` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block">Alle anzeigen</a>
<div>
<a href="{{ `ganztagsangebote` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block">Alle anzeigen</a>
</div>
</div>
</div> </div>
</div> </div>
<div class="row justify-content-center"> <div class="row justify-content-center">
@ -204,11 +183,6 @@
</div> </div>
{{ end }} {{ end }}
</div> </div>
<div class="row">
<div class="col-12 text-center">
<a href="{{ `ganztagsangebote` | relURL }}" class="btn btn-sm btn-primary-outline d-sm-none d-inline-block">Alle anzeigen</a>
</div>
</div>
</div> </div>
</section> </section>
{{ end }} {{ end }}
@ -216,18 +190,14 @@
{{ if $data.homepage.cta.enable }} {{ if $data.homepage.cta.enable }}
{{ with $data.homepage.cta }} {{ with $data.homepage.cta }}
<section class="section bg-primary"> <section class="section bg-primary">
<div class="container"> <div class="container text-center">
<div class="row"> <h2 class="text-white mb-0">{{ .title | markdownify }}</h2>
<div class="col-12 text-center"> <h5 class="mb-4 text-white">{{ .subtitle | markdownify }}</h5>
<h2 class="text-white mb-0">{{ .title | markdownify }}</h2> {{ if .button.enable }}
<h5 class="mb-4 text-white">{{ .subtitle | markdownify }}</h5> {{ with .button }}
{{ if .button.enable }} <a href="{{ .link | absURL }}" class="btn btn-secondary text-uppercase">{{ .label }}</a>
{{ with .button }} {{ end }}
<a href="{{ .link | absURL }}" class="btn btn-secondary text-uppercase">{{ .label }}</a> {{ end }}
{{ end }}
{{ end }}
</div>
</div>
</div> </div>
</section> </section>
{{ end }} {{ end }}
@ -240,15 +210,11 @@
{{ if $data.homepage.termine.enable }} {{ if $data.homepage.termine.enable }}
<section class="section bg-body-tertiary"> <section class="section bg-body-tertiary">
<div class="container"> <div class="container">
<div class="row"> <div class="d-flex align-items-center mb-4 justify-content-between">
<div class="col-12"> <h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.termine.title }}</h2>
<div class="d-flex align-items-center mb-4 justify-content-between"> <div class="border-top w-100 border-primary d-none d-sm-block"></div>
<h2 class="mb-0 text-nowrap me-3">{{ $data.homepage.termine.title }}</h2> <div>
<div class="border-top w-100 border-primary d-none d-sm-block"></div> <a href="{{`termine` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block text-nowrap">Alle anzeigen</a>
<div>
<a href="{{`termine` | relURL }}" class="btn btn-sm btn-primary-outline ms-sm-3 d-none d-sm-block text-nowrap">Alle anzeigen</a>
</div>
</div>
</div> </div>
</div> </div>
<div class="row justify-content-center px-2"> <div class="row justify-content-center px-2">
@ -311,7 +277,7 @@
<div class="container"> <div class="container">
<div class="row justify-content-center"> <div class="row justify-content-center">
{{ range .logos }} {{ range .logos }}
<div class="col-md-2 col-4 order-1 order-md-2 mb-4"> <div class="col-md-2 col-4 mb-4">
<a href="{{ .link }}" target="_blank" title="{{ .title }}"><img class="img-fluid w-100" src="{{ .image }}"></a> <a href="{{ .link }}" target="_blank" title="{{ .title }}"><img class="img-fluid w-100" src="{{ .image }}"></a>
</div> </div>
{{ end }} {{ end }}

@ -1,14 +1,10 @@
{{ define "main" }} {{ define "main" }}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" <link rel="stylesheet" href="https://unpkg.com/leaflet@^1.7.1/dist/leaflet.css" />
integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A=="
crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" <script src="https://unpkg.com/leaflet@^1.7.1/dist/leaflet.js"></script>
integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
crossorigin=""></script>
<section class="section pb-0 bg-body-tertiary"> <section class="section pb-0">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-6 mb-4 mb-lg-0"> <div class="col-lg-6 mb-4 mb-lg-0">
@ -48,28 +44,22 @@ crossorigin=""/>
</div> </div>
</section> </section>
<section class="section bg-body-tertiary"> <div id="map" class="mt-4">
<div class="container"> <script>
<div class="row"> var map = L.map('map', {
<div id="map" class="card col-12" style="height: 50vh;"> scrollWheelZoom: false
<script> }).setView([51.473361, 11.965619], 100);
var map = L.map('map', {
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>
</section>
{{ end }} {{ end }}

@ -2,12 +2,8 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <div class="content text-justify">
<div class="col-12"> {{ .Content }}
<div class="content">
{{ .Content | safeHTML }}
</div>
</div>
</div> </div>
</div> </div>
</section> </section>

@ -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,37 +1,37 @@
<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="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>
<div class="bg-white mb-4"> <div class="mb-4">
<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>
<div class="bg-white"> <div class="bg-white">
<h4 class="mb-4">Neuste Beiträge</h4> <h4 class="mb-4">Neuste Beiträge</h4>
{{ range first 5 ( where .Site.Pages "Type" "post" )}} {{ range first 5 ( where .Site.Pages "Type" "post" )}}
<div class="d-flex border-bottom border-color pb-3 mb-3"> <div class="d-flex border-bottom border-color pb-3 mb-3">
<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 min-w-0 d-flex flex-column justify-content-between">
<a href="{{ .Permalink }}"> <a href="{{ .Permalink }}">
<h5 class="mt-0">{{ .Title }}</h5> <h5 class="text-truncate">{{ .Title }}</h5>
</a> </a>
{{ time.Format "02. Jan 2006" .PublishDate }} {{ time.Format "02. Jan 2006" .PublishDate }}
</div> </div>

@ -0,0 +1,15 @@
<div class="card border-primary rounded-0 hover-shadow mb-2">
<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="d-flex justify-content-between gap-1 flex-wrap mb-2">
<span><i class="mdi mdi-calendar-today me-2"></i>{{ time.Format "02. Jan 2006" .PublishDate }}</span>
<span class="text-truncate">
<i class="mdi mdi-fountain-pen-tip me-2"></i>
{{ partial "authors" (dict "Site" .Site "author" .Params.author )}}
</span>
</div>
<h4 class="card-title text-truncate"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<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>
</div>
</div>

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

@ -1,8 +1,12 @@
<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-2 w-100">
alt="{{ .Title }}"></a> {{ with .Params.image }}
<div class="card-body d-flex flex-column"> <a href="{{ $.Permalink }}"><img class="card-img-top rounded-0" src="{{ . | relURL }}"
<h4 class="card-title text-truncate mt-auto"><a href="{{ .Permalink }}">{{ .Title }}</a></h4> alt="{{ $.Title }}"></a>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm text-uppercase align-self-start" data-pagefind-ignore>Mehr anzeigen</a> {{ end }}
<div class="card-body d-flex flex-column">
<h4 class="card-title text-truncate mt-auto"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm align-self-start" data-pagefind-ignore>Mehr anzeigen</a>
</div>
</div> </div>
</div> </div>

@ -1,8 +1,8 @@
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="card border-primary rounded-0 hover-shadow mb-2">
<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">
<div class="row col-12 mb-3"><div class="col-1"><i class="mdi mdi-bookmark-outline me-2"></i></div><div class="col-11">{{ .Params.category }}</div></div> <div class="mb-2"><i class="mdi mdi-bookmark-outline me-2"></i>{{ .Params.category }}</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>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm text-uppercase" data-pagefind-ignore>Mehr anzeigen</a> <a href="{{ .Permalink }}" class="btn btn-primary btn-sm" data-pagefind-ignore>Mehr anzeigen</a>
</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 +0,0 @@
<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>
<div class="card-body d-flex flex-column">
<div class="row mb-2">
<div class="col-6"><i class="mdi mdi-calendar-today me-2"></i>{{ time.Format "02. Jan 2006" .PublishDate }}</div>
<div class="col-6 text-truncate">
<i class="mdi mdi-fountain-pen-tip me-2"></i>
{{ 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>
<h4 class="card-title text-truncate"><a href="{{ .Permalink }}">{{ .Title }}</a></h4>
<p class="card-text">{{ .Summary | truncate 100 }}</p>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm mt-auto align-self-start" data-pagefind-ignore>Mehr anzeigen</a>
</div>
</div>

@ -1,8 +1,10 @@
<div class="card border-primary rounded-2 hover-shadow mb-4"> <div class="card border-primary rounded-2 hover-shadow mb-4">
<div class="card-body mb-0"> <div class="card-body mb-0">
<details> <details>
<summary>{{ .title }}</summary> <summary>{{ .title }}</summary>
<div class="content">{{ .content | markdownify }}</div> <div class="content text-justify">
</details> {{ .content | markdownify | emojify }}
</div> </div>
</div> </details>
</div>
</div>

@ -1,8 +1,6 @@
<div class="container mb-0"> <div class="card border-primary rounded-0 hover-shadow mb-2">
<div class="card border-primary rounded-0 hover-shadow mb-5"> <div class="card-body mb-0">
<div class="card-body mb-0"> <h4 class="card-title"><a class="text-decoration-none" href='{{ .link }}'>{{ .title }}</a></h4>
<h4 class="card-title"><a class="text-decoration-none" href='{{ .link }}'>{{ .title }}</a></h4> <a href='{{ .link }}' class="text-decoration-none btn btn-primary btn-sm mb-0"><i class="mdi mdi-tray-arrow-down me-2"></i>Download</a>
<a href='{{ .link }}' class="text-decoration-none btn btn-primary btn-sm mb-0"><i class="mdi mdi-tray-arrow-down mb-0 me-2"></i>Download</a> </div>
</div> </div>
</div>
</div>

@ -1,21 +1,10 @@
<div class="row gta-cat"> <ul class="list-inline text-center filter-controls mb-4">
<div class="col-lg-12"> <li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li>
<ul class="list-inline text-center filter-controls mb-5"> {{ $categories := slice }}
<li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li> {{ range .Data.Pages }}
{{ $categories := slice }} {{ $categories = $categories | append .Params.category }}
{{ range .Data.Pages }} {{ end }}
{{ $categories = $categories | append .Params.category }} {{ range ( $categories | uniq ) }}
{{ end }} <li class="list-inline-item m-3 text-uppercase" data-filter="{{ . | urlize }}">{{ . | humanize }}</li>
{{ range ( $categories | uniq ) }} {{ end }}
<li class="list-inline-item m-3 text-uppercase" data-filter="{{ . | urlize }}">{{ . | humanize }}</li> </ul>
{{ end }}
</ul>
</div>
</div>
<noscript>
<style>
.gta-cat {
display: none;
}
</style>
</noscript>

@ -2,40 +2,40 @@
<div class="footer bg-footer section"> <div class="footer bg-footer section">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-3 col-sm-8 mb-5 mb-lg-0"> <div class="col-lg-4 col-sm-6 mb-4 mb-lg-0 text-sm-start text-center">
<a class="logo-footer" href="{{ .Site.BaseURL | relURL }}"><img class="mb-4" height="60" src="{{ .Site.Params.logo | absURL }}" alt="{{ .Site.Title }}"></a> <a class="logo-footer" href="{{ .Site.BaseURL | relURL }}"><img class="mb-4" height="60" src="{{ .Site.Params.logo | absURL }}" alt="{{ .Site.Title }}"></a>
<ul class="list-unstyled text-white text-opacity-50"> <ul class="list-unstyled text-white text-opacity-50">
<li class="mb-4"> <li class="mb-3">
<a href="{{ .Site.Params.route_link }}">{{ .Site.Params.address | markdownify }}</a> <a href="{{ .Site.Params.route_link }}">{{ .Site.Params.address | markdownify }}</a>
</li> </li>
<li class="mb-4"><a href="mailto:{{ .Site.Params.email }}">{{ .Site.Params.email_pretty | markdownify }}</a></li> <li class="mb-3"><a href="mailto:{{ .Site.Params.email }}">{{ .Site.Params.email_pretty | markdownify }}</a></li>
<li class="mb-4"><a href="tel:{{ .Site.Params.mobile | markdownify }}">{{ .Site.Params.mobile | markdownify }}</a></li> <li class="mb-3"><a href="tel:{{ .Site.Params.mobile }}">{{ .Site.Params.mobile | markdownify }}</a></li>
<li class="mb-4"> <li class="mb-3">
<a href="{{ .Site.Params.impressumURL | absURL }}">Impressum</a> <a href="{{ .Site.Params.impressumURL | absURL }}">Impressum</a>
</li> </li>
<li class="mb-4"> <li class="mb-3">
<a href="{{ .Site.Params.dseURL | absURL }}">Datenschutz</a> <a href="{{ .Site.Params.dseURL | absURL }}">Datenschutz</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="col-lg-2 col-sm-4 col-6 mb-5 mb-md-0"> <div class="col-lg-2 col-sm-6 mb-4 mb-md-0 text-sm-start text-center">
<h4 class="text-white mb-5 text-uppercase">Links</h4> <h4 class="text-white mb-4 text-uppercase">Links</h4>
<ul class="list-unstyled"> <ul class="list-unstyled">
{{ range .Site.Menus.footer }} {{ range .Site.Menus.footer }}
<li class="mb-3"><a class="text-white text-opacity-50" href="{{ .URL | absURL }}">{{ .Name }}</a></li> <li class="mb-3"><a class="text-white text-opacity-50" href="{{ .URL | absURL }}">{{ .Name }}</a></li>
{{ end }} {{ end }}
</ul> </ul>
</div> </div>
<div class="col-lg-3 col-sm-4 col-6 mb-5 mb-md-0"> <div class="col-lg-3 col-sm-6 mb-4 mb-md-0 text-sm-start text-center">
<h4 class="text-white mb-5 text-uppercase">Ganztagsangebote</h4> <h4 class="text-white mb-4 text-uppercase">Ganztagsangebote</h4>
<ul class="list-unstyled"> <ul class="list-unstyled">
{{ range first 5 (where .Site.RegularPages "Type" "ganztagsangebote" | shuffle)}} {{ range first 5 (where .Site.RegularPages "Type" "ganztagsangebote" | shuffle)}}
<li class="mb-3"><a class="text-white text-opacity-50" href="{{ .Permalink }}">{{ .Title }}</a></li> <li class="mb-3"><a class="text-white text-opacity-50" href="{{ .Permalink }}">{{ .Title }}</a></li>
{{ end }} {{ end }}
</ul> </ul>
</div> </div>
<div class="col-lg-4 col-sm-4 col-6 mb-5 mb-md-0"> <div class="col-lg-3 col-sm-6 mb-4 mb-md-0 text-sm-start text-center">
<h4 class="text-white mb-5 text-uppercase">Aktuelles</h4> <h4 class="text-white mb-4 text-uppercase">Aktuelles</h4>
<ul class="list-unstyled"> <ul class="list-unstyled">
{{ range first 5 (where .Site.RegularPages "Type" "post")}} {{ range first 5 (where .Site.RegularPages "Type" "post")}}
<li class="mb-3"><a class="text-white text-opacity-50" href="{{ .Permalink }}">{{ .Title | truncate 35 }}</a></li> <li class="mb-3"><a class="text-white text-opacity-50" href="{{ .Permalink }}">{{ .Title | truncate 35 }}</a></li>

@ -1,10 +1,8 @@
<div class="card border-primary rounded-0 hover-shadow mb-4"> <div class="card border-primary rounded-0 hover-shadow mb-2">
<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">
<div class="container"> <div class="mb-2 text-truncate"><i class="mdi mdi-calendar-today me-2"></i>{{ .Params.schedule }}</div>
<div class="row mb-2"><div class="col-1"><i class="mdi mdi-calendar-today"></i></div><div class="col-11">{{ .Params.schedule }}</div></div> <div class="mb-2 text-truncate"><i class="mdi mdi-crowd me-2"></i>{{ .Params.class }}</div>
<div class="row mb-2"><div class="col-1"><i class="mdi mdi-crowd"></i></div><div class="col-11">{{ .Params.class }}</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>
<a href="{{ .Permalink }}" class="btn btn-primary btn-sm" data-pagefind-ignore>Mehr anzeigen</a> <a href="{{ .Permalink }}" class="btn btn-primary btn-sm" data-pagefind-ignore>Mehr anzeigen</a>
</div> </div>

@ -1,35 +0,0 @@
<section class="section">
<div class="container">
{{ if (and .Params.image (ne .Params.image "/media/image.webp") ) }}
<div class="row">
<div class="col-12 mb-4">
<img class="img-fluid w-100" src="{{ .Params.image | relURL }}">
</div>
</div>
{{ end }}
<div class="row mb-4">
<div class="col-7">
<div class="d-flex align-items-center">
<i class="mdi mdi-crowd text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Klassen</h6>
<p class="mb-0">{{ .Params.class }}</p>
</div>
</div>
</div>
{{ if .Params.web_url }}
<div class="col-5 text-end mb-4 mb-xl-0">
<a href="{{ .Params.web_url | safeURL }}" class="btn btn-primary">Website</a>
</div>
{{ end }}
<div class="col-12 mt-4">
<div class="border-bottom border-primary"></div>
</div>
</div>
<div class="row">
<div class="col-12 content">
{{ .Content }}
</div>
</div>
</div>
</section>

@ -0,0 +1,23 @@
<section class="section">
<div class="container">
{{ if (and .Params.image (ne .Params.image "/media/image.webp") ) }}
<img class="img-fluid w-100 mb-4" src="{{ .Params.image | relURL }}">
{{ end }}
<div class="d-flex justify-content-between mb-4">
<div class="d-flex align-items-center">
<i class="mdi mdi-crowd text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">Klassen</h6>
<p class="mb-0">{{ .Params.class }}</p>
</div>
</div>
{{ if .Params.web_url }}
<a href="{{ .Params.web_url | safeURL }}" class="btn btn-primary">Website</a>
{{ end }}
</div>
<hr>
<div class="content text-justify">
{{ .Content }}
</div>
</div>
</section>

@ -0,0 +1,9 @@
<div class="col-lg-{{.size}} col-sm-{{ mul (int .size) 2 }} mb-3 mb-sm-0">
<div class="d-flex align-items-center">
<i class="mdi {{ .icon }} text-primary icon-md me-2"></i>
<div class="text-start">
<h6 class="mb-0 text-uppercase">{{ .title }}</h6>
<p class="mb-0">{{ .content }}</p>
</div>
</div>
</div>

@ -9,7 +9,7 @@
</div> </div>
<div class="col-lg-6 col-sm-8"> <div class="col-lg-6 col-sm-8">
<div class="bg-white p-5"> <div class="bg-white p-5">
<h2 class="mb-4">{{ .title | markdownify }}</h2> <h2 class="mb-4">{{ .title }}</h2>
<p>{{ .content | markdownify }}</p> <p>{{ .content | markdownify }}</p>
</div> </div>
</div> </div>

@ -6,7 +6,7 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" data-pagefind-ignore></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" data-pagefind-ignore></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="content mb-4"> <div class="content text-justify mb-4">
{{ .content | markdownify }} {{ .content | markdownify }}
</div> </div>
{{ range .unterhaufen }} {{ range .unterhaufen }}

@ -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 }}

@ -1,15 +1,19 @@
<div class="card d-md-table w-100 hover-shadow border-primary ps-0 pe-0 mb-4"> <div class="card hover-shadow border-primary mb-4 p-0">
<div class="d-md-table-cell text-center p-4 bg-primary text-white mb-4 mb-md-0 termin-tc rounded"> <div class="row g-0">
<span class="h2 d-block">{{ time.Format "2" .date}}</span> <div class="col-md-3 text-center p-4 bg-primary text-white rounded">
<span class="d-block">{{ time.Format "Jan 2006" .date}}</span> <span class="h2">{{ time.Format "2" .date}}</span>
<span>{{ time.Format "Jan 2006" .date}}</span>
{{ with .enddate }}<br>bis {{ time.Format "2 Jan 2006" . }}{{ end }} {{ with .enddate }}<br>bis {{ time.Format "2 Jan 2006" . }}{{ end }}
</div> </div>
<div class="d-md-table-cell px-4 align-middle mb-4 mb-md-0 p-2"> <div class="col-md-9">
<p class="h4 mb-0 d-block">{{ .title }}</p> <div class="card-body h-100 d-flex flex-column justify-content-around">
<h4 class="card-title">{{ .title }}</h4>
{{ with .location }}
<div class="card-text">
<i class="mdi mdi-map-marker-radius-outline icon-s text-primary me-2"></i>{{ . | markdownify }}
</div>
{{ end }}
</div>
</div> </div>
{{ with .location }} </div>
<div class="d-md-table-cell text-end pe-md-4 p-2 align-middle">
<p><i class="mdi mdi-map-marker-radius-outline icon-s text-primary me-2"></i>{{ . | markdownify }}</p>
</div>
{{ end }}
</div> </div>

@ -0,0 +1,25 @@
<section class="section superhaufen">
<div class="container">
<div class="content text-justify">
{{ .Content }}
</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" . }}
{{ 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" (dict "Title" .title "Permalink" .link) }}
{{ 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" . }}
{{ partial "card-btn-ni" (dict "title" .Title "link" .Permalink) }}
</div>
{{ end }} {{ end }}
</div> </div>
</div> </div>

@ -1,101 +1,92 @@
{{ define "main" }} {{ define "main" }}
<section class="section"> <section class="section">
<!-- TODO: everything -->
<div class="container"> <div class="container">
<div class="row"> {{ if or .Params.cantorpreisträger (where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten") }}
<div class="col-12 mb-4"> <div class="card-group">
{{ if or .Params.Cantorpreisträger (where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten") }} {{ range where (where .Site.RegularPages "Title" .Params.Title ) "Type" "=" "cantorpreis" }}
<div class="col-12"> <div class="card d-flex flex-row flex-wrap">
<div class="card-group"> <div class="flex-shrink-0">
{{ range where (where .Site.RegularPages "Title" .Params.Title ) "Type" "=" "cantorpreis" }} <a href="{{ .Permalink }}"><img src="{{ .Params.Image | relURL }}" class="rounded-circle m-3 object-cover" height="128px" width="128px"></a>
<div class="card">
<div class="row">
<div class="col-md-3 col-4">
<a href="{{ .Permalink }}"><img src="{{ .Params.Image | relURL }}" class="img-fluid rounded w-100" style="height:150px; object-fit: cover;"></a>
</div>
<div class="col-md-9 col-8 card-body">
<a href="/cantorpreis"><h3 class="card-title">Cantorpreisträger:in</h3></a>
<a href="{{ .Permalink }}"><p class="h4 card-text">{{ .Params.name }}</p></a>
</div>
</div>
</div> </div>
{{ end }} <div class="flex-grow card-body min-w-0">
{{ range where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten" }} <a href="/cantorpreis"><h3 class="card-title">Cantorpreisträger:in</h3></a>
<div class="card pe-0"> <a href="{{ .Permalink }}"><p class="h4 card-text">{{ .Params.name }}</p></a>
<div class="row">
<div class="col-7 card-body ps-4">
<a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a>
{{ $abiturdurchschnitte := getJSON "static/data/abiturdurchschnitte.json" }}
{{ range $abiturdurchschnitte.abiturdurchschnitte }}
{{ if eq (string (index . "jahr")) "2008" }}<a href="/chronikseiten/abiturdurchschnitte"><p class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</p></a>{{ end }}
{{ end }}
</div>
<div class="col-5">
<a href="{{ .Permalink }}">
<img src="{{ .Params.Image | relURL }}" class="img-fluid rounded align-self-end w-100" style="height: 150px;object-fit: cover;">
</a>
</div>
</div>
</div> </div>
{{ end }}
</div>
</div> </div>
{{ end }} {{ end }}
{{ range .Params.topics }} {{ range where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten" }}
{{ partial "modal" . }} <div class="card d-flex flex-row flex-wrap-reverse">
{{ end }} <div class="flex-grow card-body min-w-0">
{{ if and .Params.pretext (ne .Params.pretext "\n\n\n") }} <a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a>
{{ partial "modal" (dict "title" .Title "content" .Params.pretext) }} {{ $abiturdurchschnitte := getJSON "static/data/abiturdurchschnitte.json" }}
{{ end }} {{ range $abiturdurchschnitte.abiturdurchschnitte }}
<div id="wc-canvas"></div> {{ if eq (string (index . "jahr")) "2008" }}<a href="/chronikseiten/abiturdurchschnitte"><p class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</p></a>{{ end }}
{{ $topics := slice }} {{ end }}
{{ if .Params.pretext }} </div>
{{ $topics = $topics | append (slice (slice .Params.Title 200 (md5 .Title))) }} <div class="">
{{ else }} <a href="{{ .Permalink }}">
{{ $topics = $topics | append (slice (slice .Params.Title 200)) }} <img src="{{ .Params.Image | relURL }}" class="rounded-circle object-cover m-3" width="128px" height="128px">
{{ end }} </a>
{{ range .Params.topics }} </div>
{{ if .superhaufen.enable }}
{{ $topics = $topics | append (slice (slice .title 30 (.superhaufen.link | urlize) "superhaufen" )) }}
{{ else }}
{{ $topics = $topics | append (slice (slice .title 30 (md5 .title) )) }}
{{ end }}
{{ end }}
<script>
WordCloud(
document.getElementById('wc-canvas'),
{
click: function (item) {
if (item[1] != 200 || (item[1] == 200 && item[2] == '{{ md5 .Title }}')) {
if( item[3] == "superhaufen" ) {
window.location.href = "{{ `/superhaufen/` | relURL }}" + item[2];
} else {
$('#' + item[2]).modal('show');
}
}
},
color: function (word, weight) {
return (weight === 200) ? '#ffbc3b' : '#1a1a37';
},
/* hover: function(item, dimension, event) {
item && item[2] ? event.target.style.textDecorationLine = "underline" : null
},*/
fontFamily: 'Ubuntu, sans-serif',
fontWeight: 700,
list: JSON.parse("{{ $topics | jsonify }}"),
shrinkToFit: true,
gridSize: 50,
rotateRatio: 0,
shuffle: false,
shape: "square",
ellipticity: 1,
clearCanvas: true
}
);
</script>
{{ .Content }}
</div> </div>
</div> {{ end }}
{{ end }}
{{ range .Params.topics }}
{{ partial "modal" . }}
{{ end }}
{{ if and .Params.pretext (ne .Params.pretext "\n\n\n") }}
{{ partial "modal" (dict "title" .Title "content" .Params.pretext) }}
{{ end }}
<div id="wc-canvas"></div>
{{ $topics := slice }}
{{ if .Params.pretext }}
{{ $topics = $topics | append (slice (slice .Params.Title 200 (md5 .Title))) }}
{{ else }}
{{ $topics = $topics | append (slice (slice .Params.Title 200)) }}
{{ end }}
{{ range .Params.topics }}
{{ if .superhaufen.enable }}
{{ $topics = $topics | append (slice (slice .title 30 (.superhaufen.link | urlize) "superhaufen" )) }}
{{ else }}
{{ $topics = $topics | append (slice (slice .title 30 (md5 .title) )) }}
{{ end }}
{{ end }}
<script>
WordCloud(
document.getElementById('wc-canvas'),
{
click: function (item) {
if (item[1] != 200 || (item[1] == 200 && item[2] == '{{ md5 .Title }}')) {
if( item[3] == "superhaufen" ) {
window.location.href = "{{ `/superhaufen/` | relURL }}" + item[2];
} else {
$('#' + item[2]).modal('show');
}
}
},
color: function (word, weight) {
return (weight === 200) ? '#ffbc3b' : '#1a1a37';
},
/* hover: function(item, dimension, event) {
item && item[2] ? event.target.style.textDecorationLine = "underline" : null
},*/
fontFamily: 'Ubuntu, sans-serif',
fontWeight: 700,
list: JSON.parse("{{ $topics | jsonify }}"),
shrinkToFit: true,
gridSize: 50,
rotateRatio: 0,
shuffle: false,
shape: "square",
ellipticity: 1,
clearCanvas: true
}
);
</script>
{{ .Content }}
</div>
</div> </div>
</section> </section>

@ -1,3 +1,3 @@
<div class="card"> <div class="card">
<audio src='{{ .Get "src" }}' class="mb-0" controls></audio> <audio src='{{ .Get "src" }}' class="mb-0" controls></audio>
</div> </div>

@ -1,8 +1,6 @@
<div class="container mb-0"> <div class="card border-primary rounded-0 hover-shadow mb-2">
<div class="card border-primary rounded-0 hover-shadow mb-2"> <div class="card-body mb-0">
<div class="card-body mb-0"> <h4 class="card-title"><a class="text-decoration-none" href='{{ .Get "link" }}'>{{ .Get "title" }}</a></h4>
<h4 class="card-title"><a class="text-decoration-none" href='{{ .Get "link" }}'>{{ .Get "title" }}</a></h4> <a href='{{ .Get "link" }}' class="mb-0 btn btn-primary btn-sm text-decoration-none">Mehr anzeigen</a>
<a href='{{ .Get "link" }}' class="mb-0 btn btn-primary btn-sm text-decoration-none">Mehr anzeigen</a>
</div>
</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 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 }}

@ -2,32 +2,17 @@
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<div class="row"> <ul class="list-inline text-center filter-controls mb-4">
<div class="col-12"> <li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li>
<div class="row gta-cat"> <li class="list-inline-item m-3 text-uppercase" data-filter="upcoming">Anstehend</li>
<div class="col-12"> <li class="list-inline-item m-3 text-uppercase" data-filter="past">Vergangen</li>
<ul class="list-inline text-center filter-controls mb-5"> </ul>
<li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li> <div class="filtr-container row">
<li class="list-inline-item m-3 text-uppercase" data-filter="upcoming">Anstehend</li> {{ range .Params.events }}
<li class="list-inline-item m-3 text-uppercase" data-filter="past">Vergangen</li> <div class="filtr-item col-12" data-category="{{ if or (ge (.date | time.AsTime).Unix now.Unix) (and .enddate (ge (.enddate | time.AsTime).Unix now.Unix)) }}upcoming{{else}}past{{end}}" data-time="{{.date}}">
</ul> {{ partial "termin" . }}
</div>
</div>
<noscript>
<style>
.gta-cat {
display: none;
}
</style>
</noscript>
<div class="filtr-container">
{{ range .Params.events }}
<div class="mb-2 mt-2 col-12 filtr-item" data-category="{{ if or (ge (.date | time.AsTime).Unix now.Unix) (and .enddate (ge (.enddate | time.AsTime).Unix now.Unix)) }}upcoming{{else}}past{{end}}" data-time="{{.date}}">
{{ partial "termin" . }}
</div>
{{ end }}
</div>
</div> </div>
{{ end }}
</div> </div>
</div> </div>
</section> </section>

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

@ -1,17 +1,12 @@
{{ define "main" }} {{ define "main" }}
{{ partial "header-cl-url" (dict "Params" .Params "Content" .Content) }} {{ partial "header-contest" . }}
<section class="section pt-0"> <section class="section pt-0">
<div class="container"> <div class="container">
<div class="row"> <h2 class="mb-4">Weitere Wettbewerbe</h2>
<div class="col-12">
<h2 class="mb-4">Weitere Wettbewerbe</h2>
</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" . }}
{{ 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>

@ -1,4 +1,9 @@
import { Container, PageHeader, Section, Row } from "./components/index.js"; import {
Container,
PageHeader,
Section,
ContentJustify,
} from "./components/index.js";
const AbiturientenPreview = ({ widgetFor, entry, collection, fields }) => { const AbiturientenPreview = ({ widgetFor, entry, collection, fields }) => {
const imageField = useMemo( const imageField = useMemo(
@ -15,16 +20,10 @@ const AbiturientenPreview = ({ widgetFor, entry, collection, fields }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
Section( Section(
Container( Container([
Row([ h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
h( ContentJustify(widgetFor("body")),
"div", ])
{ className: "col-12 mb-4" },
h("img", { className: "img-fluid w-100", src: imageUrl })
),
h("div", { className: "col-12 content" }, widgetFor("body")),
])
)
), ),
]; ];
}; };

@ -1,4 +1,10 @@
import { PageHeader } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Row,
Section,
} from "./components/index.js";
const AboutPreview = ({ widgetFor, widgetsFor, entry, fields, collection }) => { const AboutPreview = ({ widgetFor, widgetsFor, entry, fields, collection }) => {
const imageField = useMemo( const imageField = useMemo(
@ -14,34 +20,18 @@ const AboutPreview = ({ widgetFor, widgetsFor, entry, fields, collection }) => {
); );
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container([
{ className: "section" }, h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
h( ContentJustify(widgetFor("body")),
"div", ])
{ className: "container" },
h(
"div",
{ className: "row" },
h(
"div",
{ className: "col-12" },
h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
widgetFor("body")
)
)
)
), ),
entry.data.stats.enable entry.data.stats.enable
? h( ? h(
"section", "section",
{ className: "section bg-primary" }, { className: "section bg-primary" },
h( Container(
"div", Row(
{ className: "container" },
h(
"div",
{ className: "row" },
widgetsFor("stats").data.zahlen.map((element) => { widgetsFor("stats").data.zahlen.map((element) => {
return h( return h(
"div", "div",

@ -1,17 +1,11 @@
import { PageHeader } from "./components/index.js"; import { Container, PageHeader, Row, Section } from "./components/index.js";
const AnmeldeformularPreview = ({ widgetFor, entry }) => { const AnmeldeformularPreview = ({ widgetFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container(
{ className: "section bg-body-tertiary" }, Row(
h(
"div",
{ className: "container" },
h(
"div",
{ className: "row" },
h( h(
"div", "div",
{ className: "col-lg-8 mb-4 mb-lg-0" }, { className: "col-lg-8 mb-4 mb-lg-0" },

@ -1,22 +1,18 @@
import { PageHeader } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Row,
Section,
} from "./components/index.js";
const AnmeldungPreview = ({ widgetsFor, widgetFor, entry }) => { const AnmeldungPreview = ({ widgetsFor, widgetFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container([
{ className: "section" }, ContentJustify(widgetFor("body")),
h( Row(
"div",
{ className: "container" },
h(
"div",
{ className: "row mb-4" },
h("div", { className: "col-md-6 content" }, widgetFor("body"))
),
h(
"div",
{ className: "row" },
widgetsFor("elements").map(function (element, index) { widgetsFor("elements").map(function (element, index) {
return h( return h(
"div", "div",
@ -35,8 +31,8 @@ const AnmeldungPreview = ({ widgetsFor, widgetFor, entry }) => {
) )
); );
}) })
) ),
) ])
), ),
]; ];
}; };

@ -1,4 +1,4 @@
import { PageHeader, md5 } from "./components/index.js"; import { Container, PageHeader, Section, md5 } from "./components/index.js";
const AuthorPreview = ({ widgetFor, entry, fields, collection }) => { const AuthorPreview = ({ widgetFor, entry, fields, collection }) => {
const imageField = useMemo( const imageField = useMemo(
@ -14,57 +14,28 @@ const AuthorPreview = ({ widgetFor, entry, fields, collection }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container([
{ className: "section bg-light" },
h(
"div",
{ className: "container" },
h( h(
"div", "div",
{ className: "row" }, { className: "text-center" },
h( h("img", {
"div", className: "rounded-circle img-fluid mb-4",
{ className: "col-lg-10 mx-auto" }, src:
h( imageUrl ??
"div", "https://www.gravatar.com/avatar/" +
{ className: "text-center" }, md5(entry.data.email) +
h( "?s=128&pg&d=identicon",
"figure", width: "128px",
{}, height: "128px",
h("img", { }),
className: "rounded-circle img-fluid mb-4", h("h4", { className: "fw-bold" }, entry.data.title),
src: h("hr"),
imageUrl ?? widgetFor("body"),
"https://www.gravatar.com/avatar/" + h("hr"),
md5(entry.data.email) + entry.data.email ? h("i", { className: "mdi mdi-at" }) : null
"?s=128&pg&d=identicon", ),
width: "128px", ])
}),
h(
"figcaption",
{},
h("h4", { className: "fw-bold" }, entry.data.title)
)
),
h("hr"),
widgetFor("body"),
h("hr"),
h(
"ul",
{ className: "list-inline" },
entry.data.email
? h(
"li",
{ className: "list-inline-item" },
h("i", { className: "mdi mdi-at" })
)
: null
)
)
)
)
)
), ),
]; ];
}; };

@ -3,8 +3,6 @@ import {
PageHeader, PageHeader,
Section, Section,
Container, Container,
Col12,
Row,
} from "./components/index.js"; } from "./components/index.js";
const BlogPreview = ({ widgetFor, entry, fields, collection }) => { const BlogPreview = ({ widgetFor, entry, fields, collection }) => {
@ -21,67 +19,52 @@ const BlogPreview = ({ widgetFor, entry, fields, collection }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
Section( Section(
Container( Container([
Row([ h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
h(
"div",
{ className: "d-flex flex-wrap gap-2 justify-content-between" },
h( h(
"div", "div",
{ key: "cover-image", className: "col-12 mb-4" }, { className: "text-body-secondary" },
h("img", { className: "img-fluid w-100", src: imageUrl }) h("span", { className: "fw-bold me-1" }, "Geschrieben von:"),
), widgetFor("author")
Col12(
h(
"div",
{ className: "row mb-3" },
h(
"div",
{ className: "col-6 mb-md-0 text-body-tertiary" },
h("span", { className: "fw-bold me-1" }, "Geschrieben von:"),
widgetFor("author")
),
h(
"div",
{ className: "col-6 mb-3 mb-md-0 text-body-tertiary" },
h("span", { className: "fw-bold me-1" }, "Datum:"),
entry.data.date
? DateFormat({
date: entry.data.date,
format: {
day: "numeric",
month: "short",
year: "numeric",
},
})
: ""
)
)
),
Row(
h(
"div",
{ className: "col-12 mb-md-0 text-body-tertiary" },
h("span", { className: "fw-bold me-1" }, "Kategorie:"),
entry.data.categories
? entry.data.categories.map(
(category, index) => (index != 0 ? ", " : "") + category
)
: ""
)
), ),
h( h(
"div", "div",
{ key: "border-bottom", className: "col-12 my-4" }, { className: "text-body-secondary" },
h("div", { className: "border-bottom" }) h("span", { className: "fw-bold me-1" }, "Datum:"),
entry.data.date
? DateFormat({
date: entry.data.date,
format: {
day: "numeric",
month: "short",
year: "numeric",
},
})
: ""
), ),
h( h(
"div", "div",
{ { className: "text-body-secondary" },
key: "body-content", h("span", { className: "fw-bold me-1" }, "Kategorien:"),
className: "col-12 mb-5 content text-justify", entry.data.categories
}, ? entry.data.categories.map(
widgetFor("body") (category, index) => (index != 0 ? ", " : "") + category
), )
]) : ""
) )
),
h("div", { className: "border-bottom my-4" }),
h(
"div",
{
className: "content text-justify mb-4",
},
widgetFor("body")
),
])
), ),
]; ];
}; };

@ -3,7 +3,7 @@ import {
Section, Section,
Container, Container,
Row, Row,
Content, ContentJustify,
} from "./components/index.js"; } from "./components/index.js";
const CantorpreisPreview = ({ widgetFor, entry, fields, collection }) => { const CantorpreisPreview = ({ widgetFor, entry, fields, collection }) => {
@ -26,19 +26,18 @@ const CantorpreisPreview = ({ widgetFor, entry, fields, collection }) => {
Row([ Row([
h( h(
"div", "div",
{ className: "col-md-5 mb-5" }, { className: "col-md-5 mb-4" },
h("img", { h("img", {
className: "img-fluid w-75", className: "img-fluid w-100",
src: imageUrl, src: imageUrl,
alt: entry.data.name,
}) })
), ),
h( h(
"div", "div",
{ className: "col-md-7 mb-5" }, { className: "col-md-7" },
h("h3", {}, entry.data.name), h("h3", {}, entry.data.name),
h("h6", { className: "text-body-secondary" }, entry.data.title), h("h6", { className: "text-body-secondary" }, entry.data.title),
Content(widgetFor("body")) ContentJustify(widgetFor("body"))
), ),
]) ])
) )

@ -1,4 +1,4 @@
import { PageHeader } from "./components/index.js"; import { Container, PageHeader, Section, Row } from "./components/index.js";
const ChronikIndexPreview = ({ const ChronikIndexPreview = ({
widgetFor, widgetFor,
@ -20,14 +20,10 @@ const ChronikIndexPreview = ({
); );
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container(widgetFor("body")),
{ className: "section" },
h("div", { className: "container" }, widgetFor("body")),
widgetsFor("infocard").data.enable widgetsFor("infocard").data.enable
? h( ? Container(
"div",
{ className: "container" },
h( h(
"div", "div",
{ className: "card mb-3" }, { className: "card mb-3" },
@ -68,34 +64,31 @@ const ChronikIndexPreview = ({
) )
) )
: null, : null,
h( Container([
"div",
{ className: "container" },
h("h2", { className: "mb-4" }, "Informationsseiten"), h("h2", { className: "mb-4" }, "Informationsseiten"),
h( Row(
"div",
{ className: "row" },
widgetsFor("links").map((element) => widgetsFor("links").map((element) =>
h( h(
"div", "div",
{ className: "col-lg-4 col-sm-6" }, { className: "col-lg-4 col-sm-6 d-flex align-items-stretch" },
h( h(
"div", "div",
{ {
className: "card border-primary rounded-0 hover-shadow mb-4", className:
"card border-primary rounded-0 hover-shadow mb-2 w-100",
}, },
h( h(
"div", "div",
{ className: "card-body" }, { className: "card-body d-flex flex-column" },
h( h(
"h4", "h4",
{ className: "card-title text-truncate" }, { className: "card-title text-truncate mt-auto" },
h("a", { href: element.data.link }, element.data.title) h("a", { href: element.data.link }, element.data.title)
), ),
h( h(
"a", "a",
{ {
className: "btn btn-primary btn-sm", className: "btn btn-primary btn-sm align-self-start",
href: element.data.link, href: element.data.link,
}, },
"Mehr anzeigen" "Mehr anzeigen"
@ -104,8 +97,8 @@ const ChronikIndexPreview = ({
) )
) )
) )
) ),
) ])
), ),
]; ];
}; };

@ -2,7 +2,7 @@ const Section = (children) =>
h("section", { className: "section" }, children); h("section", { className: "section" }, children);
const Container = (children) => h("div", { className: "container" }, children); const Container = (children) => h("div", { className: "container" }, children);
const Row = (children) => h("div", { className: "row" }, children); const Row = (children) => h("div", { className: "row" }, children);
const Content = (children) => h("div", { className: "content" }, children); const ContentJustify = (children) => h("div", { className: "content text-justify" }, children);
const Col12 = (children) => h("div", { className: "col-12" }, children); const Col12 = (children) => h("div", { className: "col-12" }, children);
export { Section, Container, Row, Content, Col12 }; export { Section, Container, Row, ContentJustify, Col12 };

@ -1,6 +1,6 @@
import PageHeader from "./page-header.js"; import PageHeader from "./page-header.js";
import DateFormat from "./date-format.js"; import DateFormat from "./date-format.js";
import md5 from "./md5.js"; import md5 from "./md5.js";
import { Section, Container, Row, Content, Col12 } from "./base.js"; import { Section, Container, Row, ContentJustify, Col12 } from "./base.js";
export { PageHeader, DateFormat, md5, Section, Container, Row, Content, Col12 }; export { PageHeader, DateFormat, md5, Section, Container, Row, ContentJustify, Col12 };

@ -1,4 +1,9 @@
import { Container, PageHeader, Row, Section } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Section,
} from "./components/index.js";
const ContestPreview = ({ widgetFor, entry, fields, collection }) => { const ContestPreview = ({ widgetFor, entry, fields, collection }) => {
const imageField = useMemo(() => { const imageField = useMemo(() => {
@ -16,46 +21,28 @@ const ContestPreview = ({ widgetFor, entry, fields, collection }) => {
Section( Section(
Container([ Container([
entry.data.image && entry.data.image != "/media/image.webp" entry.data.image && entry.data.image != "/media/image.webp"
? Row( ? h("img", { className: "img-fluid w-100 mb-4", src: imageUrl })
h(
"div",
{ className: "col-12 mb-4" },
h("img", { className: "img-fluid w-100", src: imageUrl })
)
)
: null, : null,
h( h(
"div", "div",
{ className: "row mb-4" }, { className: "d-flex justify-content-between mb-4" },
h( h(
"div", "div",
{ className: "col-7" }, { className: "d-flex align-items-center" },
h("i", { className: "mdi mdi-crowd text-primary icon-md me-2" }),
h( h(
"div", "div",
{ className: "d-flex align-items-center" }, { className: "text-start" },
h("i", { className: "mdi mdi-crowd text-primary icon-md me-2" }), h("h6", { className: "mb-0 text-uppercase" }, "Klassen"),
h( h("p", { className: "mb-0" }, entry.data.class)
"div",
{ className: "text-start" },
h("h6", { className: "mb-0" }, "KLASSE(N)"),
h("p", { className: "mb-0" }, entry.data.class)
)
) )
), ),
entry.data.web_url entry.data.web_url
? h( ? h("a", { className: "btn btn-primary" }, "Website")
"div", : null
{ className: "col-5 text-end mb-4 mb-xl-0" },
h("a", { className: "btn btn-primary" }, "Website")
)
: null,
h(
"div",
{ className: "col-12 mt-4" },
h("div", { className: "border-bottom border-primary" })
)
), ),
Row(h("div", { className: "col-12 content" }, widgetFor("body"))), h("hr"),
ContentJustify(widgetFor("body")),
]) ])
), ),
]; ];

@ -1,145 +1,121 @@
import { PageHeader, DateFormat } from "./components/index.js"; import {
PageHeader,
function isFuture(date, enddate) { DateFormat,
let date1 = new Date(date ? date : 0); Section,
let date2 = new Date(enddate ? enddate : 0); Container,
let present = new Date(); } from "./components/index.js";
if (date1 >= present || date2 >= present) {
return true;
} else {
return false;
}
}
const EventPreview = ({ widgetsFor, entry }) => { const EventPreview = ({ widgetsFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container([
{ className: "section" }, h(
h( "ul",
"div", { className: "list-inline text-center filter-controls mb-5" },
{ className: "container" }, h(
"li",
{ className: "list-inline-item m-3 text-uppercase active" },
"Alle"
),
h(
"li",
{ className: "list-inline-item m-3 text-uppercase" },
"Anstehend"
),
h(
"li",
{ className: "list-inline-item m-3 text-uppercase" },
"Vergangen"
)
),
h( h(
"div", "div",
{ className: "row" }, { className: "filtr-container row" },
h( widgetsFor("events").map((event) =>
"div",
{ className: "col-12" },
h( h(
"div", "div",
{ className: "row" }, { className: "filtr-item col-12" },
h( h(
"div", "div",
{ className: "col-12" }, {
h( className: "card hover-shadow border-primary mb-4 p-0",
"ul", },
{ className: "list-inline text-center filter-controls mb-5" },
h(
"li",
{ className: "list-inline-item m-3 text-uppercase active" },
"Alle"
),
h(
"li",
{ className: "list-inline-item m-3 text-uppercase" },
"Anstehend"
),
h(
"li",
{ className: "list-inline-item m-3 text-uppercase" },
"Vergangen"
)
)
)
),
h(
"div",
{ className: "filtr-container" },
widgetsFor("events").map((event) =>
h( h(
"div", "div",
{ className: "mb-2 mt-2 col-12 filtr-item" }, { className: "row g-0" },
h( h(
"div", "div",
{ {
className: className:
"card d-md-table w-100 hover-shadow border-primary ps-0 pe-0 mb-4", "col-md-3 text-center p-4 bg-primary text-white rounded",
}, },
h( h(
"div", "span",
{ { className: "h2" },
className: event.data.date != null && event.data.date != ""
"d-md-table-cell text-center p-4 bg-primary text-white mb-4 mb-md-0 termin-tc rounded", ? DateFormat({
}, date: event.data.date,
h( format: { day: "numeric" },
"span", })
{ className: "h2 d-block" },
event.data.date != null && event.data.date != ""
? DateFormat({
date: event.data.date,
format: { day: "numeric" },
})
: null
),
h(
"span",
{ className: "d-block" },
event.data.date != null && event.data.date != ""
? DateFormat({
date: event.data.date,
format: { month: "short", year: "numeric" },
})
: null
),
event.data.enddate != null && event.data.enddate != ""
? [
h("br"),
"bis " +
DateFormat({
date: event.data.enddate,
format: {
day: "numeric",
month: "short",
year: "numeric",
},
}),
]
: null : null
), ),
h(
"span",
{},
event.data.date != null && event.data.date != ""
? DateFormat({
date: event.data.date,
format: { month: "short", year: "numeric" },
})
: null
),
event.data.enddate != null && event.data.enddate != ""
? [
h("br"),
"bis " +
DateFormat({
date: event.data.enddate,
format: {
day: "numeric",
month: "short",
year: "numeric",
},
}),
]
: null
),
h(
"div",
{ className: "col-md-9" },
h( h(
"div", "div",
{ {
className: className:
"d-md-table-cell px-4 align-middle mb-4 mb-md-0 p-2", "card-body h-100 d-flex flex-column justify-content-around",
}, },
h("p", { className: "h4 mb-0 d-block" }, event.data.title) h("h4", { className: "card-title" }, event.data.title),
), event.data.location
event.data.location ? h(
? h( "div",
"div", {
{ className: "card-text",
className: },
"d-md-table-cell text-end pe-md-4 p-2 align-middle",
},
h(
"p",
{},
h("i", { h("i", {
className: className:
"mdi mdi-map-marker-radius-outline icon-s text-primary me-2", "mdi mdi-map-marker-radius-outline icon-s text-primary me-2",
}), }),
event.data.location event.data.location
) )
) : null
: null )
) )
) )
) )
) )
) )
) ),
) ])
), ),
]; ];
}; };

@ -1,62 +1,44 @@
import { PageHeader } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Section,
} from "./components/index.js";
const FormsPreview = ({ widgetsFor, widgetFor, entry }) => { const FormsPreview = ({ widgetsFor, widgetFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(
"section", Container([
{ className: "section" }, h("h2", { className: "mb-4" }, entry.data.title),
h( ContentJustify([
"div", widgetsFor("files").map((file) =>
{ className: "container" }, h(
h( "div",
"div", {
{ className: "row" }, className: "card border-primary rounded-0 hover-shadow mb-2",
h( },
"div",
{ className: "col-12" },
h("h2", { className: "mb-4" }, entry.data.title)
)
),
h(
"div",
{ className: "row" },
h(
"div",
{ className: "col-12 content" },
widgetsFor("files").map((file) =>
h( h(
"div", "div",
{ className: "container mb-0" }, { className: "card-body mb-0" },
h("h4", { className: "card-title" }, file.data.title),
h( h(
"div", "a",
{ {
className: className:
"card border-primary rounded-0 hover-shadow mb-5", "text-decoration-none btn btn-primary btn-sm mb-0",
}, },
h( h("i", {
"div", className: "mdi mdi-tray-arrow-down me-2",
{ className: "card-body mb-0" }, }),
h("h4", { className: "card-title" }, file.data.title), "Download"
h(
"a",
{
className:
"text-decoration-none btn btn-primary btn-sm mb-0",
},
h("i", {
className: "mdi mdi-tray-arrow-down mb-0 me-2",
}),
"Download"
)
)
) )
) )
), )
widgetFor("body") ),
) widgetFor("body"),
) ]),
) ])
), ),
]; ];
}; };

@ -1,14 +1,12 @@
import { import {
Col12,
Container, Container,
ContentJustify,
PageHeader, PageHeader,
Row,
Section, Section,
} from "./components/index.js"; } from "./components/index.js";
const GanztagPreview = ({ const GanztagPreview = ({
widgetFor, widgetFor,
widgetsFor,
entry, entry,
fields, fields,
collection, collection,
@ -27,98 +25,84 @@ const GanztagPreview = ({
PageHeader(entry), PageHeader(entry),
Section( Section(
Container([ Container([
Row( h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
h(
"div",
{ className: "col-12 mb-4" },
h("img", { className: "img-fluid w-100", src: imageUrl })
)
),
h("h2", {}, entry.data.title), h("h2", {}, entry.data.title),
h( h(
"div", "div",
{ className: "row align-items-center mb-4" }, { className: "row mb-4" },
Col12( h(
Row([ "div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className:
"mdi mdi-calendar-today-outline text-primary icon-md me-2",
}),
h( h(
"div", "div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" }, { className: "text-start" },
h( h("h6", { className: "mb-0 text-uppercase" }, "Zeit"),
"div", h("p", { className: "mb-0" }, entry.data.schedule)
{ className: "d-flex align-items-center" }, )
h("i", { )
className:
"mdi mdi-calendar-today-outline text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0" }, "ZEIT"),
h("p", { className: "mb-0" }, entry.data.schedule)
)
)
),
h(
"div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className: "mdi mdi-timer-sand text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0" }, "DAUER"),
h("p", { className: "mb-0" }, entry.data.duration)
)
)
),
h(
"div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className: "mdi mdi-crowd text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0" }, "KLASSE(N)"),
h("p", { className: "mb-0" }, entry.data.class)
)
)
),
h(
"div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className:
"mdi mdi-map-marker-radius-outline text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0" }, "RAUM"),
h("p", { className: "mb-0" }, entry.data.room)
)
)
),
])
), ),
h( h(
"div", "div",
{ className: "col-12 mt-4" }, { className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h("div", { className: "border-bottom border-primary" }) h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className: "mdi mdi-timer-sand text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0 text-uppercase" }, "Dauer"),
h("p", { className: "mb-0" }, entry.data.duration)
)
)
),
h(
"div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className: "mdi mdi-crowd text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0 text-uppercase" }, "Klassen"),
h("p", { className: "mb-0" }, entry.data.class)
)
)
),
h(
"div",
{ className: "col-lg-3 col-sm-6 mb-3 mb-sm-0" },
h(
"div",
{ className: "d-flex align-items-center" },
h("i", {
className:
"mdi mdi-map-marker-radius-outline text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0 text-uppercase" }, "Raum"),
h("p", { className: "mb-0" }, entry.data.room)
)
)
) )
), ),
Row(h("div", { className: "col-12 content" }, widgetFor("body"))), h("hr", { className: "mb-4" }),
ContentJustify(widgetFor("body")),
]) ])
), ),
]; ];

@ -1,17 +1,13 @@
import { PageHeader } from "./components/index.js"; import { Container, PageHeader, Row } from "./components/index.js";
const KontaktPreview = ({ widgetsFor, entry }) => { const KontaktPreview = ({ widgetsFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( h(
"section", "section",
{ className: "section bg-body-tertiary" }, { className: "section pb-0" },
h( Container(
"div", Row([
{ className: "container" },
h(
"div",
{ className: "row" },
h( h(
"div", "div",
{ className: "col-lg-6 mb-4 mb-lg-0" }, { className: "col-lg-6 mb-4 mb-lg-0" },
@ -88,8 +84,8 @@ const KontaktPreview = ({ widgetsFor, entry }) => {
) )
) )
) )
) ),
) ])
) )
), ),
]; ];

@ -1,25 +1,14 @@
import { PageHeader } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Section,
} from "./components/index.js";
const PagePreview = ({ widgetFor, entry }) => { const PagePreview = ({ widgetFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
h( Section(Container(ContentJustify(widgetFor("body")))),
"section",
{ className: "section" },
h(
"div",
{ className: "container" },
h(
"div",
{ className: "row" },
h(
"div",
{ className: "col-12" },
h("div", { className: "content" }, widgetFor("body"))
)
)
)
),
]; ];
}; };

@ -1,12 +1,17 @@
import { Container, PageHeader, Row, Section } from "./components/index.js"; import {
Container,
ContentJustify,
PageHeader,
Row,
} from "./components/index.js";
const ProjektwochePreview = ({ widgetsFor, widgetFor, entry }) => { const ProjektwochePreview = ({ widgetsFor, widgetFor, entry }) => {
return [ return [
PageHeader(entry), PageHeader(entry),
Section([ h(
Container( "section",
Row(h("div", { className: "col-12 mb-4 content" }, widgetFor("body"))) { className: "section superhaufen" },
), Container(ContentJustify(widgetFor("body"))),
Container( Container(
Row([ Row([
widgetsFor("tiles").map((tile) => widgetsFor("tiles").map((tile) =>
@ -47,8 +52,8 @@ const ProjektwochePreview = ({ widgetsFor, widgetFor, entry }) => {
) )
), ),
]) ])
), )
]), ),
]; ];
}; };

@ -46,26 +46,22 @@ const CardShortcode = {
preview: ({ title, link }) => { preview: ({ title, link }) => {
return h( return h(
"div", "div",
{ className: "container mb-0" }, { className: "card border-primary rounded-0 hover-shadow mb-2" },
h( h(
"div", "div",
{ className: "card border-primary rounded-0 hover-shadow mb-5" }, { className: "card-body mb-0" },
h( h(
"div", "h4",
{ className: "card-body mb-0" }, { className: "card-title" },
h( h("a", { className: "text-decoration-none", href: link }, title)
"h4", ),
{ className: "card-title" }, h(
h("a", { className: "text-decoration-none", href: link }, title) "a",
), {
h( className: "mb-0 btn btn-primary btn-sm text-decoration-none",
"a", href: link,
{ },
className: "mb-0 btn btn-primary btn-sm text-decoration-none", "Mehr anzeigen"
href: link,
},
"Mehr anzeigen"
)
) )
) )
); );

@ -46,27 +46,23 @@ const DownloadShortcode = {
preview: ({ title, link }) => { preview: ({ title, link }) => {
return h( return h(
"div", "div",
{ className: "container mb-0" }, { className: "card border-primary rounded-0 hover-shadow mb-2" },
h( h(
"div", "div",
{ className: "card border-primary rounded-0 hover-shadow mb-5" }, { className: "card-body mb-0" },
h( h(
"div", "h4",
{ className: "card-body mb-0" }, { className: "card-title" },
h( h("a", { className: "text-decoration-none", href: link }, title)
"h4", ),
{ className: "card-title" }, h(
h("a", { className: "text-decoration-none", href: link }, title) "a",
), {
h( className: "mb-0 btn btn-primary btn-sm text-decoration-none",
"a", href: link,
{ },
className: "mb-0 btn btn-primary btn-sm text-decoration-none", h("i", { className: "mdi mdi-tray-arrow-down mb-0 me-2" }),
href: link, "Download"
},
h("i", { className: "mdi mdi-tray-arrow-down mb-0 me-2" }),
"Download"
)
) )
) )
); );

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 KiB