Compare commits

...

11 Commits

Author SHA1 Message Date
9a67c09653 Abiturjahrgang abiturienten-2024 aktualisiert
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 16s
Website Prod/Test / Testumgebung (push) Successful in 8s
2024-09-19 20:52:11 +02:00
aa7c6de313 Refactor charts component (#295)
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 12s
Website Prod/Test / Testumgebung (push) Successful in 8s
Website Pull Request / Pull-Request-Testbuild (pull_request) Successful in 24s
Reviewed-on: #295
2024-09-19 20:26:42 +02:00
c3dbecca67 Abiturjahrgang abiturienten-2024 erstellt
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 16s
Website Prod/Test / Testumgebung (push) Successful in 7s
2024-09-19 18:01:25 +02:00
ad08e27af8 Artikel 10-jahre-junior-ingenieur-akademie-in-halle erstellt
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 14s
Website Prod/Test / Testumgebung (push) Successful in 6s
2024-09-17 14:15:41 +02:00
bd15578077 fix page header
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 17s
Website Prod/Test / Testumgebung (push) Successful in 9s
Website Pull Request / Pull-Request-Testbuild (pull_request) Successful in 30s
2024-09-17 10:14:35 +02:00
2f13e243c5 Remove old AG images
All checks were successful
Website Pull Request / Pull-Request-Testbuild (pull_request) Successful in 22s
Website Prod/Test / Produktivumgebung (push) Successful in 18s
Website Prod/Test / Testumgebung (push) Successful in 7s
2024-09-16 21:42:27 +02:00
f377ec7f25 Umbau Ganztagsbereich (#292)
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 11s
Website Prod/Test / Testumgebung (push) Successful in 6s
- [x] Umbau von Bereich zu Hauptseite mit Kacheln
- [x] Aktualisierung für SJ 2025/2026
- [x] Aktualisierung in CMS-Konfiguration inkl. Vorschau

Reviewed-on: #292
2024-09-16 21:34:24 +02:00
8695df0533 fixes for new hugo versions
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 15s
Website Prod/Test / Testumgebung (push) Successful in 8s
2024-09-15 22:26:56 +02:00
169e0bc31b Einstellungen data-homepage aktualisiert
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 22s
Website Prod/Test / Testumgebung (push) Successful in 9s
Website Pull Request / Pull-Request-Testbuild (pull_request) Successful in 22s
2024-09-13 10:02:03 +02:00
13bf265f8f Einstellungen data-ausblick aktualisiert
All checks were successful
Website Prod/Test / Produktivumgebung (push) Successful in 11s
Website Prod/Test / Testumgebung (push) Successful in 7s
2024-09-13 09:58:15 +02:00
8e9cdc2d0c Einstellungen data-ausblick aktualisiert
Some checks failed
Website Prod/Test / Testumgebung (push) Waiting to run
Website Prod/Test / Produktivumgebung (push) Has been cancelled
2024-09-13 09:57:58 +02:00
67 changed files with 916 additions and 1338 deletions

@ -0,0 +1,86 @@
import * as json from "./abiturdurchschnitte.json";
(() => {
const data = json.abiturdurchschnitte;
var dom = document.getElementById("chart-container");
// @ts-ignore
var chart = echarts.init(dom, null, {
renderer: "canvas",
useDirtyRect: false,
locale: "DE",
});
const option = {
title: {
text: "Abiturdurchschnitte",
},
tooltip: {
trigger: "axis",
},
xAxis: {
data: data.map((item) => item["jahr"]),
},
yAxis: {
min: 1.0,
inverse: true,
},
toolbox: {
right: 10,
feature: {
dataZoom: {
yAxisIndex: "none",
},
restore: {},
saveAsImage: {},
},
},
dataZoom: [
{
startValue: "1992",
},
{
type: "inside",
},
],
visualMap: {
top: 50,
right: 10,
precision: 1,
pieces: [
{
gt: 1.0,
lte: 1.5,
color: "#06511c",
},
{
gt: 1.5,
lte: 2.0,
color: "#0b9834",
},
{
gt: 2.0,
lte: 2.5,
color: "#10df4c",
},
],
outOfRange: {
color: "#999",
},
},
series: {
name: "Abiturdurchschnitt",
type: "line",
data: data.map((item) => item["schnitt"]),
markLine: {
silent: true,
lineStyle: {
color: "#333",
},
data: [1.25, 1.5, 1.75, 2.0, 2.25].map(n => ({ yAxis: n })),
},
},
};
if (option && typeof option === "object") {
chart.setOption(option);
}
window.addEventListener("resize", chart.resize);
})();

@ -0,0 +1,125 @@
import * as json from "./schuelerzahlen.json";
(() => {
const data = json.schuelerzahlen;
var dom = document.getElementById("chart-container");
// @ts-ignore
var chart = echarts.init(dom, null, {
renderer: "canvas",
useDirtyRect: false,
locale: "DE",
});
const option = {
title: {
text: "Schülerzahlen",
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "shadow",
},
formatter: (params) => {
var lines = params.map(
(p) => `<b>${p.seriesName}:</b> ${p.value}${p.seriesName == "Anteil Mädchen" ? "%" : ""}`
);
return lines.join("<br>");
},
},
xAxis: {
data: data.map((item) => item["year"]),
},
yAxis: [
{
min: 0,
inverse: false,
},
{
min: 0,
max: 100,
axisLabel: {
formatter: "{value}%",
},
},
],
toolbox: {
right: 10,
feature: {
dataZoom: {
yAxisIndex: "none",
},
restore: {},
saveAsImage: {},
},
},
dataZoom: [
{
startValue: "1988",
},
{
type: "inside",
},
],
series: [
{
name: "Jungen",
type: "bar",
stack: "total",
color: "#7099dc",
data: data.map((item) => item["all"] - item["girls"]),
markLine: {
silent: true,
lineStyle: {
color: "#333",
},
data: [100, 300, 500].map((n) => ({ yAxis: n })),
},
},
{
name: "Mädchen",
type: "bar",
color: "#ff6a6a",
stack: "total",
data: data.map((item) => item["girls"]),
markLine: {
silent: true,
lineStyle: {
color: "#333",
},
data: [100, 300, 500].map((n) => ({ yAxis: n })),
},
},
{
name: "Insgesamt",
color: "#98e17f",
type: "line",
data: data.map((item) => item["all"]),
lineStyle: {
normal: {
width: 0,
},
},
symbolSize: 0,
markLine: {
silent: true,
lineStyle: {
color: "#333",
},
data: [100, 300, 500].map((n) => ({ yAxis: n })),
},
},
{
name: "Anteil Mädchen",
type: "line",
color: "#4b4b4b",
yAxisIndex: 1,
data: data.map((item) => ((item["girls"] / item["all"]) * 100).toFixed(2)),
},
],
};
if (option && typeof option === "object") {
chart.setOption(option);
}
window.addEventListener("resize", chart.resize);
})();

123
assets/js/echarts-locale.js Normal file

@ -0,0 +1,123 @@
// @ts-ignore
echarts.registerLocale("DE", {
time: {
month: [
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember",
],
monthAbbr: ["Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
dayOfWeek: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
dayOfWeekAbbr: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
},
legend: {
selector: {
all: "Alle",
inverse: "Invertiert",
},
},
toolbox: {
brush: {
title: {
rect: "Box Auswahl",
polygon: "Lasso Auswahl",
lineX: "Horizontale Auswahl",
lineY: "Vertikale Auswahl",
keep: "Bereich Auswahl",
clear: "Auswahl zurücksetzen",
},
},
dataView: {
title: "Daten Ansicht",
lang: ["Daten Ansicht", "Schließen", "Aktualisieren"],
},
dataZoom: {
title: {
zoom: "Zoom",
back: "Zoom zurücksetzen",
},
},
magicType: {
title: {
line: "Zu Liniendiagramm wechseln",
bar: "Zu Balkendiagramm wechseln",
stack: "Stapel",
tiled: "Kachel",
},
},
restore: {
title: "Wiederherstellen",
},
saveAsImage: {
title: "Als Bild speichern",
lang: ["Rechtsklick zum Speichern des Bildes"],
},
},
series: {
typeNames: {
pie: "Tortendiagramm",
bar: "Balkendiagramm",
line: "Liniendiagramm",
scatter: "Streudiagramm",
effectScatter: "Welligkeits-Streudiagramm",
radar: "Radar-Karte",
tree: "Baum",
treemap: "Baumkarte",
boxplot: "Boxplot",
candlestick: "Kerzenständer",
k: "K Liniendiagramm",
heatmap: "Heatmap",
map: "Karte",
parallel: "Parallele Koordinatenkarte",
lines: "Liniendiagramm",
graph: "Beziehungsgrafik",
sankey: "Sankey-Diagramm",
funnel: "Trichterdiagramm",
gauge: "Meßanzeige",
pictorialBar: "Bildlicher Balken",
themeRiver: "Thematische Flusskarte",
sunburst: "Sonnenausbruch",
},
},
aria: {
general: {
withTitle: 'Dies ist ein Diagramm über "{title}"',
withoutTitle: "Dies ist ein Diagramm",
},
series: {
single: {
prefix: "",
withName: " mit Typ {seriesType} namens {seriesName}.",
withoutName: " mit Typ {seriesType}.",
},
multiple: {
prefix: ". Es besteht aus {seriesCount} Serienzählung.",
withName: " Die Serie {seriesId} ist ein {seriesType} welcher {seriesName} darstellt.",
withoutName: " Die {seriesId}-Reihe ist ein {seriesType}.",
separator: {
middle: "",
end: "",
},
},
},
data: {
allData: "Die Daten sind wie folgt: ",
partialData: "Die ersten {displayCnt} Elemente sind: ",
withName: "die Daten für {name} sind {value}",
withoutName: "{value}",
separator: {
middle: ",",
end: ".",
},
},
},
});

@ -1,33 +1,33 @@
(($) => {
'use strict';
"use strict";
// adapt header to height
function adaptHeight () {
var height = $('.top-header').innerHeight();
if ($('header').offset().top > 10) {
$('.top-header').addClass('hide');
$('.navigation').addClass('nav-bg');
$('.navigation').css('margin-top','-'+height+'px');
function adaptHeight() {
var height = $(".top-header").innerHeight();
if ($("header").offset().top > 10) {
$(".top-header").addClass("hide");
$(".navigation").addClass("nav-bg");
$(".navigation").css("margin-top", "-" + height + "px");
} else {
$('.top-header').removeClass('hide');
if ( !$('#top-banner').length) {
$('.navigation').removeClass('nav-bg');
$(".top-header").removeClass("hide");
if (!$("#top-banner").length) {
$(".navigation").removeClass("nav-bg");
}
$('.navigation').css('margin-top','-'+0+'px');
$(".navigation").css("margin-top", "-" + 0 + "px");
}
}
// load scripts
$(window).on('load', function() {
$('.preloader').fadeOut(100);
$(window).on("load", function () {
$(".preloader").fadeOut(100);
adaptHeight();
if ($('#top-banner').length) {
$('.navigation').addClass('nav-bg');
$('.hero-section').addClass('hs-banner');
$('.page-title-section').addClass('pts-banner');
if ($("#top-banner").length) {
$(".navigation").addClass("nav-bg");
$(".hero-section").addClass("hs-banner");
$(".page-title-section").addClass("pts-banner");
} else {
$('.hero-section').removeClass('hs-banner');
$('.page-title-section').removeClass('pts-banner');
$(".hero-section").removeClass("hs-banner");
$(".page-title-section").removeClass("pts-banner");
}
});
@ -35,104 +35,121 @@
$(window).scroll(adaptHeight);
// hero slider
$('.hero-slider').slick({
$(".hero-slider").slick({
autoplay: true,
autoplaySpeed: 5000,
pauseOnFocus: false,
pauseOnHover: true,
infinite: true,
arrows: true,
prevArrow: '<button type=\'button\' class=\'prevArrow\'><svg xmlns="http://www.w3.org/2000/svg" id="mdi-chevron-left" class="arrowIcon" viewBox="0 0 24 24" height="1em" width="1em" fill="currentColor"><path d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" /></svg></button>',
nextArrow: '<button type=\'button\' class=\'nextArrow\'><svg xmlns="http://www.w3.org/2000/svg" id="mdi-chevron-left" class="arrowIcon" viewBox="0 0 24 24" height="1em" width="1em" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"/></svg></button>',
dots: true
prevArrow:
'<button type=\'button\' class=\'prevArrow\'><svg xmlns="http://www.w3.org/2000/svg" id="mdi-chevron-left" class="arrowIcon" viewBox="0 0 24 24" height="1em" width="1em" fill="currentColor"><path d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" /></svg></button>',
nextArrow:
'<button type=\'button\' class=\'nextArrow\'><svg xmlns="http://www.w3.org/2000/svg" id="mdi-chevron-left" class="arrowIcon" viewBox="0 0 24 24" height="1em" width="1em" fill="currentColor"><path xmlns="http://www.w3.org/2000/svg" d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"/></svg></button>',
dots: true,
});
// venobox popup
$(document).ready(function() {
$(document).ready(function () {
// @ts-ignore
new VenoBox({
selector: '.vb-video',
spinner: 'grid'
selector: ".vb-video",
spinner: "grid",
});
// @ts-ignore
new VenoBox({
selector: '.vb-gallery',
selector: ".vb-gallery",
numeration: true,
infinigall: true,
share: true,
shareStyle: 'block',
spinner: 'grid',
shareStyle: "block",
spinner: "grid",
fitView: true,
navTouch: true,
});
});
// filter
$(document).ready(function() {
if ($('.filter-container').length != 0) {
const shuffleInstance = new Shuffle($('.filter-container'), {
itemSelector: '.filter-item',
sizer: '.filter-sizer',
delimiter: ','
$(document).ready(function () {
if ($(".filter-container").length != 0) {
// @ts-ignore
const shuffleInstance = new Shuffle($(".filter-container"), {
itemSelector: ".filter-item",
sizer: ".filter-sizer",
delimiter: ",",
isCentered: true,
});
$('.filter-controls li').on('click', function() {
$('.filter-controls li').removeClass('active');
$(this).addClass('active');
shuffleInstance.filter($(this).data('filter'))
$(".filter-controls li").on("click", function () {
$(".filter-controls li").removeClass("active");
$(this).addClass("active");
shuffleInstance.filter($(this).data("filter"));
});
}
});
// counter
$(window).on('scroll', function() {
var oTop;
if ($('.count').length !== 0) {
oTop = $('.count').offset().top - window.innerHeight;
$(window).on("scroll", function () {
var oTop = 0;
if ($(".count").length !== 0) {
oTop = $(".count").offset().top - window.innerHeight;
}
if ($(window).scrollTop() > oTop) {
$('.count').each(function() {
var $this = $(this), countTo = $this.attr('data-count');
$(".count").each(function () {
var $this = $(this),
countTo = $this.attr("data-count");
$({ countNum: $this.text() }).animate(
{ countNum: countTo },
{
duration: 1000,
easing: 'swing',
step: function() { return $this.text(Math.floor(this.countNum)) },
complete: function() { return $this.text(this.countNum) },
});
easing: "swing",
step: function () {
return $this.text(Math.floor(this.countNum));
},
complete: function () {
return $this.text(this.countNum);
},
}
);
});
}
});
$(window).on('DOMContentLoaded', function() {
if (window.PagefindUI != undefined) {
new window.PagefindUI({
element: "#search",
translations: {
placeholder: "Suchen...",
zero_results: "Leider konnten keine Ergebnisse zu [SEARCH_TERM] gefunden werden",
clear_search: "Löschen"
}
});
$('#pagefind-search').on('shown.bs.modal', function() {
$('.pagefind-ui__search-input').focus();
});
}
$(window).on("DOMContentLoaded", function () {
// @ts-ignore
new PagefindUI({
element: "#search",
translations: {
placeholder: "Suchen...",
zero_results: "Leider konnten keine Ergebnisse zu [SEARCH_TERM] gefunden werden",
clear_search: "Löschen",
},
});
$("#pagefind-search").on("shown.bs.modal", function () {
$(".pagefind-ui__search-input").focus();
});
});
// enable matomo analytics
var _paq = window._paq = window._paq || [];
// @ts-ignore
var _paq = (window._paq = window._paq || []);
_paq.push(["setDoNotTrack", true]);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.cantorgymnasium.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function () {
var u = "https://analytics.cantorgymnasium.de/";
_paq.push(["setTrackerUrl", u + "matomo.php"]);
_paq.push(["setSiteId", "1"]);
var d = document,
g = d.createElement("script"),
s = d.getElementsByTagName("script")[0];
g.async = true;
g.src = u + "matomo.js";
s.parentNode.insertBefore(g, s);
})();
// @ts-ignore
new LazyLoad();
// @ts-ignore
})(jQuery);

11
assets/jsconfig.json Normal file

@ -0,0 +1,11 @@
{
"compilerOptions": {
"checkJs": true,
"resolveJsonModule": true,
"lib": ["ES2015", "DOM"],
"baseUrl": ".",
"paths": {
"*": ["*"]
}
}
}

@ -1,6 +1,5 @@
baseURL: https://cantorgymnasium.de/
title: Georg-Cantor-Gymnasium
paginate: 8
summaryLength: "10"
defaultContentLanguage: de
enableEmoji: true
@ -288,3 +287,5 @@ privacy:
module:
imports:
- path: github.com/hugomods/icons/vendors/mdi
build:
noJSConfigInAssets: true

@ -0,0 +1,79 @@
---
title: Abiturienten 2024
draft: false
image: /media/image.webp
type: abiturienten
---
## Klasse 12/1
|Name|Vorname|
|---|---|
|Aschenbach|Anni|
|Böhme|Ole|
|Dong|Jiangqi Yvonne|
|Geisler|Jannes|
|Hennig|Maris Luca|
|Klein|Johannes|
|Kobitsch-Meyer|Clara Elisabeth|
|Kumm|Tarek Arthur|
|Matschonschek|Emelie|
|Menke|Elisabeth|
|Meurer|Calvin|
|Neuber|Pascal|
|Nölke|Adele|
|Schober|Marleen|
|Unbekannt|Zoe Fienne Jasmin|
|Wolf|Alea Mija|
## Klasse 12/2
|Name|Vorname|
|---|---|
|Bachran|Simon|
|Bielert|Tom|
|Böhme|Nils Christopher|
|Hinneburg|Clara|
|Kaufmann|Pauline|
|Konieczny|Friedrich|
|Kort|Laurens Eriksson|
|Lange|Maximilian|
|Makosch|Moritz|
|Mittler|Pia-Elisa|
|Okoro|Chiamaka Michelle|
|Rockel|Timm|
|Röthling|Thierry|
|Sawaki|Emilia Hellen Lovena|
|Schlurick|Simon Paul|
|Winzer|Dominic Nils|
## Klasse 12/3
|Name|Vorname|
|---|---|
|Boege|Jack|
|Brode|Valentin|
|Fischer|Florian|
|Franke|Johann Theo|
|Jäniche|Florian Nico|
|Kinner|Sophie-Charlotte|
|Kretzschmar|Elias Georg|
|Krümmling|Paul Constantin|
|Landa|Charlotte|
|Lehmann|Ben|
|Lieberknecht|Erik|
|Maznichenko|Rostislav Igorevic|
|Mohr|Philipp|
|Nowak|Mathilda|
|Raschke|Pia Lilith|
|Reisener|Erik|
|Schalk|Bennet|
|Schulemann|Gero|
|Serfling|Aurelia|
|Steding|Fabian|
|Steinhausen|Elias|
|Stiller|Carl Friedrich|
|Zhou|Wilson|

@ -0,0 +1,60 @@
---
title: 10 Jahre Junior-Ingenieur-Akademie in Halle
date: 2024-09-17
draft: true
image: /media/image.webp
author:
- frau-felke
categories:
- Wettbewerbe
- Veranstaltungen
- Informatik/Technik
- Naturwissenschaften
subjects:
- Informatik
- Physik
tags:
- "2024"
- jia
type: post
---
Seit 10 Jahren können Schülerinnen und Schüler unserer Schule in
der 8. und 9. Klasse eine Junior-Ingenieur-Akademie besuchen. In zwei
Wochenstunden beschäftigen sie sich dann mit technischen Aufgaben.
Dabei wird nicht nur der Technikraum der Schule als Lernort genutzt,
sondern auch Partnerunternehmen besucht und an der Hochschule
gelernt.
Das
Georg-Cantor-Gymnasium und das Christian-Wolff-Gymnasium haben vor 10
Jahren den Zuschlag und ein Startkapital von der Telekom-Stiftung für
die Gründung der JIA in Halle erhalten. Am 04. September 2024 wurde
dieses Jubiläum im Rahmen der Veranstaltung zur Aufnahme der neuen
JIA-Schülerinnen der mittlerweile nun 6 Schulen in Halle und
Umgebung gefeiert. Auf dem Gelände der Saline begrüßten die
Schulleiter Dr. Bernd Gorsler und Andreas Slowig Gäste aus
Wissenschaft, Wirtschaft und Politik sowie Vertreter der anderen
JIA-Schulen. Der Staatssekretär aus dem Bildungsministerium, Herr
Böhm, die Projektverantwortliche bei der Telekomstiftung, Frau
Sandra Heidemann und Herr Professor Voß von der Hochschule Merseburg
wandten sich mit Grußworten an die Gäste. Die Schülerteams der
JIA-Schulen durften gleichzeitig einen Konstruktionswettbewerb
bestreiten. Sie mussten in einer Stunde ein Katapult entwickeln, das
ein Halloren-Salzsäckchen besonders weit schleudern kann. Unsere
Schule hat den 4. Platz belegt.
Ehemalige
Schülerinnen und Schüler führten durch das Programm und stellten
ihre Projekte in Vortrag und Speed-Dating-Runden vor. Bei Kaffee und
Kuchen konnten sich die Gäste austauschen und neue Projekte planen.
Insgesamt war es ein sehr interessanter, aktiver und unterhaltsamer
Nachmittag für alle Beteiligten.
Besonders bedanken möchten wir uns bei Clara Joachimi und Denys
Konovalov für die sehr professionelle Moderation, bei Kelechi Okoro
und Nora Klitsche für den Vortrag über den Ungarn-Austausch und die
Präsentation der Projekte beim Speed-Dating. Herr Urbainczyk hat
fleißig fotografiert und uns somit eine lebendige Erinnerung an die
Veranstaltung bewahrt. Frau Professor Hartmann und Frau Schlesier vom
Salinetechnikum haben mit ihrem Team die Veranstaltung hervorragend
geplant und organisiert. Vielen Dank!

@ -11,240 +11,4 @@ aliases:
- /schulchronik/pages/abiturdurchschnitte
---
<script src="https://assets.cantorgymnasium.de/echarts/v5/echarts.min.js"></script>
<div id="chart-container"></div>
<script>
var dom = document.getElementById("chart-container");
echarts.registerLocale("DE", {
time: {
month: [
'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',
'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
],
monthAbbr: [
'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun',
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
],
dayOfWeek: [
'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'
],
dayOfWeekAbbr: [
'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'
]
},
legend: {
selector: {
all: 'Alle',
inverse: 'Invertiert'
}
},
toolbox: {
brush: {
title: {
rect: 'Box Auswahl',
polygon: 'Lasso Auswahl',
lineX: 'Horizontale Auswahl',
lineY: 'Vertikale Auswahl',
keep: 'Bereich Auswahl',
clear: 'Auswahl zurücksetzen'
}
},
dataView: {
title: 'Daten Ansicht',
lang: ['Daten Ansicht', 'Schließen', 'Aktualisieren']
},
dataZoom: {
title: {
zoom: 'Zoom',
back: 'Zoom zurücksetzen'
}
},
magicType: {
title: {
line: 'Zu Liniendiagramm wechseln',
bar: 'Zu Balkendiagramm wechseln',
stack: 'Stapel',
tiled: 'Kachel'
}
},
restore: {
title: 'Wiederherstellen'
},
saveAsImage: {
title: 'Als Bild speichern',
lang: ['Rechtsklick zum Speichern des Bildes']
}
},
series: {
typeNames: {
pie: 'Tortendiagramm',
bar: 'Balkendiagramm',
line: 'Liniendiagramm',
scatter: 'Streudiagramm',
effectScatter: 'Welligkeits-Streudiagramm',
radar: 'Radar-Karte',
tree: 'Baum',
treemap: 'Baumkarte',
boxplot: 'Boxplot',
candlestick: 'Kerzenständer',
k: 'K Liniendiagramm',
heatmap: 'Heatmap',
map: 'Karte',
parallel: 'Parallele Koordinatenkarte',
lines: 'Liniendiagramm',
graph: 'Beziehungsgrafik',
sankey: 'Sankey-Diagramm',
funnel: 'Trichterdiagramm',
gauge: 'Meßanzeige',
pictorialBar: 'Bildlicher Balken',
themeRiver: 'Thematische Flusskarte',
sunburst: 'Sonnenausbruch'
}
},
aria: {
general: {
withTitle: 'Dies ist ein Diagramm über "{title}"',
withoutTitle: 'Dies ist ein Diagramm'
},
series: {
single: {
prefix: '',
withName: ' mit Typ {seriesType} namens {seriesName}.',
withoutName: ' mit Typ {seriesType}.'
},
multiple: {
prefix: '. Es besteht aus {seriesCount} Serienzählung.',
withName: ' Die Serie {seriesId} ist ein {seriesType} welcher {seriesName} darstellt.',
withoutName: ' Die {seriesId}-Reihe ist ein {seriesType}.',
separator: {
middle: '',
end: ''
}
}
},
data: {
allData: 'Die Daten sind wie folgt: ',
partialData: 'Die ersten {displayCnt} Elemente sind: ',
withName: 'die Daten für {name} sind {value}',
withoutName: '{value}',
separator: {
middle: ',',
end: '.'
}
}
}
});
var chart = echarts.init(dom, null, {
renderer: "canvas",
useDirtyRect: false,
locale: "DE"
});
var option;
jQuery.get("/data/abiturdurchschnitte.json",
function (data) {
chart.setOption(
(option = {
title: {
text: "Abiturdurchschnitte",
},
tooltip: {
trigger: "axis"
},
xAxis: {
data: data['abiturdurchschnitte'].map(function (item) {
return item['jahr'];
})
},
yAxis: {
min: 1.0,
inverse: true
},
toolbox: {
right: 10,
feature: {
dataZoom: {
yAxisIndex: "none"
},
restore: {},
saveAsImage: {}
}
},
dataZoom: [
{
startValue: "1992"
},
{
type: "inside"
}
],
visualMap: {
top: 50,
right: 10,
precision: 1,
pieces: [
{
gt: 0.9,
lte: 1.0,
color: "#005da9",
},
{
gt: 1.0,
lte: 1.5,
color: "#0b9834"
},
{
gt: 1.5,
lte: 2.0,
color: "#93CE07"
},
{
gt: 2.0,
lte: 2.5,
color: "#FBDB0F"
},
/*{
gt: 2.0,
lte: 2.5,
color: "#FC7D02"
},*/
],
outOfRange: {
color: "#999"
}
},
series: {
name: "Abiturdurchschnitt",
type: "line",
data: data['abiturdurchschnitte'].map(function (item) {
return item['schnitt'];
}),
markLine: {
silent: true,
lineStyle: {
color: "#333"
},
data: [
{
yAxis: 1.4
},
{
yAxis: 1.7
},
{
yAxis: 2.0
},
{
yAxis: 2.3
}
]
}
}
})
);
}
);
if (option && typeof option === "object") {
chart.setOption(option);
}
window.addEventListener("resize", chart.resize);
</script>
{{< chart id="abiturdurchschnitte" >}}

@ -5,289 +5,5 @@ type: pages
aliases:
- /schulchronik/pages/schülerzahlen
---
<script src="https://assets.cantorgymnasium.de/echarts/v5/echarts.min.js"></script>
<div id="chart-container"></div>
<script>
var dom = document.getElementById("chart-container");
echarts.registerLocale("DE", {
time: {
month: [
'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni',
'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
],
monthAbbr: [
'Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun',
'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'
],
dayOfWeek: [
'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'
],
dayOfWeekAbbr: [
'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'
]
},
legend: {
selector: {
all: 'Alle',
inverse: 'Invertiert'
}
},
toolbox: {
brush: {
title: {
rect: 'Box Auswahl',
polygon: 'Lasso Auswahl',
lineX: 'Horizontale Auswahl',
lineY: 'Vertikale Auswahl',
keep: 'Bereich Auswahl',
clear: 'Auswahl zurücksetzen'
}
},
dataView: {
title: 'Daten Ansicht',
lang: ['Daten Ansicht', 'Schließen', 'Aktualisieren']
},
dataZoom: {
title: {
zoom: 'Zoom',
back: 'Zoom zurücksetzen'
}
},
magicType: {
title: {
line: 'Zu Liniendiagramm wechseln',
bar: 'Zu Balkendiagramm wechseln',
stack: 'Stapel',
tiled: 'Kachel'
}
},
restore: {
title: 'Wiederherstellen'
},
saveAsImage: {
title: 'Als Bild speichern',
lang: ['Rechtsklick zum Speichern des Bildes']
}
},
series: {
typeNames: {
pie: 'Tortendiagramm',
bar: 'Balkendiagramm',
line: 'Liniendiagramm',
scatter: 'Streudiagramm',
effectScatter: 'Welligkeits-Streudiagramm',
radar: 'Radar-Karte',
tree: 'Baum',
treemap: 'Baumkarte',
boxplot: 'Boxplot',
candlestick: 'Kerzenständer',
k: 'K Liniendiagramm',
heatmap: 'Heatmap',
map: 'Karte',
parallel: 'Parallele Koordinatenkarte',
lines: 'Liniendiagramm',
graph: 'Beziehungsgrafik',
sankey: 'Sankey-Diagramm',
funnel: 'Trichterdiagramm',
gauge: 'Meßanzeige',
pictorialBar: 'Bildlicher Balken',
themeRiver: 'Thematische Flusskarte',
sunburst: 'Sonnenausbruch'
}
},
aria: {
general: {
withTitle: 'Dies ist ein Diagramm über "{title}"',
withoutTitle: 'Dies ist ein Diagramm'
},
series: {
single: {
prefix: '',
withName: ' mit Typ {seriesType} namens {seriesName}.',
withoutName: ' mit Typ {seriesType}.'
},
multiple: {
prefix: '. Es besteht aus {seriesCount} Serienzählung.',
withName: ' Die Serie {seriesId} ist ein {seriesType} welcher {seriesName} darstellt.',
withoutName: ' Die {seriesId}-Reihe ist ein {seriesType}.',
separator: {
middle: '',
end: ''
}
}
},
data: {
allData: 'Die Daten sind wie folgt: ',
partialData: 'Die ersten {displayCnt} Elemente sind: ',
withName: 'die Daten für {name} sind {value}',
withoutName: '{value}',
separator: {
middle: ',',
end: '.'
}
}
}
});
var chart = echarts.init(dom, null, {
renderer: "canvas",
useDirtyRect: false,
locale: "DE"
});
var option;
jQuery.get("/data/schuelerzahlen.json",
function (data) {
chart.setOption(
(option = {
title: {
text: "Schülerzahlen",
},
tooltip: {
trigger: 'axis',
axisPointer: {
// Use axis to trigger tooltip
type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
},
formatter: function (params, ticket, callback) {
var output = "";
params.forEach(function(param) {
output = output + "<b>" + param.seriesName + ":</b> " + param.value + (param.seriesName == "Anteil Mädchen" ? "%" : "") + "<br>";
});
return output;
}
},
xAxis: {
data: data['schuelerzahlen'].map(function (item) {
return item['year'];
})
},
yAxis: [{
min: 0,
inverse: false
}, {
min: 0,
max: 100,
axisLabel: {
formatter: '{value}%'
}
}],
toolbox: {
right: 10,
feature: {
dataZoom: {
yAxisIndex: "none"
},
restore: {},
saveAsImage: {}
}
},
dataZoom: [
{
startValue: "1988"
},
{
type: "inside"
}
],
series: [{
name: "Jungen",
type: "bar",
stack: "total",
color: "#7099dc",
data: data['schuelerzahlen'].map(function (item) {
return item['all'] - item['girls'];
}),
markLine: {
silent: true,
lineStyle: {
color: "#333"
},
data: [
{
yAxis: 100
},
{
yAxis: 300
},
{
yAxis: 500
}
]
},
},
{
name: "Mädchen",
type: "bar",
color: "#ff6a6a",
stack: "total",
data: data['schuelerzahlen'].map(function (item) {
return item['girls'];
}),
markLine: {
silent: true,
lineStyle: {
color: "#333"
},
data: [
{
yAxis: 100
},
{
yAxis: 300
},
{
yAxis: 500
}
]
}
},
{
name: "Insgesamt",
color: "#98e17f",
type: "line",
data: data['schuelerzahlen'].map(function (item) {
return item['all'];
}),
lineStyle: {
normal: {
width: 0,
}
},
symbolSize: 0,
markLine: {
silent: true,
lineStyle: {
color: "#333"
},
data: [
{
yAxis: 100
},
{
yAxis: 300
},
{
yAxis: 500
}
],
}
},
{
name: "Anteil Mädchen",
type: "line",
color: "#4b4b4b",
yAxisIndex: 1,
data: data['schuelerzahlen'].map(function (item) {
return (item['girls']/item['all']*100).toFixed(2);;
}),
}
]
})
);
}
);
if (option && typeof option === "object") {
chart.setOption(option);
}
window.addEventListener("resize", chart.resize);
</script>
{{< chart id="schuelerzahlen" >}}

@ -2,4 +2,155 @@
title: Unser Ganztagsbereich
description: Unsere Schule stellt allen Schülern viele Ganztagsangebote zur
Verfügung. Diese sind hier aufgelistet.
tiles:
- title: Allgemeiner Sport und kleine Spiele
image: /media/ganztagsangebote/sport.webp
category: Sport
content: |
Kleine Spiele (z.B. auch Tischtennis) und Grundlagen der Leichtathletik und des Gerätturnens, für alle SchülerInnen und Schüler, also mit mehr oder weniger sportlicher Begabung geeignet
- title: Band
image: /media/ganztagsangebote/band.webp
category: Musik
content: |
Du willst reich und berühmt werden?
Dafür können wir bei der Band AG des GCG zwar nicht garantieren, aber versuchen kann mans ja. Auf alle Fälle bist Du herzlich willkommen.
Voraussetzung ist, dass Du ein (einigermaßen transportables) Instrument spielst oder gern solo singst. Im Moment haben wir circa 10 Mitglieder und sind weiter auf der Suche nach Zuwachs. Wir nehmen Dich gern auf, auch wenn Du Dein Instrument erst auf einem eher grundlegenden Niveau spielst.
Auch die Band AG wird sich mit den anderen musikalischen Angeboten des GCG an kommenden Weihnachtskonzerten und Zeugnisverleihungen der Abiturienten beteiligen. Für weitere Aufritte stehen wir offen, respektieren es aber auch, wenn Du einmal keine Zeit haben solltest. Den Höhepunkt der musikalischen Arbeit bildet die Musikfahrt Anfang Dezember.
Um der Band (einen Namen und) eine inhaltliche Richtung zu geben, sind wir auch auf Deine Kreativität angewiesen. Schau deshalb einfach unverbindlich bei uns rein oder sprich mich (Herrn Schettler) persönlich oder auf digitalem Wege an. Wir sehn uns!
- title: Biologie
image: /media/ganztagsangebote/biologie.webp
category: Naturwissenschaften
content: |
Methoden, Geräte, Präparate, Experimente und vieles mehr
- title: Buchstabenwerkstatt
image: /media/ganztagsangebote/bw.webp
category: Gesellschaft
content: |
Treffpunkt für jene, die mit Buchstaben, Wörtern, Sätzen, Texten arbeiten möchten, entweder gestaltend oder inspirierend. Dazu gehört auch sich zu interessieren, woher die Staben der Buche kommen und wie welche geboren werden. Welcher Keim lässt z.B. einen Wortstamm wachsen, der später zum Schatz wird?
- title: Chor
image: /media/ganztagsangebote/chor.webp
category: Musik
content: |
Herzlich Willkommen zum GCG-Chor!
Du singst gerne? Prima, dann bist Du hier genau richtig.
Du denkst, Du kannst gar nicht singen? Stop!
Jeder kann singen, denn das kann man lernen - genauso wie man rechnen oder schreiben lernen kann.
Der GCG-Chor - das sind etwa 50 Sängerinnen und Sänger, die in den drei Stimmgruppen Sopran, Alt und Bass einmal pro Woche zusammen proben. Bei uns steht der Spaß am Singen im Vordergrund, aber wir haben natürlich auch ein Programm, das wir für zwei Auftritte im Jahr - Weihnachtskonzert und Zeugnisverleihung der Abiturienten - einstudieren müssen. Das Highlight des Schuljahres ist aber die jährlich stattfindende Musikfahrt im Dezember als Vorbereitung zum Weihnachtskonzert!
Wir sind zwar 50 Individuen mit eigenem Charakter, eigenen Stärken und Schwächen, aber gemeinsam bilden wir einen Körper und formen eine gemeinsame Farbe - und die ist bunt, glänzend und leuchtend.
Wir möchten in Dir den Sing-Virus wecken:
Nach einer Schnupperprobe entscheidest Du, ob Du bei uns mitsingen willst.
- title: Chronik
image: /media/ganztagsangebote/chronik.webp
category: Gesellschaft
content: |
**Zurück in die Zukunft: Unser GCG im Wandel der Zeit**
Anno MMV - eine Schar von alten Männern mit langen weißen Bärten machte sich auf, um die Geschichte unseres Gymnasiums mit Federkielen aufzuschreiben??? Nein, nein, wir waren und sind eine bunt zusammengewürfelte Truppe, meist aus Lateinern, die als Schulchronisten alles sammeln, ordnen, was mit unserer Schule zu tun hat und eigene Artikel verfassen, die in unserer nun mehr als 30 dicke Ordner umfassenden analogen Schulchronik gesammelt sind. Seit 2011 sind wir vom Digitalisierungswahn befallen und haben eine eigene Homepage erstellt, die als Teil der Schulhomepage jedem Interessierten die wechselvolle Geschichte des GCG präsentiert.
- title: English Classroom Theatre
image: /media/ganztagsangebote/english-theatre.webp
category: Gesellschaft
content: |
Practicing English in a fun and relaxed way using improvisation and theatre games
- title: Homepage
image: /media/ganztagsangebote/homepage.webp
category: Technik
content: |
Web-Entwicklung, Server-Verwaltung, Artikel schreiben und durch Bilder wühlen - die Verwaltung der Schulhomepage und der dazugehörigen Infrastruktur ist keine leichte Sache. Deshalb suchen wir Verstärkung!
Du interessierst dich für diese Themen und willst bei der Verwaltung der Homepage helfen? Du interessierst dich für Web-Technologien, oder beschäftigst dich sogar schon in der Freizeit damit? Komm in das Technik-Team des GCG und erhalte den exklusiven Einblick in die Technik, welche hinter den hübschen Seiten, Buttons und Animationen steckt!
- title: IJSO
image: /media/wettbewerbe/ijso.webp
category: Naturwissenschaften
content: null
- title: Jugger
image: /media/ganztagsangebote/jugger.webp
category: Sport
content: |
Du hast Spaß an sportlicher Betätigung mit Freunden und möchtest im Team Spielstrategien entwickeln sowie eigene sportliche Grenzen austesten?
- title: Keramik
image: /media/ganztagsangebote/keramik.webp
category: Kunst
content: |
Vorsicht zerbrechlich.
- title: Keyboard
image: /media/ganztagsangebote/kb.webp
category: Musik
content: |
Heute haun wir auf die … (Tasten).
- title: Kunst
image: /media/ganztagsangebote/kunst.webp
category: Kunst
content: |
Zeichne, was dein Herz begehrt: märchenhafte Fantasiebilder, Tiere, Landschaften, Porträts oder schöne alte Häuser. Die Künstlerin Ines Zimmermann hilft dir bei der Umsetzung.
- title: LEGO-Robotik
image: /media/ganztagsangebote/lego.webp
category: Technik
content: |
Bauen, kreativ sein und Ideen zum Leben erwecken - Jede Woche in der Lego-Robotik-AG.
- title: Mathematik
image: /media/ganztagsangebote/mathematik.webp
category: Mathematik
content: |
Im Rahmen des mathematisch-naturwissenschaftlichen Schwerpunkts unserer Schule bieten wir Begabtenförderungsangebote an, in denen Schüler z.B. auf Mathematikolympiaden vorbereitet werden, oder Themengebiete lernen, die noch nicht im normalen Schulprogramm vorkommen.
Auf Empfehlung der Fachlehrer können Schülerinnen und Schüler im Rahmen dieser Arbeitsgemeinschaft zusätzliche Förderung in Mathematik erhalten.
- title: Modelleisenbahn
image: /media/ganztagsangebote/modelleisenbahn.webp
category: Technik
content: |
Bau von Modellen und Anlagen der Eisenbahn und ihrem kulturellen und traditionellen Umfeld
- title: Nawigator
image: /media/ganztagsangebote/nawigator.webp
category: Naturwissenschaften
content: |
Im Rahmen des mathematisch-naturwissenschaftlichen Schwerpunkts unserer Schule bieten wir Begabtenförderungsangebote in Biologie, Chemie und Physik an.
- title: Pen & Paper / Würfel und Spiele Rollenspiel
image: /media/ganztagsangebote/pen-paper.webp
category: Gesellschaft
content: |
Erfindet spannende Geschichten und erlebt selbst erdachte Rollenspiele. Eurer Fantasie sind dabei kaum Grenzen gesetzt.
- title: Schach
image: /media/ganztagsangebote/schach.webp
category: Naturwissenschaften
content: |
Analysieren, Beurteilen, kreativ Denken - Verbessere Deine Spielstärke im Schach!
- title: Schülerzeitung
image: /media/ganztagsangebote/sz.webp
category: Gesellschaft
content: |
In dieser AG können Schüler und Schülerinnen eigene Texte verfassen und ihrem Interesse am Journalismus nachgehen. Die fertigen Ausgaben werden auf Instagram (@schuelerzeitung.gcg) und als analoge Ausgaben in der Lernwerkstatt veröffentlicht. Unter dem Titel der Pinguin, unserem Schulmaskottchen, veröffentlichen wir Texte über Bücher, Spiele oder auch über unser Schulleben. Neue Ideen sind uns jederzeit willkommen.
{{< card title="Website der Schülerzeitung" link="https://schuelerzeitung-gcg.de" >}}
- title: Strongest Student
image: /media/wettbewerbe/strongest-student.webp
category: Sport
content: |
Für die Mädchen und Jungen, die beim absolvieren athletischer Normativen an Bildungseinrichtungen noch lange nicht am Ende sind.
- title: Theater
image: /media/ganztagsangebote/theater.webp
category: Gesellschaft
content: |
In der Theater-AG können Schüler aller Jahrgangsstufen den Spaß am Theaterspielen entdecken und weiterentwickeln. Von klassischen bis hin zu modernen Stücken gibt es ein breites Spektrum, was im Rahmen der AG gespielt werden kann und die Schüler können auch selbst kreativ werden im Schreiben von eigenen Sketchen oder einem ganzen Theaterstück.
- title: Tischtennis
image: /media/ganztagsangebote/tischtennis.webp
category: Sport
content: |
Verbesserung des taktischen Verständnisses bei Spielhandlungen; Vorbereitung Wettbewerbsbetrieb
- title: Volleyball
image: /media/ganztagsangebote/volleyball.webp
category: Sport
content: |
Grundtechniken des Sportspiels erlernen und festigen, Verbesserung des taktischen Verständnisses bei Spielhandlungen
- title: Wasserball
image: /media/ganztagsangebote/wasserball.webp
category: Sport
content: null
---

@ -1,20 +0,0 @@
---
title: Band
draft: false
image: /media/ganztagsangebote/band.webp
category: Musik
duration: flexibel
schedule: Mittwoch, 9. Stunde
class: alle Klassenstufen
room: 212
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Du willst reich und berühmt werden?
Dafür können wir bei der Band AG des GCG zwar nicht garantieren, aber versuchen kann mans ja. Auf alle Fälle bist Du herzlich willkommen.
Voraussetzung ist, dass Du ein (einigermaßen transportables) Instrument spielst oder gern solo singst. Im Moment haben wir circa 10 Mitglieder und sind weiter auf der Suche nach Zuwachs. Wir nehmen Dich gern auf, auch wenn Du Dein Instrument erst auf einem eher grundlegenden Niveau spielst.
Auch die Band AG wird sich mit den anderen musikalischen Angeboten des GCG an kommenden Weihnachtskonzerten und Zeugnisverleihungen der Abiturienten beteiligen. Für weitere Aufritte stehen wir offen, respektieren es aber auch, wenn Du einmal keine Zeit haben solltest. Den Höhepunkt der musikalischen Arbeit bildet die Musikfahrt Anfang Dezember.
Um der Band (einen Namen und) eine inhaltliche Richtung zu geben, sind wir auch auf Deine Kreativität angewiesen. Schau deshalb einfach unverbindlich bei uns rein oder sprich mich (Herrn Schettler) persönlich oder auf digitalem Wege an. Wir sehn uns!

@ -1,14 +0,0 @@
---
title: Biologie
draft: false
description: ""
image: /media/ganztagsangebote/biologie.webp
category: Naturwissenschaften
duration: 1. Stunde (14-tägig)
schedule: Montag, 13:20 bis 14:50 Uhr
class: 5. Klasse
room: "108"
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Methoden, Geräte, Präparate, Experimente und vieles mehr

@ -1,13 +0,0 @@
---
title: Buchstabenwerkstatt
draft: false
image: /media/ganztagsangebote/bw.webp
category: Gesellschaft
duration: nach Vereinbarung
schedule: ab November
class: alle Klassenstufen
room: Bibliothek
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Treffpunkt für jene, die mit Buchstaben, Wörtern, Sätzen, Texten arbeiten möchten, entweder gestaltend oder inspirierend. Dazu gehört auch sich zu interessieren, woher die Staben der Buche kommen und wie welche geboren werden. Welcher Keim lässt z.B. einen Wortstamm wachsen, der später zum Schatz wird?

@ -1,44 +0,0 @@
---
title: CantorTechnik
draft: false
description: ""
image: /media/ganztagsangebote/cantortechnik.webp
category: Technik
duration: 2 Stunden
schedule: "Donnerstag, 8.-9. Stunde "
class: alle Klassenstufen
room: "405"
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
### Über die AG
CantorTechnik ist eine Arbeitsgemeinschaft für in Technik interessierte Schüler/innen am GCG.
Unsere AG ist in Themenbereiche aufgeteilt, die getrennt voneinander arbeiten und sich auf verschiedene Themen konzentrieren.
Dies ist darauf abgezielt, dass an verschiedenen Technikthemen in einer Arbeitsgemeinschaft gearbeitet werden kann und so verschiedenste Bereiche der Technik abgedeckt werden können.
In dieser Arbeitsgemeinschaft kannst du ohne jegliche Kenntnisse in Programmierung verschiedenen Programmiersprachen erlernen und eigene Programme entwickeln.
Du willst lieber eine eigene Website erstellen? Auch das ist bei uns möglich!
Des Weiteren kannst du an der Themengruppe Arduino teilnehmen und mithilfe des Entwicklungsboards Arduino verschiedene elektronische Bauteile am Computer mit der Programmiersprache C++ ansteuern.
Die Verknüpfung dieser beiden Bereiche ergibt Robotik - einen Themenbereich, in dem Roboter auf Basis von Arduino und Raspberry Pi entwickelt, gebaut und programmiert werden können. Diese Roboter bekommen Sensoren, Kameras und andere Datenerfassungsgeräte, wodurch diese zu Multimediarobotern werden. Die Daten werden wiederum in einem z.B. in der Programmiersprache Python geschriebenen Programm verarbeitet und gespeichert.
Doch um dies alles zu machen, brauchen wir Computer. Da wir aber nicht an einen Computerraum angewiesen sein wollen, benutzen wir alle Laptops, die früher in der Schule im Einsatz waren. Um diese Laptops richtig benutzen zu können, reparieren wir diese und installieren darauf das Betriebssystem Debian Linux. So bekommst du in der AG auch die Basiskenntnisse in Sachen Linux und Systemadministration.
### Themenbereiche der AG
- Arduino - Entwicklung von IoT-Geräten mit Arduino.
- WebDev - Erstellung und Verwaltung von Internetseiten
- Programmieren - Programmierung von Apps mit den Programmiersprachen Python, Rust und anderen.
- Robotik - Bau von intelligenten Robotern auf Basis von Arduino und Raspberry Pi.
- Systemadministration/Gerätewartung - Reparatur von alten Schulcomputern, Installation und Konfiguration von Linux und anderes ...
### Teilnahme an der AG
Wir treffen uns jeden Donnerstag von 14.15 bis ca. 16 Uhr im Raum 405.
An der Arbeitsgemeinschaft kann jede/r, unabhängig von Vorkenntnissen im Bereich der Technik teilnehmen.

@ -1,25 +0,0 @@
---
title: Chor
draft: false
image: /media/ganztagsangebote/chor.webp
category: Musik
duration: 45 Minuten
schedule: Mittwoch, 8. / 9. Stunde
class: alle Klassenstufen
room: Aula
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Herzlich Willkommen zum GCG-Chor!
Du singst gerne? Prima, dann bist Du hier genau richtig.
Du denkst, Du kannst gar nicht singen? Stop!
Jeder kann singen, denn das kann man lernen - genauso wie man rechnen oder schreiben lernen kann.
Der GCG-Chor - das sind etwa 50 Sängerinnen und Sänger, die in den drei Stimmgruppen Sopran, Alt und Bass einmal pro Woche zusammen proben. Bei uns steht der Spaß am Singen im Vordergrund, aber wir haben natürlich auch ein Programm, das wir für zwei Auftritte im Jahr - Weihnachtskonzert und Zeugnisverleihung der Abiturienten - einstudieren müssen. Das Highlight des Schuljahres ist aber die jährlich stattfindende Musikfahrt im Dezember als Vorbereitung zum Weihnachtskonzert!
Wir sind zwar 50 Individuen mit eigenem Charakter, eigenen Stärken und Schwächen, aber gemeinsam bilden wir einen Körper und formen eine gemeinsame Farbe - und die ist bunt, glänzend und leuchtend.
Wir möchten in Dir den Sing-Virus wecken:
Nach einer Schnupperprobe entscheidest Du, ob Du bei uns mitsingen willst.

@ -1,14 +0,0 @@
---
title: Chronik
draft: false
description: "Zurück in die Zukunft: Unser GCG im Wandel der Zeit"
image: /media/ganztagsangebote/chronik.webp
category: Gesellschaft
duration: 2. Stunden
schedule: Donnerstag, 9. - 10. Stunde
class: 8. - 12. Klasse
room: "105"
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Anno MMV - eine Schar von alten Männern mit langen weißen Bärten machte sich auf, um die Geschichte unseres Gymnasiums mit Federkielen aufzuschreiben??? Nein, nein, wir waren und sind eine bunt zusammengewürfelte Truppe, meist aus Lateinern, die als Schulchronisten alles sammeln, ordnen, was mit unserer Schule zu tun hat und eigene Artikel verfassen, die in unserer nun mehr als 30 dicke Ordner umfassenden analogen Schulchronik gesammelt sind. Seit 2011 sind wir vom Digitalisierungswahn befallen und haben eine eigene Homepage erstellt, die als Teil der Schulhomepage jedem Interessierten die wechselvolle Geschichte des GCG präsentiert.

@ -1,15 +0,0 @@
---
title: Keramik
draft: false
image: /media/ganztagsangebote/keramik.webp
category: Kunst
duration: 2. Stunden
schedule: Dienstag, 7./8. Stunde
class: 5. - 8. Klasse
room: Keller
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---

@ -1,15 +0,0 @@
---
title: Keyboard
draft: false
image: /media/ganztagsangebote/kb.webp
category: Musik
duration: 1. Stunde
schedule: Mittwoch, 7./8. Stunde
class: alle Klassenstufen
room: 212
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---

@ -1,13 +0,0 @@
---
title: Kunst
draft: false
image: /media/ganztagsangebote/kunst.webp
category: Kunst
duration: nach Vereinbarung
schedule: Freitag, ab 7. Stunde
class: 5. - 7. Klasse
room: 104/Keller
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Zeichne, was dein Herz begehrt: märchenhafte Fantasiebilder, Tiere, Landschaften, Porträts oder schöne alte Häuser. Die Künstlerin Ines Zimmermann hilft dir bei der Umsetzung.

@ -1,13 +0,0 @@
---
title: LEGO-Robotik
draft: false
image: /media/ganztagsangebote/lego.webp
category: Technik
duration: nach Vereinbarung
schedule: Mittwoch, 8. Stunde
class: 6. Klasse
room: DG
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Bauen, kreativ sein und Ideen zum Leben erwecken - Jede Woche in der Lego-Robotik-AG.

@ -1,27 +0,0 @@
---
title: Mathematik
draft: false
description: Förderung für begabte Schülerinnen und Schüler in Mathematik.
image: /media/ganztagsangebote/mathematik.webp
category: Mathematik
duration: 2 Stunden
schedule: Montag/Dienstag, 7.-8. Stunde
class: 5./6. Klasse
room: "307"
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
### Über die AG
Im Rahmen des mathematisch-naturwissenschaftlichen Schwerpunkts unserer Schule bieten wir Begabtenförderungsangebote an, in denen Schüler z.B. auf Mathematikolympiaden vorbereitet werden, oder Themengebiete lernen, die noch nicht im normalen Schulprogramm vorkommen.
Auf Empfehlung der Fachlehrer können Schülerinnen und Schüler im Rahmen dieser Arbeitsgemeinschaft zusätzliche Förderung in Mathematik erhalten.
### Termine
- **5. Klasse:** Dienstag, 7.-8. Stunde
- **6. Klasse:** Montag, 7.-8. Stunde

@ -1,16 +0,0 @@
---
title: Nawigator
draft: false
description: Begabtenförderung in Biologie, Chemie und Physik
image: /media/ganztagsangebote/nawigator.webp
category: Naturwissenschaften
duration: nach Vereinbarung
schedule: ab November
class: alle Klassenstufen
room: Schülerforschungszentrum
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
### Über die AG
Im Rahmen des mathematisch-naturwissenschaftlichen Schwerpunkts unserer Schule bieten wir Begabtenförderungsangebote in Biologie, Chemie und Physik an.

@ -1,26 +0,0 @@
---
title: Pen & Paper / Würfel und Spiele Rollenspiel
draft: false
image: /media/ganztagsangebote/pen-paper.webp
category: Gesellschaft
duration: nach Vereinbarung
schedule: siehe Tabelle
class: alle Klassenstufen
room: siehe Tabelle
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Erfindet spannende Geschichten und erlebt selbst erdachte Rollenspiele. Eurer Fantasie sind dabei kaum Grenzen gesetzt.
### Termine
|Tag|Klassenstufe|Zeit|Raum|
|---|---|---|---|
|Montag|5./6. Klasse|ab 13:30 Uhr|208|
|Dienstag|5./6. Klasse|ab 14:20 Uhr|105|
|Dienstag|8./9. Klasse|ab 17:00 Uhr|online|
|Donnerstag|6. Klasse|ab 14:20 Uhr|103|
|Freitag|6. Klasse|ab 13:20 Uhr|105|
|Freitag|9./10. Klasse|ab 14:05 Uhr|104|
Weitere Termine nach Vereinbarung.

@ -1,13 +0,0 @@
---
title: Schach
draft: false
image: /media/ganztagsangebote/schach.webp
category: Naturwissenschaften
duration: nach Vereinbarung
schedule: ab November
class: alle Klassenstufen
room: "104"
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Analysieren, Beurteilen, kreativ Denken - Verbessere Deine Spielstärke im Schach!

@ -1,17 +0,0 @@
---
title: Schülerzeitung
draft: false
image: /media/ganztagsangebote/sz.webp
category: Gesellschaft
duration: nach Vereinbarung
schedule: nach Vereinbarung
class: alle Klassenstufen
room: nach Vereinbarung
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
In dieser AG können Schüler und Schülerinnen eigene Texte verfassen und ihrem Interesse am Journalismus nachgehen. Die fertigen Ausgaben werden auf Instagram (@schuelerzeitung.gcg) und als analoge Ausgaben in der Lernwerkstatt veröffentlicht. Unter dem Titel der Pinguin, unserem Schulmaskottchen, veröffentlichen wir Texte über Bücher, Spiele oder auch über unser Schulleben. Neue Ideen sind uns jederzeit willkommen.
**Kontakt:**
Anmeldung über [schuelerzeitung@cantor-gymnasium.de](mailto:schuelerzeitung@cantor-gymnasium.de) mit Name, Klasse und Handynummer

@ -1,13 +0,0 @@
---
title: Allgemeiner Sport und kleine Spiele
draft: false
image: /media/ganztagsangebote/sport.webp
category: Sport
duration: 1. Stunde
schedule: Freitag, 7. Stunde
class: 5. - 6. Klasse
room: TTO
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Kleine Spiele (z.B. auch Tischtennis) und Grundlagen der Leichtathletik und des Gerätturnens, für alle SchülerInnen und Schüler, also mit mehr oder weniger sportlicher Begabung geeignet

@ -1,14 +0,0 @@
---
title: Theater
draft: false
description: ""
image: /media/ganztagsangebote/theater.webp
category: Gesellschaft
duration: 2. Stunden
schedule: Dienstag/Freitag 7./8.-9. Stunde
class: alle Klassenstufen
room: Aula
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
In der Theater-AG können Schüler aller Jahrgangsstufen den Spaß am Theaterspielen entdecken und weiterentwickeln. Von klassischen bis hin zu modernen Stücken gibt es ein breites Spektrum, was im Rahmen der AG gespielt werden kann und die Schüler können auch selbst kreativ werden im Schreiben von eigenen Sketchen oder einem ganzen Theaterstück.

@ -1,13 +0,0 @@
---
title: Volleyball
draft: false
image: /media/ganztagsangebote/volleyball.webp
category: Sport
duration: 2. Stunden
schedule: Freitag, 8. - 9. Stunde
class: 6. - 10. Klasse
room: TTO
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---
Grundtechniken des Sportspiels erlernen und festigen, Verbesserung des taktischen Verständnisses bei Spielhandlungen

@ -1,15 +0,0 @@
---
title: Wasserball
draft: false
image: /media/ganztagsangebote/wasserball.webp
category: Sport
duration: 2. Stunden
schedule: Dienstag, 17.00 - 18.30 Uhr
class: 5. - 8. Klasse
room: Schwimmhalle Neustadt
apply_url: https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828
type: ganztagsangebote
---

@ -4,10 +4,13 @@ author:
- herr-berger
image: /media/ausblick.webp
content: >
_09.09.2024 bis 13.09.2024_
_16.09.2024 bis 22.09.2024_
Am Montag und Dienstag tritt erstmals unser diesjähriger Schülerrat zusammen und schmiedet seinen Jahresplan auf dem SR-Training in der Villa Jühling. Zudem lernen sich die alten Hasen und die Neulinge kennen, haben letzte Wahlen durchzuführen und vor allem müssen sie möglichst schnell zu einem erfolgreichen Team zusammenwachsen.
Am Dienstag und Donnerstag besuchen unsere 10. Klassen die Gedenkstätte Opfer der NS-"Euthanasie" in Bernburg.
Nur die Klassensprecher der 10. Klassen leider nicht am SR-Training teilnehmen, da in der kommenden Woche alle drei 10. Klassen auf Klassenfahrt sind. Dort wünschen wir allen viele Erlebnisse und freudige Ausflüge auf der Abschlussklassenfahrt.
Zudem wünschen wir Paul Kaufmann aus der 11. Klasse viel Erfolg auf der Bundesrunde der Chemieolympiade.
Am Samstag, dem 21.09.2024 könne Sie uns auf der Stadtschulmesse in der "Carpe Diem Schule Halle (Saale) Förderschule für Körperbehinderte" in der Murmansker Straße 16 besuchen.

@ -1,17 +1,16 @@
top_banner:
enable: true
text: >
Alle Infos zum Schulbuchverkauf und Schuljahresstart der 5. Klassen befinden
sich auf der [Website-Startseite](https://cantorgymnasium.de/), wie die 6.
bis 12. Klassen in das Schuljahr starten, wird ab Freitag im Vertretungsplan
bekannt gegeben.
Am Samstag, dem 21.09.2024 könne Sie uns auf der Stadtschulmesse in der
"Carpe Diem Schule Halle (Saale) Förderschule für Körperbehinderte" in der
Murmansker Straße 16 06130 Halle besuchen.
color: "#19aa96"
font_color: "#ffffff"
icon: account-school-outline
icon: school-outline
temporarily:
enable: true
start_date: 2024-06-19
end_date: 2024-08-05
start_date: 2024-09-13
end_date: 2024-09-21
slider:
enable: true
bg_image: media/home/banner.webp

@ -1,17 +1,7 @@
{{ define "main" }}
<section class="section">
<div class="container">
{{ partial "filter-controls" . }}
<div class="filter-container row">
{{ range .Data.Pages }}
<div data-groups="{{ .Params.category | urlize }}" class="col-lg-4 col-sm-6 filter-item">
{{ partial "ganztag" . }}
</div>
{{ end }}
<div class="filter-sizer col-1"></div>
</div>
</div>
</section>
<main data-pagefind-body>
{{ partial "tile-modals" . }}
</main>
{{ end }}

@ -1,35 +0,0 @@
{{ define "main" }}
<main data-pagefind-body>
<section class="section">
<div class="container">
<img src="{{ .Params.image | relURL }}" class="img-fluid w-100 mb-4">
<h2 class="mb-4">{{ .Title }}</h2>
<div class="row mb-4">
{{ partial "icon-element" (dict "size" 3 "icon" "calendar-today-outline" "title" "Zeit" "content" .Params.schedule) }}
{{ partial "icon-element" (dict "size" 3 "icon" "timer-sand" "title" "Dauer" "content" .Params.duration) }}
{{ partial "icon-element" (dict "size" 3 "icon" "crowd" "title" "Klassen" "content" .Params.class) }}
{{ partial "icon-element" (dict "size" 3 "icon" "map-marker-radius-outline" "title" "Raum" "content" .Params.room) }}
</div>
<hr class="mb-4">
<div class="content text-justify">
{{ .Content }}
</div>
</div>
</section>
<section class="section pt-0" data-pagefind-ignore="all">
<div class="container">
<h2 class="mb-4">Andere Arbeitsgemeinschaften</h2>
<div class="row">
{{ range partial "data/related" . }}
<div class="col-lg-4 col-sm-6">
{{ partial "ganztag" . }}
</div>
{{ end }}
</div>
</div>
</section>
</main>
{{ end }}

@ -179,10 +179,17 @@
</div>
</div>
<div class="row justify-content-center">
{{ range first (int $data.homepage.ganztagsangebote.number) (where .Site.RegularPages "Type" "ganztagsangebote" | shuffle)}}
<div class="col-lg-4 col-sm-6">
{{ partial "ganztag" . }}
</div>
{{ with .Site.GetPage "/ganztagsangebote/_index.md" }}
{{ range first (int $data.homepage.ganztagsangebote.number) (.Params.tiles | shuffle) }}
<div class="col-lg-4 col-sm-6">
<div class="card border-primary rounded-0 hover-shadow mb-4">
<img class="card-img-top rounded-0" src="{{ .image | relURL }}">
<div class="card-body">
<h4 class="card-title text-truncate">{{ .title }}</h4>
</div>
</div>
</div>
{{ end }}
{{ end }}
</div>
</div>

@ -57,7 +57,7 @@
var marker = L.marker([51.473361, 11.965619]).addTo(map);
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://maps.app.goo.gl/T4ZroWsAdoXM3xdn7">Route</a>').openPopup();
});
</script>
</div>

@ -0,0 +1,47 @@
{{- $imgs := slice }}
{{- $imgParams := slice .Params.image | append .Params.images }}
{{- $resources := .Resources.ByType "image" -}}
{{/* Find featured image resources if the images parameter is empty. */}}
{{- if or (not $imgParams) (eq ($imgParams | len) 0) }}
{{- $featured := $resources.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $resources.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured }}
{{- $imgs = $imgs | append (dict
"Image" .
"RelPermalink" .RelPermalink
"Permalink" .Permalink) }}
{{- end }}
{{- end }}
{{/* Use the first one of site images as the fallback. */}}
{{- if and (not $imgParams) (not $imgs) }}
{{- with site.Params.images }}
{{- $imgParams = first 1 . }}
{{- end }}
{{- end }}
{{/* Parse page's images parameter. */}}
{{- range $imgParams }}
{{- $img := . }}
{{- $url := urls.Parse $img }}
{{- if eq $url.Scheme "" }}
{{/* Internal image. */}}
{{- with $resources.GetMatch $img -}}
{{/* Image resource. */}}
{{- $imgs = $imgs | append (dict
"Image" .
"RelPermalink" .RelPermalink
"Permalink" .Permalink) }}
{{- else }}
{{- $imgs = $imgs | append (dict
"RelPermalink" (relURL $img)
"Permalink" (absURL $img)
) }}
{{- end }}
{{- else }}
{{/* External image */}}
{{- $imgs = $imgs | append (dict
"RelPermalink" $img
"Permalink" $img
) }}
{{- end }}
{{- end }}
{{- return $imgs }}

@ -1,8 +1,18 @@
<ul class="list-inline text-center filter-controls mb-4">
<li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li>
{{ $categories := slice }}
{{ range .Data.Pages }}
{{ $categories = $categories | append .Params.category }}
{{ if ne (len .Data.Pages) 0 }}
{{ range .Data.Pages }}
{{ $categories = $categories | append .Params.category }}
{{ end }}
{{ else }}
{{ range .Params.tiles }}
{{ with .category }}
{{ $categories = $categories | append . }}
{{ end }}
{{ end }}
{{ end }}
{{ if ne (len $categories) 0 }}
<li class="list-inline-item m-3 text-uppercase active" data-filter="all">Alle</li>
{{ end }}
{{ range ( $categories | uniq ) }}
<li class="list-inline-item m-3 text-uppercase" data-filter="{{ . | urlize }}">{{ . | humanize }}</li>

@ -29,8 +29,10 @@
<div class="col-lg-3 col-sm-6 mb-4 mb-md-0 text-sm-start text-center">
<h4 class="text-white mb-4 text-uppercase">Ganztagsangebote</h4>
<ul class="list-unstyled">
{{ 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>
{{ with .Site.GetPage "/ganztagsangebote/_index.md" }}
{{ range first 5 (.Params.tiles | shuffle) }}
<li class="mb-3"><a class="text-white text-opacity-50" href="/ganztagsangebote">{{ .title }}</a></li>
{{ end }}
{{ end }}
</ul>
</div>

@ -51,6 +51,6 @@
};
</script>
{{ partial "opengraph" . }}
{{ partial "twitter" . }}
{{ template "_internal/opengraph.html" . }}
{{ template "_internal/twitter_cards.html" . }}
</head>

@ -1,47 +0,0 @@
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
{{- with $.Params.images -}}
{{- range first 6 . }}<meta property="og:image" data-pagefind-meta="image[content]" content="{{ . | absURL }}" />{{ end -}}
{{- else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}}
<meta property="og:image" data-pagefind-meta="image[content]" content="{{ $featured.Permalink }}"/>
{{- else -}}
{{- with $.Params.image -}}
<meta property="og:image" data-pagefind-meta="image[content]" content="{{ . | absURL }}"/>
{{- else -}}
{{- with $.Site.Params.images }}<meta property="og:image" data-pagefind-meta="image[content]" content="{{ index . 0 | absURL }}"/>{{ end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if .IsPage }}
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
<meta property="article:section" content="{{ .Section }}" />
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
{{- end -}}
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
{{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
{{- with .Params.videos }}{{- range . }}
<meta property="og:video" content="{{ . | absURL }}" />
{{ end }}{{ end }}
{{- /* If it is part of a series, link to related articles */}}
{{- $permalink := .Permalink }}
{{- $siteSeries := .Site.Taxonomies.series }}
{{- if $siteSeries }}
{{ with .Params.series }}{{- range $name := . }}
{{- $series := index $siteSeries ($name | urlize) }}
{{- range $page := first 6 $series.Pages }}
{{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
{{- end }}
{{ end }}{{ end }}
{{- end }}

@ -7,7 +7,9 @@
<li class="list-inline-item h2">{{ partial "icons/icon" (dict "vendor" "mdi" "name" "chevron-double-right" "className" "align-bottom text-white") }}</li>
<li class="list-inline-item text-white h2 font-header" data-pagefind-weight="10">{{ .Title }}</li>
</ul>
<p class="text-white text-opacity-75">{{ .Params.description | markdownify }}</p>
<div class="text-white text-opacity-75">
{{ .Params.description | markdownify }}
</div>
</div>
</div>
</div>

@ -5,14 +5,19 @@
</div>
</div>
<div class="container">
<div class="row">
{{ partial "filter-controls" . }}
<div class="filter-container row">
{{ range .Params.tiles }}
{{ partial "modal" . }}
<div class="col-lg-4 col-sm-6">
<div class="col-lg-4 col-sm-6 filter-item" data-groups="{{ .category | urlize }}">
<div class="card border-primary rounded-0 hover-shadow mb-4">
<div class="container fb-tile-color" style="background-color:{{ .bg_color }};">
<span class="fb-tile-icon" style="color: {{ .font_color }}">{{ partial "mdi" .icon }}</span>
</div>
{{ if and .image (ne .image "/media/image.webp") }}
<img class="card-img-top rounded-0" src="{{ .image | relURL }}">
{{ else }}
<div class="container fb-tile-color" style="background-color:{{ .bg_color }};">
<span class="fb-tile-icon" style="color: {{ .font_color }}">{{ partial "mdi" .icon }}</span>
</div>
{{ end }}
<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>
@ -21,5 +26,6 @@
</div>
{{ end }}
</div>
<div class="filter-sizer col-1"></div>
</div>
</section>

@ -1,29 +0,0 @@
{{- with $.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{ else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ $featured.Permalink }}"/>
{{- else -}}
{{- with $.Params.image -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ . | absURL }}"/>
{{- else -}}
{{- with $.Site.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{ else -}}
<meta name="twitter:card" content="summary"/>
{{- end -}}
{{- end -}}
{{- end -}}
{{- end }}
<meta name="twitter:title" content="{{ .Title }}"/>
<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}"/>
{{ with .Site.Social.twitter -}}
<meta name="twitter:site" content="@{{ . }}"/>
{{ end -}}

@ -27,7 +27,7 @@
<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>
{{ range (getJSON "static/data/abiturdurchschnitte.json").abiturdurchschnitte }}
{{ range (resources.Get "charts/abiturdurchschnitte.json" | transform.Unmarshal).abiturdurchschnitte }}
{{ if eq (string .jahr) $.Title }}<a href="/chronikseiten/abiturdurchschnitte" class="h4 card-text">Abiturdurchschnitt: {{ .schnitt }}</a>{{ end }}
{{ end }}
</div>

@ -0,0 +1,14 @@
{{ with .Get "id" }}
{{ $chartId := . }}
<script src="https://assets.cantorgymnasium.de/echarts/v5/echarts.min.js"></script>
{{ with resources.Get "js/echarts-locale.js" | resources.Minify }}
<script src="{{ .Permalink }}"></script>
{{ end }}
<div id="chart-container"></div>
{{ with resources.Get (print "charts/" $chartId ".js") | js.Build | resources.Minify }}
<script src="{{ .Permalink }}"></script>
{{ end }}
{{ end }}

@ -1,86 +0,0 @@
import { EditorProps, MarkdownProps, ImageProps } from "../props.js";
import { Title, DescriptionText, DraftBoolean } from "./widgets.js";
const GanztagCollection = {
name: "ganztagsangebote",
label: "Ganztag",
label_singular: "Arbeitsgemeinschaft",
description:
"Hier kann die Übersicht der Ganztagsangebote bearbeitet werden.",
icon: "group",
folder: "content/ganztagsangebote",
...EditorProps,
filter: {
field: "type",
value: "ganztagsangebote",
},
summary_fields: ["title", "draft", "category", "schedule", "room"],
fields: [
Title(false),
DraftBoolean,
DescriptionText,
{
name: "image",
label: "Titelbild",
default: "/media/ganztagsangebote/image.webp",
...ImageProps,
required: true,
},
{
name: "category",
label: "Themebereich",
hint: "Verwaltet in den Einstellungen",
widget: "relation",
collection: "settings",
file: "data-categories",
value_field: "ganztag.*",
search_fields: ["ganztag.*"],
display_fields: ["ganztag.*"],
required: true,
},
{
name: "duration",
label: "Dauer",
widget: "string",
required: true,
},
{
name: "schedule",
label: "Tag/Stunden",
widget: "string",
required: true,
},
{
name: "class",
label: "Klassenstufen(n)",
widget: "string",
required: true,
},
{
name: "room",
label: "Raum",
widget: "string",
required: true,
},
{
name: "apply_url",
label: "Anmeldelink",
widget: "hidden",
default: "https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828",
},
{
name: "type",
label: "Typ",
widget: "hidden",
default: "ganztagsangebote",
},
{
name: "body",
label: "Inhalt",
required: false,
...MarkdownProps,
},
],
};
export default GanztagCollection;

@ -241,7 +241,46 @@ const IndexPagesCollection = {
name: "ganztagsangebote-index",
label: "Unser Ganztagsbereich",
file: "content/ganztagsangebote/_index.md",
fields: [Title(false), DescriptionText],
fields: [
Title(false),
DescriptionText,
{
name: "tiles",
label: "Ganztagsangebote",
hint: "Die Vorschau zeigt nur die Karten, NICHT die Inhalte.",
widget: "list",
required: false,
collapsed: true,
fields: [
Title(false),
{
name: "image",
label: "Titelbild",
default: "/media/ganztagsangebote/image.webp",
...ImageProps,
required: true,
},
{
name: "category",
label: "Themebereich",
hint: "Verwaltet in den Einstellungen",
widget: "relation",
collection: "settings",
file: "data-categories",
value_field: "ganztag.*",
search_fields: ["ganztag.*"],
display_fields: ["ganztag.*"],
required: true,
},
{
name: "content",
label: "Inhalt",
required: false,
...MarkdownProps,
},
],
},
],
},
{
name: "projektwoche-index",

@ -4,7 +4,6 @@ import PagesCollection from "./pages.js";
import AuthorCollection from "./author.js";
import BlogCollection from "./blog.js";
import FormsCollection from "./forms.js";
import GanztagCollection from "./ganztag.js";
import WettbewerbeCollection from "./wettbewerbe.js";
import BegabteCollection from "./begabte.js";
import ProjektwocheCollection from "./projektwoche.js";
@ -23,7 +22,6 @@ export {
AuthorCollection,
BlogCollection,
FormsCollection,
GanztagCollection,
WettbewerbeCollection,
BegabteCollection,
ProjektwocheCollection,

@ -376,15 +376,6 @@ const SettingsCollection = {
required: true,
},
Title(false),
{
name: "paginate",
label: "Anzahl der Seitenelemente",
widget: "number",
value_type: "int",
min: 1,
step: 1,
required: true,
},
{
name: "summaryLength",
label: "Länge von Zusammenfassungen (Zeichenanzahl)",

@ -12,7 +12,7 @@ const StatsCollection = {
{
name: "abiturdurchschnitte",
label: "Abiturdurchschnitte",
file: "static/data/abiturdurchschnitte.json",
file: "assets/charts/abiturdurchschnitte.json",
fields: [
{
name: "abiturdurchschnitte",
@ -43,7 +43,7 @@ const StatsCollection = {
{
name: "schuelerzahlen",
label: "Schülerzahlen",
file: "static/data/schuelerzahlen.json",
file: "assets/charts/schuelerzahlen.json",
fields: [
{
name: "schuelerzahlen",

@ -8,7 +8,6 @@ import {
ChronikjahreCollection,
ChronikseitenCollection,
FormsCollection,
GanztagCollection,
IndexPagesCollection,
PagesCollection,
ProjektwocheCollection,
@ -64,7 +63,6 @@ const config = {
AuthorCollection,
BlogCollection,
FormsCollection,
GanztagCollection,
WettbewerbeCollection,
BegabteCollection,
ProjektwocheCollection,

@ -22,7 +22,6 @@
AboutPreview,
BlogPreview,
ContestPreview,
GanztagPreview,
PagePreview,
EventPreview,
AnmeldungPreview,
@ -64,7 +63,6 @@
CMS.registerPreviewTemplate("about-index", AboutPreview);
CMS.registerPreviewTemplate("blog", BlogPreview);
CMS.registerPreviewTemplate("wettbewerbe", ContestPreview);
CMS.registerPreviewTemplate("ganztagsangebote", GanztagPreview);
CMS.registerPreviewTemplate("kontakt", KontaktPreview);
CMS.registerPreviewTemplate("termine", EventPreview);
CMS.registerPreviewTemplate("anmeldung-index", AnmeldungPreview);
@ -75,7 +73,7 @@
CMS.registerPreviewTemplate("forms", FormsPreview);
CMS.registerPreviewTemplate("cantorpreis", CantorpreisPreview);
CMS.registerPreviewTemplate("begabte", ContestPreview);
["projektwoche", "superhaufen"].forEach((page) =>
["projektwoche", "superhaufen", "ganztagsangebote-index"].forEach((page) =>
CMS.registerPreviewTemplate(page, ProjektwochePreview)
);
["abiturienten", "cantorfora"].forEach((page) =>
@ -85,7 +83,6 @@
"blog-index",
"cantorpreis-index",
"forms-index",
"ganztagsangebote-index",
"wettbewerbe-index",
"begabte-index",
"abiturienten-index",
@ -134,7 +131,6 @@
"blog",
"cantorpreis",
"pages",
"ganztagsangebote",
"wettbewerbe",
"begabte",
"projektwoche",

@ -1,111 +0,0 @@
import {
Container,
ContentJustify,
PageHeader,
Section,
} from "./components/index.js";
const GanztagPreview = ({
widgetFor,
entry,
fields,
collection,
}) => {
const imageField = useMemo(() => {
return fields.find((field) => field.name === "image");
}, [fields]);
const imageUrl = useMediaAsset(
entry.data.image,
collection,
imageField,
entry
);
return [
PageHeader(entry),
Section(
Container([
h("img", { className: "img-fluid w-100 mb-4", src: imageUrl }),
h("h2", {}, entry.data.title),
h(
"div",
{ className: "row mb-4" },
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-calendar-today-outline text-primary icon-md me-2",
}),
h(
"div",
{ className: "text-start" },
h("h6", { className: "mb-0 text-uppercase" }, "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 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)
)
)
)
),
h("hr", { className: "mb-4" }),
ContentJustify(widgetFor("body")),
])
),
];
};
export default GanztagPreview;

@ -1,7 +1,6 @@
import AboutPreview from "./about-preview.js";
import BlogPreview from "./blog-preview.js";
import ContestPreview from "./contest-preview.js";
import GanztagPreview from "./ganztag-preview.js";
import PagePreview from "./page-preview.js";
import EventPreview from "./event-preview.js";
import AnmeldungPreview from "./anmeldung-preview.js";
@ -22,7 +21,6 @@ export {
AboutPreview,
BlogPreview,
ContestPreview,
GanztagPreview,
PagePreview,
EventPreview,
AnmeldungPreview,

@ -1,11 +1,7 @@
import {
Container,
ContentJustify,
PageHeader,
Row,
} from "./components/index.js";
import { Container, ContentJustify, PageHeader, Row } from "./components/index.js";
const ProjektwochePreview = ({ widgetsFor, widgetFor, entry }) => {
const ProjektwochePreview = ({ widgetsFor, widgetFor, entry, collection, fields }) => {
const imageField = useMemo(() => fields.find((field) => field.name === "image"), [fields]);
return [
PageHeader(entry),
h(
@ -23,30 +19,27 @@ const ProjektwochePreview = ({ widgetsFor, widgetFor, entry }) => {
{
className: "card border-primary rounded-0 hover-shadow mb-4",
},
h(
"div",
{
className: "container fb-tile-color",
style: { backgroundColor: tile.data.bg_color },
},
h("i", {
className: (tile.data.icon ?? "") + " fb-tile-icon",
style: { color: tile.data.font_color },
})
),
tile.data.image && tile.data.image != "" && tile.data.image != "/media/image.webp"
? h("img", {
className: "card-img-top rounded-0",
src: useMediaAsset(tile.data.image, collection, imageField, entry),
})
: h(
"div",
{
className: "container fb-tile-color",
style: { backgroundColor: tile.data.bg_color },
},
h("i", {
className: (tile.data.icon ?? "") + " fb-tile-icon",
style: { color: tile.data.font_color },
})
),
h(
"div",
{ className: "card-body" },
h(
"h4",
{ className: "card-title text-truncate" },
tile.data.title
),
h(
"button",
{ type: "button", className: "btn btn-primary btn-sm" },
"Mehr anzeigen"
)
h("h4", { className: "card-title text-truncate" }, tile.data.title),
h("button", { type: "button", className: "btn btn-primary btn-sm" }, "Mehr anzeigen")
)
)
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 KiB