add CMS
This commit is contained in:
parent
299051da24
commit
ad6e7f7299
@ -17,8 +17,6 @@ jobs:
|
||||
steps:
|
||||
- name: clone
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: build
|
||||
run: npm i && hugo --minify --gc --baseURL "https://schuelerzeitung-gcg.de/"
|
||||
@ -42,8 +40,6 @@ jobs:
|
||||
steps:
|
||||
- name: clone
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: build
|
||||
run: npm i && hugo --minify --gc --baseURL "https://test.schuelerzeitung-gcg.de/" --buildDrafts --buildFuture -d test
|
||||
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
3
content/de/admin/_index.md
Normal file
3
content/de/admin/_index.md
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
title: Static CMS
|
||||
---
|
@ -1,10 +1,14 @@
|
||||
---
|
||||
author: ""
|
||||
title: "Buchempfehlung: The inheritance Games"
|
||||
draft: false
|
||||
date: 2023-02-16
|
||||
author: ""
|
||||
description: ""
|
||||
tags: ["buchempfehlung", "2023"]
|
||||
thumbnail: /blog/buchempfehlung-2023-01.webp
|
||||
thumbnail: /buchempfehlung-2023-01.webp
|
||||
tags:
|
||||
- buchempfehlung
|
||||
- "2023"
|
||||
type: blog
|
||||
---
|
||||
|
||||
> - **Titel:** The inheritance Games
|
||||
|
@ -1,45 +1,29 @@
|
||||
---
|
||||
author: ""
|
||||
title: "Horoskop (2023/1)"
|
||||
title: Horoskop (2023/1)
|
||||
draft: false
|
||||
date: 2023-02-16
|
||||
description: "Wassermann, Fische"
|
||||
tags: ["umweltschutz", "klima", "2023"]
|
||||
thumbnail: /blog/preview.webp
|
||||
author: ""
|
||||
description: Wassermann, Fische
|
||||
thumbnail: /preview.webp
|
||||
tags:
|
||||
- "2023"
|
||||
- horoskop
|
||||
type: blog
|
||||
---
|
||||
|
||||
### Wassermann
|
||||
Wo ein Wille ist, da ist
|
||||
auch ein Weg: Ihre
|
||||
selbstgesteckten Ziele
|
||||
werden in den nächsten
|
||||
Wochen in Reichweite
|
||||
liegen, seien Sie daher
|
||||
wachsam und setzen Sie sich
|
||||
ruhig mit Ihrer Meinung durch.
|
||||
Besonders Ihre Kreativität kann
|
||||
Ihnen dabei helfen! Doch werden Sie nicht ungeduldig,
|
||||
dies könnte Sie viel Kraft kosten. Auch in der Liebe sieht
|
||||
es gut für Sie aus, durch Ihre Hilfsbereitschaft finden Sie
|
||||
schnell neue Kontakte, besonders die Cafeteria ist ein
|
||||
guter Ort dafür. Doch lassen Sie sich dies nicht zu teuer
|
||||
kommen! Geben Sie Ihr Geld am besten sparsam aus, oder es
|
||||
wird schneller weg seien, als es Ihnen lieb ist.
|
||||
|
||||
Wo ein Wille ist, da ist auch ein Weg: Ihre
|
||||
selbstgesteckten Ziele werden in den nächsten Wochen in Reichweite liegen, seien Sie daher
|
||||
wachsam und setzen Sie sich ruhig mit Ihrer Meinung durch. Besonders Ihre Kreativität kann
|
||||
Ihnen dabei helfen! Doch werden Sie nicht ungeduldig, dies könnte Sie viel Kraft kosten. Auch in der Liebe sieht es gut für Sie aus, durch Ihre Hilfsbereitschaft finden Sie schnell neue Kontakte, besonders die Cafeteria ist ein guter Ort dafür. Doch lassen Sie sich dies nicht zu teuer kommen! Geben Sie Ihr Geld am besten sparsam aus, oder es wird schneller weg seien, als es Ihnen lieb ist.
|
||||
|
||||
### Fische
|
||||
Der frühe Vogel
|
||||
fängt den Wurm:
|
||||
Sowohl Ihre
|
||||
schulischen als
|
||||
auch Ihre Ziele in
|
||||
der Liebe werden in
|
||||
weite Ferne rücken,
|
||||
wenn Sie jetzt nicht
|
||||
zeitig anfangen, diese
|
||||
hartnäckig zu verfolgen. Besonders schwierig
|
||||
wird es für Sie in den Fächern Biologie und
|
||||
Geschichte werden. Doch auch Deutsch und
|
||||
Mathe sind nicht ohne Schwierigkeiten, die in
|
||||
den nächsten Wochen überwunden werden
|
||||
müssen. Doch trotz allem sollten Sie sich
|
||||
nicht zu sehr fürchten: Frau Rudolph wird Ihr
|
||||
|
||||
Der frühe Vogel fängt den Wurm:
|
||||
Sowohl Ihre schulischen als auch Ihre Ziele in der Liebe werden in weite Ferne rücken,
|
||||
wenn Sie jetzt nicht zeitig anfangen, diese hartnäckig zu verfolgen. Besonders schwierig
|
||||
wird es für Sie in den Fächern Biologie und Geschichte werden. Doch auch Deutsch und
|
||||
Mathe sind nicht ohne Schwierigkeiten, die in den nächsten Wochen überwunden werden
|
||||
müssen. Doch trotz allem sollten Sie sich nicht zu sehr fürchten: Frau Rudolph wird Ihr
|
||||
Glücksengel sein, folgen Sie ihr ruhig!
|
@ -1,14 +1,17 @@
|
||||
---
|
||||
author: ""
|
||||
title: "Modulkurs Chemie 2023"
|
||||
title: Modulkurs Chemie 2023
|
||||
draft: false
|
||||
date: 2023-02-16
|
||||
author: ""
|
||||
description: ""
|
||||
tags: ["modulkurs", "2023"]
|
||||
thumbnail: /blog/preview.webp
|
||||
thumbnail: /preview.webp
|
||||
tags:
|
||||
- modulkurs
|
||||
- "2023"
|
||||
- chemie
|
||||
type: blog
|
||||
---
|
||||
|
||||
Der Chemieleistungskurs
|
||||
konnte in der Schule
|
||||
Der Chemieleistungskurs konnte in der Schule
|
||||
einfach nicht genug von der
|
||||
Chemie bekommen. Aus
|
||||
diesem Grund fand in der
|
||||
|
@ -1,12 +1,17 @@
|
||||
---
|
||||
author: ""
|
||||
title: "Umweltschutz 101 (2023/1)"
|
||||
title: Umweltschutz 101 (2023/1)
|
||||
draft: false
|
||||
date: 2023-02-16
|
||||
description: "Was? Umweltschutz? Nicht schon wieder!"
|
||||
tags: ["umweltschutz", "klimanews", "klima", "2023"]
|
||||
thumbnail: /blog/preview.webp
|
||||
author: ""
|
||||
description: Was? Umweltschutz? Nicht schon wieder!
|
||||
thumbnail: /preview.webp
|
||||
tags:
|
||||
- umweltschutz
|
||||
- klimanews
|
||||
- klima
|
||||
- "2023"
|
||||
type: blog
|
||||
---
|
||||
|
||||
Was? Umweltschutz? Nicht schon wieder!
|
||||
|
||||
Du kennst die folgenden Dinge bestimmt auch: Dein Capri-Sonne Strobhalm ist aus Pappe, auf
|
||||
|
@ -1,10 +1,12 @@
|
||||
---
|
||||
author: Denys Konovalov
|
||||
title: Über uns
|
||||
draft: false
|
||||
date: 2023-03-26
|
||||
description:
|
||||
keywords: ["über-uns", "team"]
|
||||
type: about
|
||||
author: Denys Konovalov
|
||||
description: null
|
||||
keywords:
|
||||
- über-uns
|
||||
- team
|
||||
---
|
||||
|
||||
|
||||
|
@ -57,6 +57,10 @@
|
||||
• {{ i18n "translationsLabel" }} {{ $linksOutput }}
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
{{ with .Params.author }}
|
||||
•
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
</h5>
|
||||
{{ end }}
|
||||
|
||||
|
161
layouts/admin/list.html
Normal file
161
layouts/admin/list.html
Normal file
@ -0,0 +1,161 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://assets.cantorgymnasium.de/fonts/mdi/v7/css/materialdesignicons.min.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/@staticcms/app@^2.4.3/dist/main.css"
|
||||
/>
|
||||
|
||||
<title>Static CMS</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@staticcms/app@^2.4.3/dist/static-cms-app.js"></script>
|
||||
<script type="module">
|
||||
import Icons from "https://cantorgymnasium.de/admin/icons.js";
|
||||
import config from "./config.js";
|
||||
|
||||
CMS.init({ config });
|
||||
|
||||
Icons.forEach((i) => CMS.registerIcon(i.name, i.icon));
|
||||
|
||||
CMS.registerFieldPreview("posts", "draft", ({ value }) =>
|
||||
h(
|
||||
"div",
|
||||
{
|
||||
style: {
|
||||
backgroundColor:
|
||||
value === true ? "rgb(37 99 235)" : "rgb(22 163 74)",
|
||||
color: "white",
|
||||
border: "none",
|
||||
padding: "2px 6px",
|
||||
textAlign: "center",
|
||||
textDecoration: "none",
|
||||
display: "inline-block",
|
||||
cursor: "pointer",
|
||||
borderRadius: "4px",
|
||||
fontSize: "14px",
|
||||
},
|
||||
},
|
||||
value ? "Entwurf" : "Veröffentlicht"
|
||||
)
|
||||
);
|
||||
|
||||
CMS.registerFieldPreview("pages", "draft", ({ value }) =>
|
||||
h(
|
||||
"div",
|
||||
{
|
||||
style: {
|
||||
backgroundColor:
|
||||
value === true ? "rgb(37 99 235)" : "rgb(22 163 74)",
|
||||
color: "white",
|
||||
border: "none",
|
||||
padding: "2px 6px",
|
||||
textAlign: "center",
|
||||
textDecoration: "none",
|
||||
display: "inline-block",
|
||||
cursor: "pointer",
|
||||
borderRadius: "4px",
|
||||
fontSize: "14px",
|
||||
},
|
||||
},
|
||||
value ? "Entwurf" : "Veröffentlicht"
|
||||
)
|
||||
);
|
||||
|
||||
CMS.registerPreviewTemplate(
|
||||
"posts",
|
||||
({ widgetFor, entry, fields, collection }) => {
|
||||
const imageField = useMemo(() => {
|
||||
return fields.find((field) => field.name === "thumbnail");
|
||||
}, [fields]);
|
||||
|
||||
const imageUrl = useMediaAsset(
|
||||
entry.data.thumbnail,
|
||||
collection,
|
||||
imageField,
|
||||
entry
|
||||
);
|
||||
|
||||
return h(
|
||||
"div",
|
||||
{},
|
||||
h(
|
||||
"div",
|
||||
{ className: "relative max-w-5xl mx-auto px-4 pt-8" },
|
||||
h("img", {
|
||||
className: "rounded-lg shadow-sm w-full object-contain",
|
||||
src: imageUrl,
|
||||
})
|
||||
),
|
||||
h("article", {
|
||||
className: "prose lg:prose-lg mx-auto my-8 dark:prose-dark px-4",
|
||||
},
|
||||
h("h1", { className: "text-2xl font-bold mb-2" }, entry.data.title),
|
||||
h("h5", { className: "text-sm flex items-center flex-wrap"},
|
||||
"Gepostet am " + (entry.data.date != "" ? new Intl.DateTimeFormat("de-DE", {dateStyle: "long"}).format(new Date(entry.data.date)) : ""),
|
||||
" • " + entry.data.author
|
||||
),
|
||||
widgetFor('body')
|
||||
)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
CMS.registerPreviewTemplate(
|
||||
"pages",
|
||||
({ widgetFor, entry, fields, collection }) => {
|
||||
const imageField = useMemo(() => {
|
||||
return fields.find((field) => field.name === "thumbnail");
|
||||
}, [fields]);
|
||||
|
||||
const imageUrl = useMediaAsset(
|
||||
entry.data.thumbnail,
|
||||
collection,
|
||||
imageField,
|
||||
entry
|
||||
);
|
||||
|
||||
return h(
|
||||
"div",
|
||||
{},
|
||||
h(
|
||||
"div",
|
||||
{ className: "relative max-w-5xl mx-auto px-4 pt-8" },
|
||||
h("img", {
|
||||
className: "rounded-lg shadow-sm w-full object-contain",
|
||||
src: imageUrl,
|
||||
})
|
||||
),
|
||||
h("article", {
|
||||
className: "prose lg:prose-lg mx-auto my-8 dark:prose-dark px-4",
|
||||
},
|
||||
h("h1", { className: "text-2xl font-bold mb-2" }, entry.data.title),
|
||||
h("h5", { className: "text-sm flex items-center flex-wrap"},
|
||||
"Gepostet am " + (entry.data.date != "" ? new Intl.DateTimeFormat("de-DE", {dateStyle: "long"}).format(new Date(entry.data.date)) : ""),
|
||||
" • " + entry.data.author
|
||||
),
|
||||
widgetFor('body')
|
||||
)
|
||||
);
|
||||
}
|
||||
);
|
||||
</script>
|
||||
{{- $styles := resources.Get "css/styles.css" | postCSS (dict "config"
|
||||
"./assets/css/postcss.config.js") -}} {{- if .Site.IsServer }}
|
||||
<script>
|
||||
CMS.registerPreviewStyle("{{ $styles.RelPermalink }}");
|
||||
</script>
|
||||
{{ else }} {{- $styles := $styles| minify | fingerprint |
|
||||
resources.PostProcess -}}
|
||||
<script>
|
||||
CMS.registerPreviewStyle("{{ $styles.Permalink }}");
|
||||
</script>
|
||||
{{ end -}}
|
||||
</body>
|
||||
</html>
|
1510
package-lock.json
generated
1510
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
149
static/admin/collections.js
Normal file
149
static/admin/collections.js
Normal file
@ -0,0 +1,149 @@
|
||||
const PostCollection = {
|
||||
name: "posts",
|
||||
label: "Artikel",
|
||||
description: "Hier könnt ihr die Artikel der Schülerzeitung bearbeiten.",
|
||||
icon: "news",
|
||||
folder: "content/de/blog",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
filter: {
|
||||
field: "type",
|
||||
value: "blog",
|
||||
// pattern: "^((?!_index.md).)*$"
|
||||
},
|
||||
summary_fields: ["title", "date", "draft", "author"],
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "draft",
|
||||
label: "Entwurf",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "date",
|
||||
label: "Datum",
|
||||
widget: "datetime",
|
||||
date_format: "dd.MM.yyyy",
|
||||
time_format: false,
|
||||
format: "yyyy-MM-dd",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "author",
|
||||
label: "Autor",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Beschreibung",
|
||||
widget: "text",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "thumbnail",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "tags",
|
||||
label: "Tags",
|
||||
widget: "list",
|
||||
delimiter: ",",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "type",
|
||||
widget: "hidden",
|
||||
default: "blog",
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const PagesCollection = {
|
||||
name: "pages",
|
||||
label: "Seiten",
|
||||
description: "Hier könnt ihr die Zusatzseiten der Website bearbeiten.",
|
||||
icon: "page",
|
||||
folder: "content/de/page",
|
||||
create: true,
|
||||
editor: {
|
||||
preview: true,
|
||||
frame: true,
|
||||
size: "half",
|
||||
},
|
||||
summary_fields: ["title", "date", "draft", "description"],
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
label: "Titel",
|
||||
widget: "string",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "draft",
|
||||
label: "Entwurf",
|
||||
widget: "boolean",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "date",
|
||||
label: "Datum",
|
||||
widget: "datetime",
|
||||
date_format: "dd.MM.yyyy",
|
||||
time_format: false,
|
||||
format: "yyyy-MM-dd",
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: "author",
|
||||
label: "Autor",
|
||||
widget: "string",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "description",
|
||||
label: "Beschreibung",
|
||||
widget: "text",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "thumbnail",
|
||||
label: "Titelbild",
|
||||
widget: "image",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "keywords",
|
||||
label: "Schlüsselwörter",
|
||||
widget: "list",
|
||||
delimiter: ",",
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
name: "body",
|
||||
label: "Inhalt",
|
||||
widget: "markdown",
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export { PostCollection, PagesCollection };
|
38
static/admin/config.js
Normal file
38
static/admin/config.js
Normal file
@ -0,0 +1,38 @@
|
||||
import { PagesCollection, PostCollection } from "./collections.js";
|
||||
|
||||
const config = {
|
||||
backend: {
|
||||
name: "gitea",
|
||||
repo: "gcg/schuelerzeitung",
|
||||
branch: "main",
|
||||
api_root: "https://git.cantorgymnasium.de/api/v1",
|
||||
base_url: "https://oauth.cantorgymnasium.de",
|
||||
commit_messages: {
|
||||
create: "{{collection}} {{slug}} erstellt",
|
||||
update: "{{collection}} {{slug}} aktualisiert",
|
||||
delete: "{{collection}} {{slug}} gelöscht",
|
||||
updateMedia: "{{path}} hochgeladen",
|
||||
deleteMedia: "{{path}} gelöscht",
|
||||
},
|
||||
},
|
||||
local_backend: true,
|
||||
media_folder: "/static",
|
||||
public_folder: "/",
|
||||
media_library: {
|
||||
max_file_size: 10240000,
|
||||
folder_support: true,
|
||||
},
|
||||
site_url: "https://schuelerzeitung-gcg.de",
|
||||
locale: "de",
|
||||
slug: {
|
||||
encoding: "ascii",
|
||||
clean_accents: true,
|
||||
sanitize_replacement: "-",
|
||||
},
|
||||
collections: [
|
||||
PostCollection,
|
||||
PagesCollection
|
||||
],
|
||||
};
|
||||
|
||||
export default config;
|
Before Width: | Height: | Size: 867 KiB After Width: | Height: | Size: 867 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
Loading…
x
Reference in New Issue
Block a user