gitea migration

This commit is contained in:
Denys Konovalov 2023-01-25 19:33:28 +01:00
parent 7802501300
commit 988ddc556f
20 changed files with 42 additions and 1647 deletions

@ -1,15 +0,0 @@
image: registry.gitlab.com/pages/hugo/hugo_extended:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
pages:
script:
- hugo --gc --minify
- find public -type f -print0 | xargs -0 gzip -9 -k
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
interruptible: true

@ -113,7 +113,7 @@ menu:
hasChildren: false hasChildren: false
- parent: Schule - parent: Schule
name: Begabtenförderung name: Begabtenförderung
URL: begabtenfoerderung URL: begabte
weight: 10 weight: 10
hasChildren: false hasChildren: false
- weight: 3 - weight: 3

@ -7,7 +7,7 @@ image: ""
category: Naturwissenschaften category: Naturwissenschaften
class: 10 - 12 Klasse class: 10 - 12 Klasse
web_url: null web_url: null
type: begabtenfoerderung type: begabte
--- ---
Die Martin-Luther-Universität Halle-Wittenberge bietet seit dem Wintersemester 2006/07 die Möglichkeit, besonders begabte und leistungsstarke Schülerinnen und Schüler der Stufen 11 und 12 als Frühstudierende an Vorlesungen und Übungen in bestimmten Studienfächern teilnehmen und dort die entsprechenden Leistungsnachweise erwerben zu lassen. Die Martin-Luther-Universität Halle-Wittenberge bietet seit dem Wintersemester 2006/07 die Möglichkeit, besonders begabte und leistungsstarke Schülerinnen und Schüler der Stufen 11 und 12 als Frühstudierende an Vorlesungen und Übungen in bestimmten Studienfächern teilnehmen und dort die entsprechenden Leistungsnachweise erwerben zu lassen.

@ -7,7 +7,7 @@ image: ""
category: fächerübergreifend category: fächerübergreifend
class: 5 - 12 Klasse class: 5 - 12 Klasse
web_url: null web_url: null
type: begabtenfoerderung type: begabte
--- ---
### Auszug aus dem Begabtenförderungskonzept unserer Schule: ### Auszug aus dem Begabtenförderungskonzept unserer Schule:

@ -3,16 +3,16 @@ title: Schülerforschungszentrum
draft: false draft: false
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
description: "" description: ""
image: /media/begabtenfoerderung/sfz.webp image: /media/begabte/sfz.webp
category: Naturwissenschaften category: Naturwissenschaften
class: 5 - 12 Klasse class: 5 - 12 Klasse
web_url: https://sfz-halle.de/ web_url: https://sfz-halle.de/
type: begabtenfoerderung type: begabte
--- ---
Das Schülerforschungszentrum wurde auf Initiative von ehemaligen und aktiven Lehrern der beiden Gymnasien „Georg Cantor“ und „Christian Wolff“ gegründet, um eine individuelle Betreuung von Forschungsarbeiten (meist im Rahmen des Wettbewerbs „Jugend forscht/Schüler experimentieren“) zu gewährleisten. Das Schülerforschungszentrum wurde auf Initiative von ehemaligen und aktiven Lehrern der beiden Gymnasien „Georg Cantor“ und „Christian Wolff“ gegründet, um eine individuelle Betreuung von Forschungsarbeiten (meist im Rahmen des Wettbewerbs „Jugend forscht/Schüler experimentieren“) zu gewährleisten.
{{< download title="Broschüre des SFZ" link="/media/begabtenfoerderung/broschuere_sfz.pdf" >}} {{< download title="Broschüre des SFZ" link="/media/begabte/broschuere_sfz.pdf" >}}

@ -3,11 +3,11 @@ title: Spezialistenlager
draft: false draft: false
bg_image: /media/backgrounds/page-title.webp bg_image: /media/backgrounds/page-title.webp
description: "" description: ""
image: /media/begabtenfoerderung/image.webp image: /media/begabte/image.webp
category: Mathematik category: Mathematik
class: 5 - 12 Klasse class: 5 - 12 Klasse
web_url: null web_url: null
type: begabtenfoerderung type: begabte
--- ---
Im Rahmen der Förderung begabter Schüler wird jährlich am Georg-Cantor-Gymnasium ein Spezialistenlager durchgeführt. Im Rahmen der Förderung begabter Schüler wird jährlich am Georg-Cantor-Gymnasium ein Spezialistenlager durchgeführt.
In der Jugendherberge Frauenstein werden die zukünftigen Teilnehmer der von den besten Mathematiklehrern eine Woche darauf vorbereitet und gelehrt. In der Jugendherberge Frauenstein werden die zukünftigen Teilnehmer der von den besten Mathematiklehrern eine Woche darauf vorbereitet und gelehrt.

@ -2,7 +2,7 @@
{{ if .Params.Image }} {{ if .Params.Image }}
<img class="card-img-top rounded-0" src="{{ .Params.Image | relURL }}" alt="{{ .Title }}"> <img class="card-img-top rounded-0" src="{{ .Params.Image | relURL }}" alt="{{ .Title }}">
{{ else }} {{ else }}
<img class="card-img-top rounded-0" src="/media/begabtenfoerderung/image.webp" alt="{{ .Title }}"> <img class="card-img-top rounded-0" src="/media/begabte/image.webp" alt="{{ .Title }}">
{{ end }} {{ end }}
<div class="card-body"> <div class="card-body">
<ul class="list-inline"> <ul class="list-inline">

@ -29,7 +29,7 @@
<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 mb-5 filtr-item"> <div data-category="{{ .Params.Category | urlize }}" class="col-lg-4 col-sm-6 mb-5 filtr-item">
{{ .Render "begabtenfoerderung" }} {{ .Render "begabte" }}
</div> </div>
{{ end }} {{ end }}
</div> </div>

@ -49,10 +49,10 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
{{ $related := (where .Site.RegularPages "Type" "begabtenfoerderung") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}} {{ $related := (where .Site.RegularPages "Type" "begabte") | intersect (where .Site.Pages ".Title" "!=" .Title) | union (.Site.RegularPages.Related . ) | shuffle | first 3}}
{{ range first 3 $related }} {{ range first 3 $related }}
<div class="col-lg-4 col-sm-6 mb-5"> <div class="col-lg-4 col-sm-6 mb-5">
{{ .Render "begabtenfoerderung"}} {{ .Render "begabte"}}
</div> </div>
{{ end }} {{ end }}
</div> </div>

@ -1,4 +0,0 @@
dev.cantorgymnasium.de
gcg.gitea-pages.cantorgymnasium.de
pages.gcg.gitea-pages.cantorgymnasium.de
pages.pages.gcg.gitea-pages.cantorgymnasium.de

@ -1,37 +0,0 @@
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE image/jpg
AddOutputFilterByType DEFLATE image/png
AddOutputFilterByType DEFLATE image/gif
AddOutputFilterByType DEFLATE image/jpeg
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
<IfModule mod_expires.c>
# Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
</IfModule>
Header Set Cache-Control "max-age=31536000"

@ -1,753 +0,0 @@
backend:
name: gitea
repo: gcg/gcg-website
branch: master
api_root: https://git.cantorgymnasium.de/api/v1
base_url: https://oauth.cantorgymnasium.de
commit_messages:
create: "{{slug}} in {{collection}} erstellt"
update: "{{slug}} in {{collection}} aktualisiert"
delete: "{{slug}} aus {{collection}} gelöscht"
uploadMedia: "{{path}} hochgeladen"
deleteMedia: "{{path}} gelöscht"
local_backend: true
media_folder: "static/media"
public_folder: "/media"
site_url: https://cantorgymnasium.de
display_url: https://cantorgymnasium.de
locale: "de"
show_preview_links: false
collections:
- name: "config"
icon: "settings"
label: "Konfiguration"
description: "Hier können die Basiseinstellungen der Website geändert werden."
editor:
preview: false
media_folder: "static/media"
public_folder: "media"
files:
- name: "homepage-config"
label: "Startseitenkonfiguration"
file: "data/de/homepage.yml"
media_folder: "/static/media/home"
public_folder: "media/home"
format: yml
fields:
- label: "Banner"
name: "top_banner"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Text", name: "text", widget: "string", required: false}
- {label: "Farbe", name: "color", widget: "color", required: false}
- {label: "Schriftfarbe", name: "font_color", widget: "color", required: false}
- {label: "Symbol", name: "icon", widget: "string", required: false, hint: "Liste unter https://fontawesome.com/search"}
- label: "Zeitschaltung"
name: temporarily
widget: "object"
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Startdatum", name: "start_date", widget: "datetime", required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
- {label: "Enddatum", name: "end_date", widget: "datetime", required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
- label: "Karusell"
name: "slider"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "image", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- label: "Elemente"
label_singular: "Element"
name: "slider_item"
widget: "list"
fields:
- {label: "Inhalt", name: "content", widget: "string", required: false}
- label: "Einblendeanimation"
name: "animation_in"
widget: "select"
options: ["left", "right", "up", "down"]
required: false
- label: "Ausblendeanimation"
name: "animation_out"
widget: "select"
options: ["left", "right", "up", "down"]
required: false
- label: "Button"
name: "button"
widget: "object"
required: false
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Bezeichnung", name: "label", widget: "string", required: false}
- {label: "Link", name: "link", widget: "string", required: false}
- label: "Logo-Banner (oben)"
name: "header_logos"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- label: "\"Über\"-Seite"
name: "about"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- {label: "Inhalt", name: "content", widget: "markdown", required: false}
- label: "Button"
name: "button"
widget: "object"
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Bezeichnung", name: "label", widget: "string", required: false}
- {label: "Link", name: "link", widget: "string", required: false}
- label: "Blog"
name: "blog"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string"}
- label: "Erfolge"
name: "success_banner"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Bild", name: "image", widget: "image", required: false}
- label: "Elemente"
name: "feature_item"
widget: "list"
fields:
- {label: "Bezeichnung", name: "name", widget: "string", required: false}
- {label: "Symbol", name: "icon", widget: "string", required: false, hint: "Liste unter https://fontawesome.com/search"}
- {label: "Bild", name: "image", widget: "image", required: false}
- {label: "Inhalt", name: "content", widget: "markdown", required: false}
- label: "Ganztagsangebote"
name: "ganztagsangebote"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- label: "Aktionsbutton"
name: "cta"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- {label: "Untertitel", name: "subtitle", widget: "string", required: false}
- label: "Button"
name: "button"
widget: "object"
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Bezeichnung", name: "label", widget: "string", required: false}
- {label: "Link", name: "link", widget: "string", required: false}
- label: "Informationen"
name: "info"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "image", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- {label: "Inhalt", name: "content", widget: "text", required: false}
- {label: "Video-Link", name: "video_link", widget: "string", required: false}
- label: "Termine"
name: "termine"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- label: "DigitalPakt-Banner"
name: "digitalpakt"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Titel", name: "title", widget: "string", required: false}
- {label: "Bild", name: "image", widget: "image", required: false}
- {label: "Inhalt", name: "content", widget: "markdown", required: false}
- label: "Logo-Banner (unten)"
name: "footer_logos"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- name: "hugo-config"
label: "Website-Konfiguration"
file: "config.yml"
fields:
- {label: "Website-URL", name: "baseURL", widget: "string"}
- {label: "Titel", name: "title", widget: "string"}
- {label: "Elemente je Seite", name: "paginate", widget: "number", value_type: "int"}
- {label: "Lände von Zusammenfassungen", name: "summaryLength", widget: "number", value_type: "int"}
- {label: "Standardsprache in Unterordner", name: "defaultContentLanguageInSubdir", widget: "boolean", required: false}
- {label: "Standardsprache", name: "defaultContentLanguage", widget: "string"}
- {label: "Emoji", name: "enableEmoji", widget: "boolean", required: false}
- {label: "robots.txt", name: "enableRobotsTxt", widget: "boolean", required: false}
- {label: "Zeitzone", name: "timeZone", widget: "string"}
- label: "Markdown-Enstellungen"
name: "markup"
widget: "object"
collapsed: true
summary: '{{fields.defaultMarkdownHandler}}'
fields:
- {label: "standardmäßiger Markdown-Handler", name: "defaultMarkdownHandler", widget: "select", options: ["blackfriday", "goldmark"]}
- label: "Goldmark-Einstellungen"
name: "goldmark"
widget: "object"
fields:
- label: "Renderer-Einstellungen"
name: "renderer"
widget: "object"
fields: [{label: "Unsicheren Inhalt erlauben", name: "unsafe", widget: "boolean", required: false}]
- label: "Einstellungen"
name: "params"
widget: "object"
collapsed: true
fields:
- label: "Plugins"
name: "plugins"
widget: "object"
fields:
- label: "CSS"
name: "css"
widget: "list"
fields:
- {label: "Link", name: "link", widget: "string"}
- label: "JavaScript"
name: "js"
widget: "list"
fields:
- {label: "Link", name: "link", widget: "string"}
- {label: "Logo", name: "logo", widget: "image"}
- {label: "Autor", name: "author", widget: "string"}
- {label: "Adresse", name: "address", widget: "string"}
- {label: "Route (Link)", name: "route_link", widget: "string"}
- {label: "Telefonnummer", name: "mobile", widget: "string"}
- {label: "E-Mail-Adresse", name: "email", widget: "string"}
- {label: "E-Mail-Adresse (UI-Ansicht)", name: "email_pretty", widget: "string"}
- {label: "Beschreibung", name: "description", widget: "string"}
- {label: "Kontakt-Titelleiste", name: "top_header", widget: "boolean"}
- label: "Vorschaubilder"
name: "images"
widget: "list"
required: false
fields:
- label: "Bild-Pfad"
name: "path"
widget: "string"
- {label: "Twitter-Konto", name: "twitter", widget: "string", required: false}
- label: "Ladeanimation"
name: "preloader"
widget: "object"
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- {label: "Logo", name: "preloader", widget: "image"}
- {label: "Ladeanimation", name: "loader", widget: "image"}
- label: "Soz. Netzwerke"
name: "social"
widget: "list"
fields:
- {label: "Bezeichnung", name: "title", widget: "string"}
- {label: "Symbol", name: "icon", widget: "string", hint: "Liste unter https://fontawesome.com/search"}
- {label: "Link", name: "link", widget: "string"}
- label: "Menü"
name: "menu"
widget: "object"
collapsed: true
fields:
- label: "Hauptmenü"
name: "main"
widget: "list"
fields:
- {label: "Titel", name: "name", widget: "string"}
- {label: "Position", name: "weight", widget: "number"}
- {label: "Untermenüs", name: "hasChildren", widget: "boolean", required: false}
- {label: "Link", name: "URL", widget: "string", required: false}
- {label: "Untermenü von", name: "parent", widget: "relation", collection: "config", file: "hugo-config", search_fields: ['menu.main.*.name'], display_fields: ['menu.main.*.name'], value_field: "menu.main.*.name", required: false}
- label: "unteres Menü"
name: "footer"
widget: "list"
fields:
- {label: "Titel", name: "name", widget: "string"}
- {label: "Link", name: "URL", widget: "string"}
- label: "Sprachen"
name: "languages"
widget: "object"
collapsed: true
fields:
- label: "Deutsch"
name: "de"
widget: "object"
fields:
- {label: "Abkürzung", name: "languageName", widget: "string"}
- {label: "Sprachcode", name: "languageCode", widget: "string"}
- {label: "Inhalt-Ordner", name: "contentDir", widget: "string"}
- {label: "Position", name: "weight", widget: "number"}
- {label: "Startseitenbezeichnung", name: "home", widget: "string"}
- {label: "Copyright-Hinweis", name: "copyright", widget: "string"}
- {label: "Impressum-Link", name: "impressumURL", widget: "string"}
- {label: "Datenschutz-Link", name: "dseURL", widget: "string"}
- label: "Privatsphäre"
name: "privacy"
widget: "object"
fields:
- label: "Disqus"
name: "disqus"
widget: "object"
fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
- label: "Google Analytics"
name: "googleAnalytics"
widget: "object"
fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
- label: "Instagram"
name: "instagram"
widget: "object"
fields: [{label: "Deaktivieren", name: "disable", widget: "boolean", required: false}]
- label: "Twitter"
name: "twitter"
widget: "object"
fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}]
- label: "YouTube"
name: "youtube"
widget: "object"
fields: [{label: "Piped-Proxy", name: "privacyEnhanced", widget: "boolean", required: false}]
- label: "Vimeo"
name: "vimeo"
widget: "object"
fields: [{label: "Tracking deaktivieren", name: "enableDNT", widget: "boolean", required: false}]
- name: "index-pages"
icon: "page"
label: "Hauptseiten"
editor:
preview: true
frame: true
files:
- name: "blog-index"
label: "Aktuelles"
file: "content/german/blog/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "about-index"
label: "Über die Schule"
file: "content/german/about/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Bild", name: "image", widget: "image", default: "/media/image.webp", required: false}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- label: "Statistik"
name: "stats"
widget: "object"
collapsed: true
fields:
- {label: "Aktivieren", name: "enable", widget: "boolean", required: false}
- label: "Elemente"
name: "zahlen"
widget: "list"
fields:
- {label: "Bezeichnung", name: "name", widget: "string", required: false}
- {label: "Zahl", name: "count", widget: "number", required: false}
- {label: "Text", name: "body", widget: "markdown"}
- name: "anmeldung-index"
label: "Anmeldung"
file: "content/german/anmeldung/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string", required: true}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- label: "Elemente"
label_singular: "Element"
name: "elements"
widget: "list"
fields:
- {label: "Titel", name: "title", widget: "string", required: true}
- {label: "Text", name: "content", widget: "markdown", required: true}
required: false
- {label: "Text", name: "body", widget: "markdown", required: false}
- name: "cantorpreis-index"
label: "Cantor-Preis"
file: "content/german/cantorpreis/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "contact-index"
label: "Kontakt"
file: "content/german/kontakt/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Text", name: "body", widget: "markdown"}
- name: "event-index"
label: "Termine"
file: "content/german/termine/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- label: Termine
label_singular: "Termin"
name: "events"
widget: "list"
fields:
- {label: "Titel", name: "title", widget: "string", required: true}
- {label: "Datum/Startdatum", name: "date", widget: "datetime", required: true, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"}
- {label: "Enddatum", name: "enddate", widget: "datetime", required: false, date_format: "dd.MM.yyyy", time_format: false, format: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", default: ""}
- {label: "Ort", name: "location", widget: "string", required: true}
- {label: "Beschreibung", name: "summary", widget: "string", required: false}
required: false
- name: "forms-index"
label: "Dokumente und Formulare"
file: "content/german/forms/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "ganztagsangebote-index"
label: "Ganztagsangebote"
file: "content/german/ganztagsangebote/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "wettbewerbe-index"
label: "Wettbewerbe"
file: "content/german/wettbewerbe/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "begabtenfoerderung-index"
label: "Begabtenförderung"
file: "content/german/begabtenfoerderung/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "abiturienten"
label: "Abiturienten"
file: "content/german/abiturienten/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "cantorfora"
label: "Cantorfora"
file: "content/german/cantorfora/_index.md"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Text", name: "body", widget: "markdown", required: false}
- name: "pages"
icon: "page"
label: "Zusatzseiten"
label_singular: "Zusatzseite"
folder: "content/german/pages"
create: true
editor:
preview: true
frame: true
slug: "{{slug}}"
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "pages"}
- {label: "Layout", name: "layout", widget: "hidden", default: "single.html"}
- label: "Aliase"
name: "aliases"
widget: "list"
fields:
- label: "Alias"
name: "alias"
widget: "string"
- {label: "Text", name: "body", widget: "markdown", required: false}
- name: "author"
icon: "user"
label: "Autoren"
label_singular: "Autoren"
folder: "content/german/author"
create: true
slug: "{{slug}}"
editor:
preview: false
media_folder: '/static/media/people'
public_folder: '/media/people'
fields:
- {label: "Name", name: "title", widget: "string"}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
- {label: "Gravatar-E-Mail", name: "email", widget: "string", required: false}
- {label: "Foto", name: "image", widget: "image"}
- label: "Kontaktdaten"
label_singular: " "
name: "social"
widget: "list"
fields:
- {label: "Titel", name: "title", widget: "string", required: false}
- label: "Symbol"
name: "icon"
widget: "select"
options:
- { label: "YouTube", value: "fa-brands fa-youtube" }
- { label: "Twitter", value: "fa-brands fs-twitter" }
- { label: "Pinterest", value: "fa-brands fa-pinterest" }
- { label: "GitHub", value: "fa-brands fa-github" }
- { label: "GitLab", value: "fa-brands fa-gitlab" }
- { label: "Vimeo", value: "fa-brands fa-vimeo" }
- { label: "Instagram", value: "fa-brands fa-instagram" }
- { label: "Facebook", value: "fa-brands fa-facebook" }
- { label: "Linkedin", value: "fa-brands fa-linkedin" }
- { label: "E-Mail", value: "fa-solid fa-at" }
- { label: "TikTok", value: "fa-brands fa-tiktok" }
- { label: "Sonstige", value: "fa-solid fa-share-nodes" }
- {label: "Link", name: "link", widget: "string"}
required: false
- {label: "Beschreibung", name: "body", widget: "markdown"}
- name: "blog"
icon: "news"
label: "Aktuelles"
label_singular: "Blogbeitrag"
folder: "content/german/blog"
filter: {field: "type", value: "post"}
create: true
slug: "{{slug}}"
editor:
preview: true
frame: true
media_folder: '/static/media/blog'
public_folder: '/media/blog'
view_groups:
- label: Drafts
field: draft
sortable_fields:
fields: ['date', 'title']
default:
field: date
direction: Descending
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Datum", name: "date", widget: "datetime", date_format: "dd/MM/yyyy", time_format: false}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", default: "", required: false}
- {label: "Beitragsbild", name: "image", widget: "image", default: "/media/image.webp"}
- label: "Beitragsautor"
name: "author"
widget: "relation"
collection: "author"
search_fields: ["title"]
value_field: "title"
- label: "Kategorien"
name: "categories"
widget: "list"
required: false
fields:
- label: "Kategorie"
name: "category"
widget: "string"
- label: "Tags"
name: "tags"
widget: "list"
required: false
fields:
- label: "Tag"
name: "tag"
widget: "string"
- {label: "Type", name: "type", widget: "hidden", default: "post"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "forms"
icon: "document"
label: "Dokumente"
label_singular: "Dokument"
description: "Hier sind Formulare, Vorlagen und andere Dokumente zu hinterlegen."
folder: "content/german/forms"
filter: {field: "type", value: "forms"}
create: true
slug: "{{slug}}"
editor:
preview: false
media_folder: '/static/media/forms'
public_folder: '/media/forms'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- label: "Dateien"
name: "files"
widget: "list"
required: false
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Datei", name: "link", widget: "file"}
- {label: "Type", name: "type", widget: "hidden", default: "forms"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "cantorpreis"
icon: "award"
label: "Cantor-Preisträger"
label_singular: "Cantor-Preisträger"
folder: "content/german/cantorpreis"
filter: {field: "type", value: "cantorpreis"}
create: true
editor:
preview: false
media_folder: '/static/media/cantorpreis'
public_folder: '/media/cantorpreis'
fields:
- {label: "Jahr", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Beschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/cantorpreis/image.webp", required: false}
- {label: "Name", name: "name", widget: "string"}
- label: "Kontaktdaten/Soz. Netzwerke"
name: "contact"
widget: "list"
fields:
- {label: "Bezeichnung", name: "name", widget: "string"}
- {label: "Symbol", name: "icon", widget: "string", hint: "Liste unter https://fontawesome.com/search"}
- {label: "Link", name: "link", widget: "string"}
- {label: "Type", name: "type", widget: "hidden", default: "cantorpreis"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "ganztagsangebote"
icon: "group"
label: "Ganztagsangebote"
label_singular: "Ganztagsangebot"
folder: "content/german/ganztagsangebote"
filter: {field: "type", value: "ganztagsangebote"}
create: true
editor:
preview: false
media_folder: '/static/media/ganztagsangebote'
public_folder: '/media/ganztagsangebote'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/ganztagsangebote/image.webp", required: false}
- {label: "Themenbereich", name: "category", widget: "string", required: true}
- {label: "Dauer", name: "duration", widget: "string"}
- {label: "Tag/Stunden", name: "weekly", widget: "string"}
- {label: "Klassenstufen", name: "class", widget: "string"}
- {label: "Raum", name: "room", widget: "string"}
- {label: "Anmeldelink", name: "apply_url", widget: "hidden", default: "https://moodle.bildung-lsa.de/gcg/mod/choice/view.php?id=828"}
- {label: "Type", name: "type", widget: "hidden", default: "ganztagsangebote"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "wettbewerbe"
icon: "trophy"
label: "Wettbewerbe"
label_singular: "Wettbewerb"
folder: "content/german/wettbewerbe"
filter: {field: "type", value: "wettbewerbe"}
create: true
editor:
preview: false
media_folder: '/static/media/contests'
public_folder: '/media/contests'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/contests/image.webp", required: false}
- {label: "Fach", name: "category", widget: "string"}
- {label: "Klassenstufen", name: "class", widget: "string"}
- {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "begabtenfoerderung"
icon: "book"
label: "Begabtenförderung"
label_singular: "Begabtenförderung"
folder: "content/german/begabtenfoerderung"
filter: {field: "type", value: "begabtenfoerderung"}
create: true
editor:
preview: false
media_folder: '/static/media/begabtenfoerderung'
public_folder: '/media/begabtenfoerderung'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/begabtenfoerderung/image.webp", required: false}
- {label: "Fach", name: "category", widget: "string"}
- {label: "Klassenstufen", name: "class", widget: "string"}
- {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "begabtenfoerderung"}
- {label: "Text", name: "body", widget: "markdown"}
- name: "schulchronik"
icon: "timeline"
label: "Schulchronik"
label_singular: "Chronikjahr"
folder: "content/german/schulchronik"
filter: {field: "type", value: "schulchronik"}
create: true
media_folder: '/static/media/schulchronik'
public_folder: '/media/schulchronik'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Type", name: "type", widget: "hidden", default: "schulchronik"}
- {label: "Einleitung", name: "pretext", hint: "Jahreszahltext", widget: "markdown", required: false}
- label: "Kreative Haufen"
name: "topics"
widget: "list"
fields:
- {label: "Titel", name: "title", widget: "string", required: true}
- {label: "Element-ID", hint: "Kleingeschriebene Bezeichnung ohne Leer- und Sonderzeichen, darf sich nicht innerhalb einer Seite doppeln", name: "id", widget: "string", required: true}
- {label: "Inhalt", name: "content", widget: "markdown", required: true}
required: false
- {label: "Text", name: "body", widget: "markdown", required: false, default: "{{< load-photoswipe >}}"}
- name: "abiturienten"
icon: "graduation-cap"
label: "Abiturienten"
label_singular: "Abiturjahrgang"
folder: "content/german/abiturienten"
filter: {field: "type", value: "abiturienten"}
create: true
editor:
preview: false
media_folder: '/static/media/abiturienten'
public_folder: '/media/abiturienten'
fields:
- {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Bild", name: "image", widget: "image", default: "/media/abiturienten/image.webp", required: false}
- {label: "Mehrere Bilder", name: "multiple", widget: "boolean", default: false, required: false}
- {label: "Type", name: "type", widget: "hidden", default: "abiturienten"}
- {label: "Text", name: "body", widget: "markdown"}

@ -1,800 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://cantorgymnasium.de/plugins/fontawesome/css/all.min.css">
<title>Static CMS</title>
</head>
<body>
<style>
body {
font-family: sans-serif;
}
</style>
<!-- Include the script that builds the page and powers Static CMS -->
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^1.1.3/dist/static-cms-app.js"></script>
<script>
CMS.init();
var icons = [['home', 'fa fa-house'], ['settings', 'fa fa-gear'], ['user', 'fa fa-user'], ['page', 'fa fa-file'], ['document', 'fa fa-file-lines'], ['news', 'fa fa-newspaper'], ['award', 'fa fa-award'], ['group', 'fa fa-people-group'], ['trophy', 'fa fa-trophy'], ['book', 'fa fa-book'], ['timeline', 'fa fa-timeline'], ['graduation-cap', 'fa fa-graduation-cap'], ['info', 'fa fa-circle-info']];
icons.forEach(icon => {
CMS.registerIcon(icon[0], ({}) => { return(h('i', {"className": icon[1]})); });
});
const CustomPage = () => {
return h('div', {}, 'I am a custom page!');
};
CMS.registerAdditionalLink({
id: 'info',
title: 'Informationen',
data: CustomPage,
options: {
icon: 'info',
},
});
CMS.registerShortcode('gallery', {
label: 'Gallery',
openTag: '{{< ',
closeTag: ' />}}',
separator: ' ',
toProps: args => {
if (args.length > 0) {
var dir = args.find(arg => arg.startsWith('dir='))?.split('=')[1].replaceAll("\"","") ?? '';
return { dir: dir };
}
return { dir: '' };
},
toArgs: ({ dir }) => {
return [`dir=\"${dir}\"`];
},
control: ({ dir, onChange }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
h('b', {"style": {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Gallerie-Ordner: "),
h('input', {
key: 'control-input',
value: dir,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
},
onChange: event => {
onChange({ dir: event.target.value });
},
}));
},
preview: ({ dir }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px", marginBottom: "5px" }},
h('b', {"style": { marginRight: "5px" }}, "Gallerie-Ordner:"),
h('code', {}, dir));
},
});
CMS.registerShortcode('figure', {
label: 'Bild',
openTag: '{{< ',
closeTag: ' >}}',
separator: ' ',
toProps: args => {
if (args.length > 0) {
var src = args.find(arg => arg.startsWith('src='))?.split('=')[1].replaceAll("\"","") ?? '';
return { src };
}
return { dir: '' };
},
toArgs: ({ src }) => {
return [`src=\"${src}\"`];
},
/*control: ({ src, onChange, controlProps: { field, collection, entry } }) => {
const controlID = useUUID();
const handleOnChange = (newSrc) => {
onChange(newSrc);
}
const handleOpenMediaLibrary = useMediaInsert(
src,
{ field, controlID },
handleOnChange,
);
const assetSource = useMediaAsset(src, collection, field, entry);
return h('span', {}, [
h('button', {
key: 'control-button',
onClick: handleOpenMediaLibrary,
}, 'Click to open media library'),
h(
'img',
{
key: 'control-preview',
src: assetSource,
},
'',
),
]);
},*/
control: ({ src, onChange }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "16px", padding: "10px" }},
h('b', {"style": {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Bild-Pfad:"),
h('input', {
key: 'control-input',
value: src,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
},
onChange: event => {
onChange({ src: event.target.value });
},
}));
},
preview: ({ src }) => {
return h('div', {"className": "row", "style": { border: "1px solid #ccc", borderRadius: "16px", padding: "10px" }},
h('b', {"style": { marginRight: "5px" }}, "Gallerie-Ordner:"),
h('code', {}, src));
},
});
CMS.registerShortcode('download', {
label: 'Download-Karte',
openTag: '{{< ',
closeTag: ' >}}',
separator: ' ',
toProps: args => {
if (args.length > 0) {
var title = "";
var link = "";
var linkIndex = args.findIndex(arg => arg.startsWith('link="'));
var titleIndex = args.findIndex(arg => arg.startsWith('title="'));
if (titleIndex + 1 < linkIndex) {
title += args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? '';
for (let i = titleIndex + 1; i < linkIndex; i++) {
title += " " + args[i].replaceAll("\"","") ;
}
} else {
title = args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? ''
}
if (linkIndex + 1 < args.length) {
link += args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? '';
for (let i = linkIndex + 1; i < args.length; i++) {
link += " " + args[i].replaceAll("\"","");
}
} else {
link = args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? ''
}
title.trim();
link.trim();
return { title: title, link: link };
}
return { title: '', link: '' };
},
toArgs: ({ title, link }) => {
return [`title=\"${title}\"`, `link=\"${link}\"`];
},
control: ({ title, link, onChange }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
h('b', {"style": {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Download-Karte:"),
h('input', {
key: 'control-input',
value: title,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "35%", marginLeft: "5px", marginRight: "5px"
},
onChange: event => {
onChange({ title: event.target.value, link: link });
},
}),
h('input', {
key: 'control-input',
value: link,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "35%", marginLeft: "5px", marginRight: "5px"
},
onChange: event => {
onChange({ title: title, link: event.target.value });
},
})
);
},
preview: ({ title, link }) => {
return h('div', {"className": "container mb-0"},
h('div', {"className": "card border-primary rounded-0 hover-shadow mb-5"},
h('div', {"className": "card-body mb-0"},
h('h4', {"className": "card-title"},
h('a', {"className": "text-decoration-none", "href": link}, title),
),
h('a', {"className": "mb-0 btn btn-primary btn-sm text-decoration-none", "href": link}, "Download")
)))},
});
CMS.registerShortcode('card', {
label: 'Link-Karte',
openTag: '{{< ',
closeTag: ' >}}',
separator: ' ',
toProps: args => {
if (args.length > 0) {
var title = "";
var link = "";
var linkIndex = args.findIndex(arg => arg.startsWith('link="'));
var titleIndex = args.findIndex(arg => arg.startsWith('title="'));
if (titleIndex + 1 < linkIndex) {
title += args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? '';
for (let i = titleIndex + 1; i < linkIndex; i++) {
title += " " + args[i].replaceAll("\"","") ;
}
} else {
title = args.find(arg => arg.startsWith('title='))?.split('=')[1].replaceAll("\"","") ?? ''
}
if (linkIndex + 1 < args.length) {
link += args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? '';
for (let i = linkIndex + 1; i < args.length; i++) {
link += " " + args[i].replaceAll("\"","");
}
} else {
link = args.find(arg => arg.startsWith('link='))?.split('=')[1].replaceAll("\"","") ?? ''
}
title.trim();
link.trim();
return { title: title, link: link };
}
return { title: '', link: '' };
},
toArgs: ({ title, link }) => {
return [`title=\"${title}\"`, `link=\"${link}\"`];
},
control: ({ title, link, onChange }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
h('b', {"style": {width: "30%", fontFamily: "sans-serif", margin: "10px"}}, "Link-Karte:"),
h('input', {
key: 'control-input',
value: title,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "40%", marginLeft: "5px", marginRight: "5px"
},
onChange: event => {
onChange({ title: event.target.value, link: link });
},
}),
h('input', {
key: 'control-input',
value: link,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "40%", marginLeft: "5px", marginRight: "5px"
},
onChange: event => {
onChange({ title: title, link: event.target.value });
},
})
);
},
preview: ({ title, link }) => {
return h('div', {"className": "container mb-0"},
h('div', {"className": "card border-primary rounded-0 hover-shadow mb-5"},
h('div', {"className": "card-body mb-0"},
h('h4', {"className": "card-title"},
h('a', {"className": "text-decoration-none", "href": link}, title),
),
h('a', {"className": "mb-0 btn btn-primary btn-sm text-decoration-none", "href": link}, "Mehr anzeigen")
)))},
});
CMS.registerShortcode('youtube', {
label: 'YouTube-Video',
openTag: '{{< ',
closeTag: ' >}}',
separator: ' ',
toProps: args => {
if (args.length > 0) {
return { src: args[0] };
}
return { src: '' };
},
toArgs: ({ src }) => { return [src] },
control: ({ src, onChange }) => {
return h('div', {"className": "row", "style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
h('b', {"style": {fontFamily: "sans-serif", margin: "10px"}}, "YoutTube-Video:"),
h('input', {
key: 'control-input',
value: src,
"style": {
border: "1px solid #ced4da", borderRadius: "8px", padding: "10px", width: "80%"
},
onChange: event => {
onChange({ src: event.target.value });
},
}),
h('div', {"className": "row", "style": {"marginTop": "10px"}},
h(
'iframe',
{
key: 'control-preview',
width: '100%',
height: '360',
src: `https://piped.kavin.rocks/embed/${src}`,
style: { borderRadius: "8px" }
},
'',
)
));
},
preview: ({ src }) => {
return h(
'span',
{},
h(
'iframe',
{
width: '420',
height: '315',
src: `https://piped.kavin.rocks/embed/${src}`,
},
'',
),
);
},
});
CMS.registerShortcode('load-photoswipe', {
label: 'Gallerie-Servicemodul',
openTag: '{{< ',
closeTag: ' >}}',
separator: '',
control: () => {
return h('div', {"style": { border: "1px solid #868686", borderRadius: "8px", padding: "10px" }},
h('b', {"style": {fontFamily: "sans-serif", margin: "10px"}}, "Gallerie-Servicemodul"));
},
});
</script>
<script>
const CategoriesControl = ({ label, value, field, onChange }) => {
const separator = useMemo(() => field.separator ?? ', ', [field.separator]);
const handleChange = useCallback((e) => {
onChange(e.target.value.split(separator).map(e => e.trim()));
}, [separator, onChange]);
return h('div', {},
h('label', { for: 'inputId' }, label),
h('input', {
id: 'inputId',
type: 'text',
value: value ? value.join(separator) : '',
onChange: this.handleChange,
})
);
};
const CategoriesPreview = ({ value }) => {
return h(
'ul',
{},
value.map(function (val, index) {
return h('li', { key: index }, val);
}),
);
};
const schema = {
properties: {
separator: { type: 'string' },
},
};
CMS.registerWidget('categories', CategoriesControl, CategoriesPreview, schema);
</script>
<script>
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/bootstrap/bootstrap.min.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/slick/slick.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/animate/animate.min.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/venobox/venobox.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/fontawesome/css/all.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/plugins/fira/fira.css");
CMS.registerPreviewStyle("https://cantorgymnasium.de/scss/style.css");
</script>
<script>
var ChronikPreview = ({widgetFor, widgetsFor, entry, document, window }) => {
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {"id": "sc-root"},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Schulchronik")),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title)
)
)
)
),
h('section', {"className": "section-sm"},
h('div', {"className": "container"},
h('div', {"className": "row"},
h('div', {"className": "col-12 mb-4 content"},
widgetsFor('topics').map(function(i, index) {
return h('div', {"id": i.data.id, "className": "modal"},
h('div', {"className": "modal-dialog modal-lg", "role": "document"},
h('div', {"className": "modal-content"},
h('div', {"className": "modal-header"},
h('h5', {"className": "modal-title"}, i.data.title),
h('button', {"className": "close", "type": "button", "dataDismiss": "modal", "ariaLabel": "Close"},
h('span', {"ariaHidden": "true"}, '\u{00d7}')
)
),
h('div', {"className": "modal-body"},
h('div', {"className": "content"}, i.content)
)
)
)
);
}),
entry.data.pretext != "" && entry.data.pretext != null ? h('div', {"id": "pretext", "className": "modal"},
h('div', {"className": "modal-dialog modal-lg", "role": "document"},
h('div', {"className": "modal-content"},
h('div', {"className": "modal-header"},
h('h5', {"className": "modal-title"}, entry.data.title),
h('button', {"className": "close", "type": "button", "dataDismiss": "modal", "ariaLabel": "Close"},
h('span', {"ariaHidden": "true"}, '\u{00d7}')
)
),
h('div', {"className": "modal-body"},
h('div', {"className": "content"}, widgetFor('pretext'))
)
)
)
) : null,
h('div', {"id": "wc-canvas"}),
() => {
var topics = [[entry.data.title, 100, "pretext"]];
widgetsFor('topics').map(function(i, index) {
topics.push([i.data.title, 40, i.data.id]);
});
var script = document.createElement('script');
script.src = "https://cantorgymnasium.de/plugins/wordcloud/wordcloud2.min.js";
var div = document.getElementById('sc-root');
div.appendChild(script);
WordCloud(
document.getElementById('wc-canvas'),
{
click: function (item) {
if (item[1] != 100 || (item[1] == 100 && item[2] == "pretext")) {
$('#' + item[2]).modal('show');
}
},
color: function (word, weight) {
return (weight === 100) ? '#ffbc3b' : '#1a1a37';
},
fontFamily: 'Fira Sans, serif',
fontWeight: 800,
list: topics,
shrinkToFit: true,
gridSize: 25,
rotateRatio: 0,
}
);
},
widgetFor('body')
)
)
)
)
);
};
CMS.registerPreviewTemplate("schulchronik", ChronikPreview);
</script>
<script>
var PostPreviewContent = ({widgetFor, entry}) => {
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title)
),
h('p', {"className": "text-lighten"}, entry.data.description
)
)
)
),
h('section', {"className": "section-sm"},
h('div', {"className": "container"},
h('div', {"className": "row"},
h('div', {"className": "col-12 mb-4"},
h('div', {"className": "content"}, widgetFor('body'))
)
)
)
)
);
};
CMS.registerPreviewTemplate("abiturienten", PostPreviewContent);
CMS.registerPreviewTemplate("cantorfora", PostPreviewContent);
CMS.registerPreviewTemplate("contact-index", PostPreviewContent);
CMS.registerPreviewTemplate("pages", PostPreviewContent);
</script>
<script>
var AnmeldungPreviewContent = ({widgetsFor, widgetFor, entry}) => {
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title)
),
h('p', {"className": "text-lighten"}, entry.data.description
)
)
)
),
h('section', {"className": "section-sm"},
h('div', {"className": "container"},
h('div', {"className": "row mb-5"},
h('div', {"className": "col-md-6 content"},
widgetFor('body')
)
),
h('div', {"className": "row"},
widgetsFor('elements').map(function(element, index) {
return h('div', {"className": "col-lg-4 col-sm-6 mb-4"},
h('div', {"className": "card rounded-0 hover-shadow border-top-0 border-left-0 border-right-0"},
h('div', {"className": "card-body"},
h('h4', {"className": "card-title mb-3"},
element.data.title
),
h('div', {"className": "content"},
element.widgets.content
)
)
)
);
})
)
)
),
);
};
CMS.registerPreviewTemplate("anmeldung-index", AnmeldungPreviewContent);
</script>
<script>
var EventPreview = ({widgetsFor, entry}) => {
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "row"},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")
),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})
),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title
)
),
h('p', {"className": "text-lighten"}, entry.data.description)
)
)
)
),
h('section', {"className": "section"},
h('div', {"className": "container"},
h('div', {"className": "row"},
h('div', {"className": "col-12 "},
h('ul', {"className": "list-unstyled"},
widgetsFor('events').map(function(event, index) {
return h('li', {"className": "d-md-table mb-4 w-100 border-bottom hover-shadow"},
h('div', {"className": "d-md-table-cell text-center p-4 bg-primary text-white mb-4 mb-md-0 termin-tc"}, event.data.date != null && event.data.date != "" ?
h('span', {"className": "h2 d-block"}, new Intl.DateTimeFormat('de-De', { day: 'numeric'}).format(new Date(event.data.date))) : "",
event.data.date != null && event.data.date != "" ? Intl.DateTimeFormat('de-De', { month: 'short', year: 'numeric' }).format(new Date(event.data.date)) : ""
),
h('div', {"className": "d-md-table-cell px-4 vertical-alighn-middle mb-4 mb-md-0"},
h('p', {"className": "h4 mb-3 d-block"}, event.data.title),
h('p', {"className": "mb-0"}, event.data.summary)
),
h('div', {"className": "d-md-table-cell text-right pr-0 pr-md-4"},
h('p', {},
h('i', {"className": "fa-solid fa-location-dot text-primary mr-2"}),
event.data.location
)
)
);
})
)
)
)
)
)
);
};
CMS.registerPreviewTemplate("event-index", EventPreview);
</script>
<script>
var PagePreview = ({widgetFor, entry}) => {
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "row"},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")
),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})
),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title
)
),
h('p', {"className": "text-lighten"}, entry.data.description)
)
)
)
)
);
};
CMS.registerPreviewTemplate("blog-index", PagePreview);
CMS.registerPreviewTemplate("cantorpreis-index", PagePreview);
CMS.registerPreviewTemplate("forms-index", PagePreview);
CMS.registerPreviewTemplate("ganztagsangebote-index", PagePreview);
CMS.registerPreviewTemplate("wettbewerbe-index", PagePreview);
CMS.registerPreviewTemplate("begabtenfoerderung-index", PagePreview);
</script>
<script>
var PagePreviewImage = ({ widgetFor, getAsset, entry}) => {
const [imageUrl, setImageUrl] = useState('');
const image = useMemo(() => entry.data.image, [entry.data.image]);
useEffect(() => {
let alive = true;
const loadImage = async () => {
const imageAsset = await getAsset(image);
if (alive) {
setImageUrl(imageAsset.toString());
}
};
loadImage();
return () => {
alive = false;
};
}, [image]);
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "row"},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")
),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})
),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title
)
),
h('p', {"className": "text-lighten"}, entry.data.description
))
)
)
),
h('section', {"className": "section-sm"},
h('div', {"className": "container"},
h('div', {"className": "row"},
h('div', {"className": "col-12 mb-4"},
h('img', {"className": "img-fluid w-100 mb-4", src: imageUrl}),
widgetFor('body'))
)
)
)
);
};
CMS.registerPreviewTemplate("blog", PagePreviewImage);
</script>
<script>
var AboutPreview = ({ widgetFor, widgetsFor, getAsset, entry}) => {
const [imageUrl, setImageUrl] = useState('');
const image = useMemo(() => entry.data.image, [entry.data.image]);
useEffect(() => {
let alive = true;
const loadImage = async () => {
const imageAsset = await getAsset(image);
if (alive) {
setImageUrl(imageAsset.toString());
}
};
loadImage();
return () => {
alive = false;
};
}, [image]);
const divStyle = {
backgroundImage: 'url("/media/backgrounds/page-title.webp"),url("/media/backgrounds/page-title.webp")',
};
return h('div', {},
h('section', {"className": "page-title-section overlay", "style": divStyle},
h('div', {"className": "row"},
h('div', {"className": "container"},
h('div', {"className": "col-md-8"},
h('ul', {"className": "list-inline custom-breadcrumb"},
h('li', {"className": "list-inline-item h2"},
h('a', {"className": "text-primary font-secondary", href: ""}, "Startseite")
),
h('li', {"className": "list-inline-item h2"},
h("i", {"className": "fa-solid fa-angle-right text-white"})
),
h('li', {"className": "list-inline-item text-white h2 font-secondary"}, entry.data.title
)
),
h('p', {"className": "text-lighten"}, entry.data.description
))
)
)
),
h('section', {"className": "section-sm"},
h('div', {"className": "container"},
h('div', {"className": "row"},
h('div', {"className": "col-12 mb-4"},
h('img', {"className": "img-fluid w-100 mb-4", src: imageUrl}),
widgetFor('body'))
)
)
),
entry.data.stats.enable ? h(
'section',
{"className": "section-sm bg-primary"},
h('div', {"className": "container"},
h('div', {"className": "row"},
widgetsFor('stats').data.zahlen.map(element => {
return h('div', {"className": "col-md-3 col-sm-6 mb-4 mb-md-0"},
h('div', {"className": "text-center"},
h('h2', {"className": "count text-white"}, element.count),
h('h5', {"className": "text-white"}, element.name)
)
);
})
)
)
) : null
);
};
CMS.registerPreviewTemplate("about-index", AboutPreview);
</script>
</body>
</html>

@ -1,12 +1,9 @@
backend: backend:
name: gitlab name: gitea
repo: gcg/gcg.pages.cantorgymnasium.de repo: gcg/gcg-website
branch: master branch: master
auth_type: pkce api_root: https://git.cantorgymnasium.de/api/v1
app_id: 469e4923e9b0a2d128604dfdf8e5c413665d65f730e4f563541e237210d29992 base_url: https://oauth.cantorgymnasium.de
api_root: https://gitlab.cantorgymnasium.de/api/v4
base_url: https://gitlab.cantorgymnasium.de
auth_endpoint: oauth/authorize
commit_messages: commit_messages:
create: "{{slug}} in {{collection}} erstellt" create: "{{slug}} in {{collection}} erstellt"
update: "{{slug}} in {{collection}} aktualisiert" update: "{{slug}} in {{collection}} aktualisiert"
@ -444,9 +441,9 @@ collections:
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false} - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- name: "begabtenfoerderung-index" - name: "begabte-index"
label: "Begabtenförderung" label: "Begabtenförderung"
file: "content/german/begabtenfoerderung/_index.md" file: "content/german/begabte/_index.md"
fields: fields:
- {label: "Titel", name: "title", widget: "string"} - {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false} - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
@ -689,27 +686,27 @@ collections:
- {label: "Website", name: "web_url", widget: "string", required: false} - {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"} - {label: "Type", name: "type", widget: "hidden", default: "wettbewerbe"}
- {label: "Text", name: "body", widget: "markdown"} - {label: "Text", name: "body", widget: "markdown"}
- name: "begabtenfoerderung" - name: "begabte"
icon: "book" icon: "book"
label: "Begabtenförderung" label: "Begabtenförderung"
label_singular: "Begabtenförderung" label_singular: "Begabtenförderung"
folder: "content/german/begabtenfoerderung" folder: "content/german/begabte"
filter: {field: "type", value: "begabtenfoerderung"} filter: {field: "type", value: "begabte"}
create: true create: true
editor: editor:
preview: false preview: false
media_folder: '/static/media/begabtenfoerderung' media_folder: '/static/media/begabte'
public_folder: '/media/begabtenfoerderung' public_folder: '/media/begabte'
fields: fields:
- {label: "Titel", name: "title", widget: "string"} - {label: "Titel", name: "title", widget: "string"}
- {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false} - {label: "Entwurf", name: "draft", widget: "boolean", default: false, required: false}
- {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"} - {label: "Hintergrundbild", name: "bg_image", widget: "hidden", default: "/media/backgrounds/page-title.webp"}
- {label: "Metabeschreibung", name: "description", widget: "text", required: false} - {label: "Metabeschreibung", name: "description", widget: "text", required: false}
- {label: "Bild", name: "image", widget: "image", default: "/media/begabtenfoerderung/image.webp", required: false} - {label: "Bild", name: "image", widget: "image", default: "/media/begabte/image.webp", required: false}
- {label: "Fach", name: "category", widget: "string"} - {label: "Fach", name: "category", widget: "string"}
- {label: "Klassenstufen", name: "class", widget: "string"} - {label: "Klassenstufen", name: "class", widget: "string"}
- {label: "Website", name: "web_url", widget: "string", required: false} - {label: "Website", name: "web_url", widget: "string", required: false}
- {label: "Type", name: "type", widget: "hidden", default: "begabtenfoerderung"} - {label: "Type", name: "type", widget: "hidden", default: "begabte"}
- {label: "Text", name: "body", widget: "markdown"} - {label: "Text", name: "body", widget: "markdown"}
- name: "schulchronik" - name: "schulchronik"
icon: "timeline" icon: "timeline"

@ -13,25 +13,32 @@
} }
</style> </style>
<!-- Include the script that builds the page and powers Static CMS --> <!-- Include the script that builds the page and powers Static CMS -->
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^1.0.0/dist/static-cms-app.js"></script> <script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^1.1.3/dist/static-cms-app.js"></script>
<script> <script>
CMS.init(); CMS.init();
var icons = [['home', 'fa fa-house'], ['settings', 'fa fa-gear'], ['user', 'fa fa-user'], ['page', 'fa fa-file'], ['document', 'fa fa-file-lines'], ['news', 'fa fa-newspaper'], ['award', 'fa fa-award'], ['group', 'fa fa-people-group'], ['trophy', 'fa fa-trophy'], ['book', 'fa fa-book'], ['timeline', 'fa fa-timeline'], ['graduation-cap', 'fa fa-graduation-cap'], ['info', 'fa fa-circle-info']]; var icons = [['home', 'fa fa-house'], ['settings', 'fa fa-gear'], ['user', 'fa fa-user'], ['page', 'fa fa-file'], ['document', 'fa fa-file-lines'], ['news', 'fa fa-newspaper'], ['award', 'fa fa-award'], ['group', 'fa fa-people-group'], ['trophy', 'fa fa-trophy'], ['book', 'fa fa-book'], ['timeline', 'fa fa-timeline'], ['graduation-cap', 'fa fa-graduation-cap'], ['info', 'fa fa-circle-info'], ['desktop', 'fa-solid fa-desktop'], ['bookmark', 'fa-solid fa-bookmark']];
icons.forEach(icon => { icons.forEach(icon => {
CMS.registerIcon(icon[0], ({}) => { return(h('i', {"className": icon[1]})); }); CMS.registerIcon(icon[0], ({}) => { return(h('i', {"className": icon[1]})); });
}); });
const CustomPage = () => { const StatusPage = () => {
return h('div', {}, 'I am a custom page!'); return h('a', {href: "https://drone.cantorgymnasium.de/gcg/gcg-website"}, h('img', {src: "https://drone.cantorgymnasium.de/api/badges/gcg/gcg-website/status.svg"}));
}; };
CMS.registerAdditionalLink({ CMS.registerAdditionalLink({
id: 'info', id: 'status',
title: 'Informationen', title: 'Status',
data: CustomPage, data: StatusPage,
options: { options: {
icon: 'info', icon: 'desktop',
}, },
}); });
CMS.registerAdditionalLink({
id: 'wiki',
title: 'GCG.Wiki',
data: 'https://wiki.cantorgymnasium.de',
options: {
icon: 'bookmark',
},
});
CMS.registerShortcode('gallery', { CMS.registerShortcode('gallery', {
label: 'Gallery', label: 'Gallery',
openTag: '{{< ', openTag: '{{< ',
@ -662,7 +669,7 @@
CMS.registerPreviewTemplate("forms-index", PagePreview); CMS.registerPreviewTemplate("forms-index", PagePreview);
CMS.registerPreviewTemplate("ganztagsangebote-index", PagePreview); CMS.registerPreviewTemplate("ganztagsangebote-index", PagePreview);
CMS.registerPreviewTemplate("wettbewerbe-index", PagePreview); CMS.registerPreviewTemplate("wettbewerbe-index", PagePreview);
CMS.registerPreviewTemplate("begabtenfoerderung-index", PagePreview); CMS.registerPreviewTemplate("begabte-index", PagePreview);
</script> </script>
<script> <script>
var PagePreviewImage = ({ widgetFor, getAsset, entry}) => { var PagePreviewImage = ({ widgetFor, getAsset, entry}) => {

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB