diff --git a/ff-webpage.pdf b/ff-webpage.pdf index 3e43ee5..f9d8c69 100644 Binary files a/ff-webpage.pdf and b/ff-webpage.pdf differ diff --git a/ff-webpage.typ b/ff-webpage.typ index 9cf6cf0..7851361 100644 --- a/ff-webpage.typ +++ b/ff-webpage.typ @@ -4,8 +4,8 @@ #show: template.with( logo: "../webpage/logo.png", title: "Anleitung", - alttitle: "Anleitung zu FF Webpage bis v1.2.x", - subtitle: "bis v1.2.x", + alttitle: "Anleitung zu FF Webpage bis v1.3.x", + subtitle: "bis v1.3.x", details: ( "Open Source Software", "entwickelt durch JK Effects", diff --git a/typst/glossary.typ b/typst/glossary.typ index 441abea..d6641a1 100644 --- a/typst/glossary.typ +++ b/typst/glossary.typ @@ -19,9 +19,9 @@ let __glossary_entries = __glossary_entries.final() if key in __glossary_entries { let entry = __glossary_entries.at(key) - + let gloss = __query_labels_with_key(key, before: true) - + let is_first = gloss == () let entlong = entry.at("long", default: "") let textLink = if display != none { @@ -31,7 +31,7 @@ } else { [#entry.short#suffix] } - + [#link(label(entry.key), textLink)#label(__glossary_label_prefix + entry.key)] } else { text(fill: red, "Glossary entry not found: " + key) @@ -80,72 +80,70 @@ entry, ) } - + x }) - + let groups = entries.map(x => x.at("group", default: "")).dedup() // move no group to the front groups.insert(0, "") groups.pop() - + for group in groups.sorted() { if group != "" [#heading(group, level: 2) ] for entry in entries.sorted(key: x => x.short) { if entry.group == group { [ #show figure.where(kind: __glossary_figure): it => it.caption - #par(hanging-indent: 1em, first-line-indent: 0em)[ - #figure( - supplement: "", - kind: __glossary_figure, - numbering: none, - caption: { - context { - set align(left) - set par(justify: true) - let term_references = __query_labels_with_key(entry.key) - if term_references.len() != 0 or show-all { - let desc = entry.at("desc", default: "") - let long = entry.at("long", default: "") - let hasLong = long != "" and long != [] - let hasDesc = desc != "" and desc != [] - { - set text(weight: 600) - if hasLong { - emph(entry.short) + [ -- ] + entry.long - } else { - emph(entry.short) - } - } - if hasDesc [: #desc ] else [ ] - if disable-back-references != true { - set text(weight: "bold") - box(width: 1fr, repeat[.]) - [ ] - term_references.map(x => x.location()).sorted(key: x => x.page()).fold( - (values: (), pages: ()), - ((values, pages), x) => if pages.contains(x.page()) { - (values: values, pages: pages) - } else { - values.push(x) - pages.push(x.page()) - (values: values, pages: pages) - }, - ).values.map(x => link(x)[#numbering(x.page-numbering(), ..counter(page).at(x))]).join(", ") + #figure( + supplement: "", + kind: __glossary_figure, + numbering: none, + caption: { + context { + set align(left) + set par(justify: true) + let term_references = __query_labels_with_key(entry.key) + if term_references.len() != 0 or show-all { + let desc = entry.at("desc", default: "") + let long = entry.at("long", default: "") + let hasLong = long != "" and long != [] + let hasDesc = desc != "" and desc != [] + { + set text(weight: 600) + if hasLong { + emph(entry.short) + [ -- ] + entry.long } else { - h(1fr) + emph(entry.short) } } + if hasDesc [: #desc ] else [ ] + if disable-back-references != true { + set text(weight: "bold") + box(width: 1fr, repeat[.]) + [ ] + term_references.map(x => x.location()).sorted(key: x => x.page()).fold( + (values: (), pages: ()), + ((values, pages), x) => if pages.contains(x.page()) { + (values: values, pages: pages) + } else { + values.push(x) + pages.push(x.page()) + (values: values, pages: pages) + }, + ).values.map(x => link(x)[#numbering(x.page-numbering(), ..counter(page).at(x))]).join(", ") + } else { + h(1fr) + } } - }, - )[] #label(entry.key) - ] + } + }, + )[] #label(entry.key) #parbreak() ] } } - if enable-group-pagebreak {pagebreak(weak: true)} + if enable-group-pagebreak {pagebreak(weak: true)} } }; diff --git a/webpage/code/strapi-compose.yml b/webpage/code/strapi-compose.yml index 3f7514d..939fd4d 100644 --- a/webpage/code/strapi-compose.yml +++ b/webpage/code/strapi-compose.yml @@ -8,11 +8,11 @@ ff-cms: - DATABASE_NAME=ffcms - DATABASE_USERNAME=cms - DATABASE_PASSWORD= - - JWT_SECRET= - - ADMIN_JWT_SECRET= - - APP_KEYS=, - - API_TOKEN_SALT= - - TRANSFER_TOKEN_SALT= + - JWT_SECRET= + - ADMIN_JWT_SECRET= + - APP_KEYS= # oder,,... + - API_TOKEN_SALT= + - TRANSFER_TOKEN_SALT= volumes: - :/app/public/uploads ports: diff --git a/webpage/content/2-installation.typ b/webpage/content/2-installation.typ index d5b537d..fe846be 100644 --- a/webpage/content/2-installation.typ +++ b/webpage/content/2-installation.typ @@ -161,10 +161,10 @@ Folgende Werte können zu einem Container konfiguriert werden: "DB_USERNAME", "Nutzername für Zugang zu Datenbank", "", "💥", "DB_PASSWORD", "Passwort zum Zugang zur Datenbank", "", "💥", "JWT_SECRET", "", "", "💥", - "ADMIN_JWT_SECRET", "", "", "✅", - "APP_KEYS", "", "", "✅", - "API_TOKEN_SALT", "", "", "✅", - "TRANSFER_TOKEN_SALT", "", "", "✅", + "ADMIN_JWT_SECRET", "", "", "💥", + "APP_KEYS", "", "", "💥", + "API_TOKEN_SALT", "", "", "💥", + "TRANSFER_TOKEN_SALT", "", "", "💥", "", "", "", "", table.cell(colspan: 4)[⬇️ Database-Variablen], "MYSQL_DATABASE", "Name der Datenbank, die bei Erstellung direkt angelegt wird.", "", "💥", diff --git a/webpage/content/3-strapi/2-models.typ b/webpage/content/3-strapi/2-models.typ index 1043abd..2b7fe2f 100644 --- a/webpage/content/3-strapi/2-models.typ +++ b/webpage/content/3-strapi/2-models.typ @@ -117,7 +117,12 @@ Damit eine Liste wie Artikel, Einsätze, Termine oder Fahrzeuge auf den Seiten v #figure( image("../../images/page.png", width: 100%), ) -Der @collection-type *Seiten* speichert alle Seiten, die erreicht werden können. Derzeit ist jede Seite - ob in der Navigation angegeben oder nicht - über den in der URL definierten @slug erreichbar, sofern nicht eine Navigationseinstellung den @slug überlagert. Standardmäßig ist die Erreichbarkeit auf `/` gesetzt. +Der @collection-type *Seiten* speichert alle Seiten, die erreicht werden können. Jede Seite ist über den URL-Pfad, welche im @slug definiert ist, erreichbar, sofern `ref_only_access` auf `false` steht und eine Navigationseinstellung den @slug nicht überlagert. Standardmäßig ist die Erreichbarkeit auf `/` gesetzt. +\ +\ +Der @slug kann auch vollständige Pfade beinhalten. Dabei wird ein Pfad wie `einsaetze` zu `/einsaetze` oder `mach-mit_formular` zu `/mach-mit/formular`. Ein `_` stellt dabei ein `/` dar. +\ +Ist bei einer Seite `ref_only_access` auf `true` gesetzt, so ist eine Seite nur noch per Verlinkung über die Navigation erreichbar. \ \ Der Identifier dient nur zur lesbaren Identifizierung der Seite, wenn sie einem Navigationslink zugeordnet ist. Der @slug speichert den Pfad, der in der URL angezeigt wird. diff --git a/webpage/content/3-strapi/3-usage.typ b/webpage/content/3-strapi/3-usage.typ index 46213df..2845094 100644 --- a/webpage/content/3-strapi/3-usage.typ +++ b/webpage/content/3-strapi/3-usage.typ @@ -73,6 +73,17 @@ Neben dem 1-spaltigen Layout gibt es auch die Möglichkeit 2 Spalten nebeneinena Erweitert kann auch ein Bild in einer Spalte links oder rechts angezeigt werden. Auch hier werden die Inhalte übereinander angezeigt, wenn die Webseite auf kleineren Bildschirmen angezeigt wird. ] +#wrap-content( + figure( + image("../../images/file-preview.png", width: 6.5cm), + ), + align: right +)[ +*Datei-Anzeige* + +Diese Komponente ermöglicht die Einbettung von Bildern oder PDFs. Wird ein PDF oder ein Bild angegeben, so wird dieses angezeigt. Ist eine Datei nicht darstellbar, wird nur der Download-Button angezeigt, sofern dieser nicht ausgeblendet ist. +] + #wrap-content( figure( image("../../images/file-download.png", width: 6.5cm), @@ -82,7 +93,7 @@ Erweitert kann auch ein Bild in einer Spalte links oder rechts angezeigt werden. *Datei-Download* Es besteht auch die Möglichkeit, Dateien zum Download zur Verfügung zu stellen. -Diese Komponente ermöglicht die Einbettung von Bildern oder PDFs mit Downloadmöglichkeit. Wird ein PDF oder ein Bild angegeben, so wird dieses angezeigt. Ist eine Datei nicht darstellbar, wird nur der Download-Button angezeigt, sofern dieser nicht ausgeblendet ist. +Diese Komponente ermöglicht den Download einer jeden angegeben Datei. ] #wrap-content( diff --git a/webpage/images/dynamic_components.png b/webpage/images/dynamic_components.png index 5812cbd..7a64ce6 100644 Binary files a/webpage/images/dynamic_components.png and b/webpage/images/dynamic_components.png differ diff --git a/webpage/images/file-download.png b/webpage/images/file-download.png index 02fc8a0..d4b92a1 100644 Binary files a/webpage/images/file-download.png and b/webpage/images/file-download.png differ diff --git a/webpage/images/file-preview.png b/webpage/images/file-preview.png new file mode 100644 index 0000000..aa43243 Binary files /dev/null and b/webpage/images/file-preview.png differ diff --git a/webpage/images/page.png b/webpage/images/page.png index f3155b7..7371f44 100644 Binary files a/webpage/images/page.png and b/webpage/images/page.png differ