Merge branch 'dev' into feat/fachbereiche

This commit is contained in:
2024-01-03 14:38:02 +01:00
69 changed files with 1130 additions and 674 deletions

View File

@ -1,8 +1,8 @@
{{ define "main" }}
<link rel="stylesheet" href="https://unpkg.com/leaflet@^1.7.1/dist/leaflet.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.css" />
<script src="https://unpkg.com/leaflet@^1.7.1/dist/leaflet.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.4/dist/leaflet.min.js"></script>
<main data-pagefind-body>
<section class="section pb-0">

View File

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

View File

@ -1,4 +1,4 @@
<div class="card border-primary rounded-0 hover-shadow mb-2">
<div class="shortcode card border-primary rounded-0 hover-shadow mb-2">
<div class="card-body mb-0">
<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>

View File

@ -49,7 +49,7 @@
<div class="container">
<div class="row">
<div class="col-sm-7 text-sm-start text-center">
<p class="mb-0 text-white text-opacity-50">{{ .Site.Params.copyright | markdownify | emojify }}</p>
<p class="mb-0 text-white text-opacity-50">Copyright &copy; {{ time.Format "2006" now }} {{ .Site.Params.copyright | markdownify | emojify }}</p>
</div>
<div class="col-sm-5 text-sm-end text-center">
<ul class="list-inline">

View File

@ -17,11 +17,16 @@
<link rel="shortcut icon" href="{{ `media/favicon.png` | absURL }}" type="image/x-icon">
<link rel="icon" href="{{ `media/favicon.png` | absURL }}" type="image/x-icon">
{{ range .Site.Params.plugins.head_js }}
<script src="{{ . | absURL }}" type="text/javascript"></script>
{{ end }}
<link href="/pagefind/pagefind-ui.css" rel="stylesheet">
<script src="/pagefind/pagefind-ui.js" type="text/javascript"></script>
<script>
window.addEventListener('DOMContentLoaded', (event) => {
($ => {
$(window).on('DOMContentLoaded', () => {
new PagefindUI({
element: "#search",
translations: {
@ -29,14 +34,14 @@
zero_results: "Leider konnten keine Ergebnisse zu [SEARCH_TERM] gefunden werden",
clear_search: "Löschen"
}
});
});
</script>
});
{{ range .Site.Params.plugins.head_js }}
<script src="{{ . | absURL }}"></script>
{{ end }}
$('#pagefind-search').on('shown.bs.modal', () => {
$('.pagefind-ui__search-input').focus();
});
});
})(jQuery);
</script>
<script>
var _paq = window._paq = window._paq || [];

View File

@ -1,5 +1,5 @@
<div id="{{ md5 .title }}" class="modal fade">
<div class="modal-dialog modal-xl modal-dialog-scrollable modal-dialog-centered" role="document">
<div class="modal-dialog modal-lg modal-dialog-scrollable modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title">{{ .title }}</h3>

View File

@ -7,9 +7,9 @@
</div>
<div class="col-md-9">
<div class="card-body h-100 d-flex flex-column justify-content-around">
<h4 class="card-title">{{ .title }}</h4>
<h4 class="card-title mb-0">{{ .title }}</h4>
{{ with .location }}
<div class="card-text">
<div class="card-text d-flex align-items-center">
<i class="mdi mdi-map-marker-radius-outline icon-s text-primary me-2"></i>{{ . | markdownify }}
</div>
{{ end }}

View File

@ -1,94 +1,65 @@
{{ define "main" }}
{{ range .Params.topics }}
{{ partial "modal" . }}
{{ end }}
{{ if .Params.pretext.enable }}
{{ partial "modal" (dict "title" .Title "content" .Params.pretext.content) }}
{{ end }}
<section class="section" data-pagefind-body>
<!-- TODO: everything -->
<div class="container">
{{ if or .Params.cantorpreisträger (where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten") }}
{{ if or .Params.cantorpreisträger (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) }}
<div class="card-group">
{{ range where (where .Site.RegularPages "Title" .Params.Title ) "Type" "=" "cantorpreis" }}
<div class="card d-flex flex-row flex-wrap">
<div class="flex-shrink-0">
<a href="{{ .Permalink }}"><img src="{{ .Params.Image | relURL }}" class="rounded-circle m-3 object-cover" height="128px" width="128px"></a>
</div>
<a href="{{ .Permalink }}">
<img src="{{ .Params.Image | relURL }}" class="rounded-circle object-cover m-3" width="128px" height="128px">
</a>
<div class="flex-grow card-body min-w-0">
<a href="/cantorpreis"><h3 class="card-title">Cantorpreisträger</h3></a>
<a href="{{ .Permalink }}"><p class="h4 card-text">{{ .Params.name }}</p></a>
<a href="{{ .Permalink }}" class="h4 card-text">{{ .Params.name }}</a>
</div>
</div>
{{ end }}
{{ range where (where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) ) "Type" "=" "abiturienten" }}
{{ range where .Site.RegularPages "Title" (print "Abiturienten " .Params.Title ) }}
<div class="card d-flex flex-row flex-wrap-reverse">
<div class="flex-grow card-body min-w-0">
<a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a>
{{ $abiturdurchschnitte := getJSON "static/data/abiturdurchschnitte.json" }}
{{ range $abiturdurchschnitte.abiturdurchschnitte }}
{{ if eq (string (index . "jahr")) $.Title }}<a href="/chronikseiten/abiturdurchschnitte"><p class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</p></a>{{ end }}
{{ end }}
</div>
<div class="">
<a href="{{ .Permalink }}">
<img src="{{ .Params.Image | relURL }}" class="rounded-circle object-cover m-3" width="128px" height="128px">
</a>
</div>
<a href="{{ .Permalink }}"><h3 class="card-title">{{ .Title }}</h3></a>
{{ range (getJSON "static/data/abiturdurchschnitte.json").abiturdurchschnitte }}
{{ if eq (string .jahr) $.Title }}<a href="/chronikseiten/abiturdurchschnitte" class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</a>{{ end }}
{{ end }}
</div>
<a href="{{ .Permalink }}">
<img src="{{ .Params.Image | relURL }}" class="rounded-circle object-cover m-3" width="128px" height="128px">
</a>
</div>
{{ end }}
{{ end }}
{{ range .Params.topics }}
{{ partial "modal" . }}
</div>
{{ 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 (dict "Title" .Params.Title "Size" (int 200) "ID" (md5 .Title)) }}
{{ else }}
{{ $topics = $topics | append (dict "Title" .Params.Title "Size" (int 200)) }}
{{ end }}
{{ range .Params.topics }}
{{ if .superhaufen.enable }}
{{ $topics = $topics | append (dict "Title" .title "Size" 30 "ID" (.superhaufen.link | urlize) "Superhaufen" true ) }}
{{ else }}
{{ $topics = $topics | append (dict "Title" .title "Size" 30 "ID" (md5 .title)) }}
<div class="kh-parent">
<div class="kh-jahr h1"
{{ if .Params.pretext.enable }}
onclick="$('{{ print `#` (md5 .Title) }}').modal('show')"
{{ end }}>
<span>{{ .Title }}</span>
</div>
{{ $topics := slice }}
{{ range .Params.topics }}
{{ $topics = $topics | append (dict "titleLength" (len .title) "topic" .) }}
{{ end }}
{{ end }}
<script>
WordCloud(
document.getElementById('wc-canvas'),
{
click: function (item) {
if (item[2] != null) {
if (item[3]) {
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 }}").map(obj => {
return [obj.Title, obj.Size, obj.ID ? obj.ID : null, obj.Superhaufen ? true : false]
}),
shrinkToFit: true,
gridSize: 50,
rotateRatio: 0,
shuffle: false,
shape: "square",
ellipticity: 1,
clearCanvas: true
}
);
</script>
{{ .Content }}
</div>
{{ range $id, $topic := sort $topics "titleLength" "desc" }}
<div class="kh h3" data-id="{{ $id }}"
{{ if not $topic.topic.superhaufen.enable }}
onclick="$('#{{ md5 $topic.topic.title }}').modal('show');"
{{ else }}
onclick="window.location = '{{ print (`/superhaufen/` | relURL ) ($topic.topic.superhaufen.link | urlize) }}';"
{{ end }}>
<span>{{ $topic.topic.title | safeHTML }}</span>
</div>
{{ end }}
</div>
</div>
</section>

View File

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

View File

@ -1,4 +1,4 @@
<div class="card border-primary rounded-0 hover-shadow mb-4">
<div class="shortcode card border-primary rounded-0 hover-shadow mb-4">
<div class="card-body mb-0">
<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>

View File

@ -1,4 +1,4 @@
<div class="row">
<div class="shortcode row">
{{ $dir := trim (.Get "dir") "/" }}
{{ with $dir }}
{{ $files := readDir (print "/static/" .) }}

View File

@ -1,3 +1,3 @@
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="shortcode col-lg-3 col-md-4 col-sm-6">
<a class="vb-gallery" data-gall='{{ md5 (.Get "src") }}' href='{{ .Get "src" }}'><img class="lazy img-thumbnail w-100 h-100" style="object-fit: cover;" data-src='{{ .Get "src" }}'></a>
</div>

View File

@ -1,7 +1,7 @@
{{ $dir := (.Get "dir") }}
{{ if $dir }}
<div class="card border-primary rounded-3">
<div class="carousel carousel-dark slide mb-0" data-bs-ride="true" id='slider-{{ md5 $dir }}'>
<div class="shortcode card border-primary rounded-3">
<div class="carousel slide mb-0" data-bs-ride="true" id='slider-{{ md5 $dir }}'>
{{ $images := slice }}
{{ range readDir (print "/static/" $dir) }}
{{ if (lower .Name | findRE "\\.(gif|jpg|jpeg|tiff|png|bmp|webp|avif|jxl)") }}

View File

@ -1,10 +1,10 @@
{{- $pc := .Page.Site.Config.Privacy.YouTube -}}
{{- if not $pc.Disable -}}
{{- $ytHost := cond $pc.PrivacyEnhanced "piped.kavin.rocks" "www.youtube.com" -}}
{{- $id := .Get "id" | default (.Get 0) -}}
{{- $class := .Get "class" | default (.Get 1) -}}
{{- $title := .Get "title" | default "YouTube Video" }}
<div {{ with $class }}class="{{ . }}" {{ else }} style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}>
<iframe src="https://{{ $ytHost }}/embed/{{ $id }}{{ with .Get "autoplay" }}{{ if eq . "true" }}?autoplay=1{{ end }}{{ end }}" {{ if not $class }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}allowfullscreen title="{{ $title }}"></iframe>
</div>
{{ end -}}
{{ $pc := .Page.Site.Config.Privacy.YouTube }}
{{ if not $pc.Disable }}
{{ $ytHost := cond $pc.PrivacyEnhanced "piped.kavin.rocks" "www.youtube.com" }}
{{ $id := .Get "id" | default (.Get 0) }}
{{ $class := .Get "class" | default (.Get 1) }}
{{ $title := .Get "title" | default "YouTube Video" }}
<div {{ with $class }}class="shortcode {{ . }}" {{ else }} style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"{{ end }}>
<iframe src="https://{{ $ytHost }}/embed/{{ $id }}{{ with .Get "autoplay" }}{{ if eq . "true" }}?autoplay=1{{ end }}{{ end }}" {{ if not $class }}style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" {{ end }}allowfullscreen title="{{ $title }}"></iframe>
</div>
{{ end }}