Inhalte

Die ft:pedia ist also der Bereich, in dem die gleichnamige “Zeitschrift” zum Herunterladen angeboten wird. Die Sortierung erfolgt nach Jahrgang, der jüngste Jahrgang ist immer oben (im Menü). Pro Jahrgang gibt es 4 Ausgaben, bei einigen Ausgaben gibt es zusätzliche Downloads. Im Gegensatz zur alten ftc-Version werden die Downloads zu den Heften nicht irgendwo in einer Download-Kategorie angeboten, sondern gleich in der Nähe des zugehörigen Heftes.

Die Verwaltung der Inhalte wird in den folgenden Abschnitten beschrieben.

Aus taktischen Gründen startet die Beschreibung mit einem Einzelheft, auch wenn man in der Navigation zunächst auf die Gesamtübersicht stoßen wird.

Inhalt

Ein einzelnes Heft

Heftbegleitende Downloads

Jahrgang (4 Hefte)

Jahrgangsübersicht (alle Hefte nach Jahrgang)

Gesamtinhaltsverzeichnis

Anleitung: Eine neue ft:pedia einstellen (mit Jahrgang und Begleit-Downloads)


Einzelheft

Für ein Einzelheft gibt es genau einen Ordner. Er beschreibt mit seinem Namen sinnigerweise schon welche Ausgabe sich dort befindet, beispielsweise /content/ftpedia/2018/2018-1.

In diesem Ordner befinden sich mindestens drei Dateien.

  • Heft (z. B. ‘ftpedia-1-2018.pdf’)
  • Titelbild (Thumbnail, heißt immer ‘titelseite.png’)
  • _index.md (mit dem Unterstrich davor, also nicht ‘index.md’!)

Die Datei _index.md im Ordner /2018-1 (generell /yyyy-n) enthält nun alle nötigen Angaben um aus dem Ordnerinhalt eine schmucke Ansicht zu bauen.

Durch die Ablage unterhalb /content/ftpedia ist bereits geklärt, um was für ein Objekt es sich prinzipiell handelt. Weitere Angaben im Frontmatter können so auf ein Minimum reduziert werden.

Die Datei index.md beginnt immer mit dem Frontmatter:

Frontmatter Angabe Erläuterung
--- Leitet den Frontmatter-Block ein
layout: “file” Pflicht Das Layout für eine ft:pedia Einzelausgabe heißt “file”.
hidden: true Pflicht Die Seite wird im Menü nicht angezeigt. Und falls doch mal jemand auf dieser Seite landet, kümmert sich /layouts/ftpedia/list.html um eine anständige Anzeige der angebotenen Information.
title: “Ausgabe 1 / 2018” Pflicht Der Titel, der als Überschrift oben erscheint
date: 2018-03-31T00:00:00+0100 Pflicht Das Datum des uploads - wird automatisch erzeugt.
Codierung: yyyy-mm-ddThh:mm:ss+hhmm
Beim manuellem Erstellen neuer Seiten bitte die Zeitzone (+0100 MEZ bzw. +0200 MESZ nicht vergessen)! Es wird empfohlen vorhandene Archetypes zu nutzen. Hugo kümmert sich dann um das korrekte Datum mitsamt der Zeitzone. Für legacy Dateien die älter als 2 h sind, ist die Angabe der Zeitzone unerheblich und kann entfallen. Für alles Aktuelle soll sie rein sonst wird die Seite von hugo nicht (zur richtigen Zeit) gebaut.
publishDate: 2018-03-31T00:00:00+0100 Option Vorgabe des Veröffentlichungsdatums (in der Zukunft). Erlaubt es dem Redakteur die Datei vorab einzustellen und zeitgesteuert zu veröffentlichen.
Codierung: yyyy-mm-ddThh:mm:ss+hhmm (Gilt das dann wegen _index.md auch für den restlichen Ordnerinhalt? Ja!)
Und bitte an die Zeitzone denken (siehe vorherigen Eintrag) falls das Datum manuell bearbeitet wird. Die Nutzung vorhandener Archetypen wird empfohlen.
file: “ftpedia-1-2018.pdf” Pflicht Name der Datei mit dem Heftinhalt.
uploadBy:
- “wer war es?”
Pflicht ? Macht das hier Sinn? Ich denke ja, um zu sehen wer das Heft eingestellt hat. Aber zwingend muss es nicht sein, oder? Ist halt noch unklar wegen “wie kommt das Heft in die ftc”.
legacy_id: Option Falls jemand mit einem “alten” Link herkommt, sorgt dieser Eintrag für ein Download-Erlebnis anstelle HTTP-404. Falls imported gesetzt ist, muss legacy_id auch angegeben sein (was nicht weiter schwer fällt, weil es eine gibt).
imported:
- “2019”
Option Bis incl. 2018 kommen alle Dateien aus der alten ftc. Da macht es durchaus Sinn imported: zu setzen. Für neu eingestellte Ausgaben entfällt dieser Schlüssel ersatzlos.
--- Schließt den Frontmatter-Block ab.

Das Frontmatter sieht also für die Ausgabe 1 / 2018 in deren _index.md so aus:

---
hidden: true
layout: "file"
title: "1 / 2018"
date: 2018-03-31T00:00:00
file: "ftpedia-2018-1.pdf"
uploadBy:
- "ft:pedia-Redaktion"
legacy_id:
- /ftpedia_ausgaben/ftpedia-2018-1.pdf
imported:
- "2019"
---
<!-- https://www.ftcommunity.de/ftpedia_ausgaben/ftpedia-2018-1.pdf -->

Im HTML-Kommentar ist nochmal der vollständige alte Link angegeben, man kann ja nie wissen.

Eine neue Ausgabe hat entsprechend weniger Einträge, zum Beispiel so:

---
hidden: true
layout: "file"
title: "3 / 2021"
date: 2021-09-25T00:00:00
file: "ftpedia-2021-3.pdf"
uploadBy:
- "ft:pedia-Redaktion"
---

Zusätzlich zum Heft wird für dessen Präsentation ein thumbnail der Titelseite benötigt. (Wie wird das von wem mit welchen Eigenschaften erzeugt?) Dieses Bild muss als .png Datei vorliegen. Die Datei mit dem Thumbnail wird ausschließlich unter dem Namen titelseite.png in den entsprechenden Ordner gespeichert.

Heftbegleitende Downloads

Wie schon angedeutet, werden die Downloads zum Heft direkt hier mit aufgelistet. Jede dieser Dateien wird in den Ordner abgelegt, in dem sich die bereits beschriebenen drei Dateien befinden; zum Beispiel /2018-1.

Dabei ist sowohl deren Name als auch deren Typ unerheblich. hugo haben wir auf Grund des Ablageortes beigebracht, diese Dateien als zusätzliches Angebot zum Heft zu erkennen. Dazu benötigt allerdings jede Download-Datei auch eine eigene Beschreibung per .md Dokument.

Für ein praktisches Beispiel soll eine Zugabe zur ft:pedia 1 / 2018 herhalten, der Neopixelcontroller: /content/ftpedia/2018/2018-1/neopixelcontroller.zip

Diese Download-Datei erhält ein beschreibendes Markdownfile /content/ftpedia/2018/2018-1/neopixelcontroller.md zur Seite gestellt.

Zuerst haben wir im neopixelcontroller.md wieder den “Frontmatter”-Abschnitt. Er enthält diese Felder (nicht unbedingt in dieser Reihenfolge):

Frontmatter Angabe Erläuterung
--- Leitet den Frontmatter-Block ein
layout: "file" Pflicht Das Layout für einen Download-Eintrag heißt "file".
hidden:: true Pflicht Die Seite wird im Menü nicht angezeigt. Und falls doch mal jemand auf dieser Seite landet, kümmert sich ein globales `/layouts/_default/file.html` um eine anständige Anzeige der Information.
title: "Neopixelcontroller" Pflicht Der Name unter dem der Download angepriesen wird.
date: 2018-03-22T00:00:00+0100 Pflicht Das Datum des uploads - wird automatisch erzeugt.
Codierung: yyyy-mm-ddThh:mm:ss+hhmm
Beim manuellem Erstellen neuer Seiten bitte die Zeitzone (`+0100` MEZ bzw. `+0200` MESZ nicht vergessen)! Es wird empfohlen vorhandene Archetypes zu nutzen. Hugo kümmert sich dann um das korrekte Datum mitsamt der Zeitzone. Für legacy Dateien die älter als 2 h sind, ist die Angabe der Zeitzone unerheblich und kann entfallen. Für alles Aktuelle soll sie rein sonst wird die Seite von hugo nicht (zur richtigen Zeit) gebaut.
publishDate: 2005-06-06T00:00:00+0200 Option Vorgabe des Veröffentlichungsdatums (in der Zukunft). Erlaubt es dem Redakteur die Datei vorab einzustellen und zeitgesteuert zu veröffentlichen.
Codierung: yyyy-mm-ddThh:mm:ss+hhmm (Gilt das dann wegen `index.md` auch für den restlichen Ordnerinhalt? Ja!)
Für manuelle Pflegearbeiten bitte die Zeitzone berücksichtigen!
file: "neopixelcontroller.zip" Pflicht Das zugehörige Download-File. Vorzugsweise heißen Download-File und Markdownfile gleich. Das hilft den menschlichen Admins sehr zu erkennen was zusammen gehört. Beispiel: flipflop.pdf <=> flipflop.md
konstrukteure:
- "Christian Bergschneider"
- "Stefan Fuss"
Option 'Autoren' wäre hier von der Wortwahl geschickter, 'konstrukteure' ist technisch aber das gleiche. Also nennen wir es genau so wie es auch im Bilderpool benannt ist. Für den Fall der Fälle (wir haben tatsächlich welche) ist das als Liste mit mehreren Einträgen vorbereitet. Je Autor eine Zeile und bitte das "-" davor! Mittlerweile ist die zugehörige Steuerdatei für die Darstellung in der Lage auch mit leeren Listen umzugehen. Trotzdem bitte bei manuellen Pflegearbeiten darauf achten, hier entweder den Eintrag mit wenigstens einem Autor zu machen oder die Zeile komplett weg zu lassen.
uploadBy:
- "-LegacyAdmin-"
Pflicht Logisch macht es keinen Sinn hier eine Liste zu führen, denn der upload erfolgt natürlich nur von einem Nutzer. Nun gibt es da aber eine kleine Kosmetik für eine angenehme Formulierung der Angaben auf der Seite. Und diese Kosmetik funktioniert (derzeit) nur mit gleichen Datentypen. Deswegen: Liste mit nur einem Eintrag. Mittlerweile ist das zugehörige Kontrollfile für die Darstellung in der Lage auch mit leeren Listen umzugehen. Trotzdem bitte bei manuellen Pflegearbeiten darauf achten hier entweder den Eintrag mit exakt einem Eintrag zu machen oder die Zeile komplett weg zu lassen. `-LegacyAdmin-` ist reserviert für Dateien, bei denen nicht herauszufinden ist, wer den Upload gemacht hat. Exklusiv für Altlasten aus der ftc vor 2019. Im Zweifelsfall trägt der Redakteur hier ein, wer ihm die Datei 'zugespielt' hat.
license: "unknown" Option Die Angabe der Lizenz zur Veröffentlichung. Gab es in der alten ftc nicht, ist neu hier. Wir (also Admins) müssen uns noch überlegen wie eine "default"-Lizenz sein müsste, mit der die Inhalte auch aus der alten ftc abgedeckt werden.
legacy_id:
- /data/downloads/ftpediadateien/neopixelcontroller.zip
Falls ein imported tag vergeben ist, muss auch eine legacy_id vorhanden sein!
imported:
- "2019"
Option Wird dieser Eintrag gemacht, ist die Datei aus einer vorherigen ftc-Version übernommen worden. "2019" steht dann für das Jahr, in dem der Import gemacht wurde.
Stammt der Download aus der aktuellen Version der ftc, wird dieser Eintrag nicht gemacht! Dieser Frontmattereintrag entfällt für alle ft:pedia Neuzugänge ab 1.1.2019
Die Idee ist, hier bei Bedarf einen Automaten drauf loszulassen der die Einträge vornimmt / ergänzt (z. B.: - "2019" -> - "2019" - "2033"). Vorläufig wird das Feld nicht ausgewertet, hilft uns aber eines Tages herauszufinden, was schon vorher da war. legacy_id ist dafür ungeeignet, da dort jede ehemalige ID reinkommt - also auch wenn innerhalb der aktuellen ftc-Seite was verschoben wird. Zukunftssicher ist eine Liste besser geeignet als ein einzelner String.
--- Schließt den Frontmatter-Block ab.

Nach dem Frontmatter kommt nun die Beschreibung der Download-Datei.

Für das gewählte Beispiel (neopixelcontroller.zip) haben wir diesen Dateiinhalt:

---
layout: "file"
title: "Neopixelcontroller"
date: 2018-03-22T00:00:00
file: "neopixelcontroller.zip"
konstrukteure: 
- "Christian Bergschneider"
- "Stefan Fuss"
uploadBy:
- "-LegacyAdmin-"
license: "unknown"
legacy_id:
- /data/downloads/ftpediadateien/neopixelcontroller.zip
imported:
- "2019"
---
<!-- https://www.ftcommunity.de/data/downloads/ftpediadateien/neopixelcontroller.zip -->
STLs und Sourcen zum Neopixel-Controller aus ft:pedia 1/2018, S. 53

In der Beschreibung steht der vollständige Link zur alten ftc als html-Kommentar, um notfalls die volle Info über die Herkunft zur Verfügung zu haben. Der Link selbst erscheint nirgends. Der alte Link ist natürlich nur für Seiten aus der alten ftc sinnvoll.

Damit wäre das Rüstzeug für ein Einzelheft samt zugehörigen Downloads vorhanden:

  • Mandatory
    • index.md zur Beschreibung der jeweiligen ft:pedia
    • .pdf der betreffenden Ausgabe
    • titelseite.png
  • Optional
    • Dateipärchen je Download zum Heft

Diese Art der Inhaltsstruktur (insbesondere hidden: true) sorgt nun dafür, dass die einzelnen Download-Dateien nicht auf individuellen Seiten angeboten werden. Solange man die exakte URL dieser Unterseite nicht kennt, wird man sie nicht erreichen können.

Noch zwei Absätze zu den Altlasten, denen per legacy_id Rechnung getragen wird, seien gestattet: Für URLs, die in den vorhandenen älteren ft:pedien angegeben sind, wirkt die legacy_id als Ankerpunkt und zieht solche Links auf sich. In diesem Fall wird sich /layouts/_default/file.html um ein brauchbares Download-Angebot kümmern.

Interessant: Alle Dateien können schon vor dem Erscheinen der Ausgabe im jeweiligen Ordner “geparkt” werden. Sie werden erst sichtbar (und erreichbar) wenn das _index.md existiert! Das eröffnet einen Mechanismus für den Teaser.

Zurück zur Inhaltsübersicht

Jahrgang

Ein einzelner Jahrgang ft:pedia besteht aus 4 Ausgaben. Die Verzeichnisstruktur ist einfach gehalten, es gibt für jede vorhandene Ausgabe ein Unterverzeichnis.

_index.md
2017-1/
2017-2/
2017-3/
2017-4/

Um die Seite für hugo als solche zu definieren, ist ein _index.md vorhanden.

---
title: "2017"
weight: -2017
---

Das Beispiel stammt vom Jahrgang 2017; alle anderen Jahrgänge sind baugleich. title entstpricht dem Jahr und weight sorgt für die richtige Sortierung im Menü.

Ein spezieller Layouttyp ist hier nicht nötig. Ohne die explizite Angabe layout: behandelt layouts/ftpedia/list.html die Seite als Auflistung des Jahrgangs (alle Hefte mit deren Downloads).

Für einen neuen Jahrgang ist es lediglich erforderlich einen neuen Ordner mit passendem Jahr anzulegen (z. B.: /content/ftpedia/2019) und mit einem _index.md zu bestücken. Das Frontmatter ist sinngmäß anzupassen.

Zurück zur Inhaltsübersicht

Jahrgangsübersicht

Folgt man dem Verzeichnisbaum zu /content/ftpedia, findet man sich auf der Übersichtsseite mit den Jahrgängen wieder. Für jeden < href=“jahrgang”>Jahrgang gibt es einen eigenen Unterordner. Weiterhin findet sich hier im Ordner auch noch das Gesamtinhaltsverzeichnis.

_index.md
2011/
2012/
2013/
2014/
2015/
2016/
2017/
2018/
2019/
ftPedia_Artikeluebersicht.csv
ftpediamail.jpg
overview.md

In der Datei _index.md ist die Beschreibung der Rubrik ft:pedia zu finden.

---
title: "ft:pedia"
weight: 70
layout: "ftpediaAll"
legacy_id:
- ftcomm2409.html
---
<!-- https://www.ftcommunity.de/ftcomm2409.html?file=ftpedia -->

title: "ft:pedia" ergibt den Titel der Rubrik. weight: 70 legt die Position im Seitenmeü fest. layout: "ftpediaAll" erklärt diese Seite zur Hauptseite der ft:pedia-Rubrik. Mittels des Scriptes layouts/ftpedia/list.html wird für diese Seite die Liste aller bisher erschienenen Ausgaben aus den Jahrgängen und Einzelheften gebaut.

Die Zeilen zu legacy_id: sind für all diejenigen, die mit dem Link zur alten ftc-Seite ankommen.

Zurück zur Inhaltsübersicht

Gesamtinhaltsverzeichnis

Die Seite mit dem Geamtinhaltsverzeichnis wird durch die Datei overview.md bereitgestellt.

---
title: "Gesamtinhalt"
weight: -9000
layout: "ftptoc"
legacy_id:
- /ftcommc482.html
---

Der Titel wird mittels title: vorgegeben, weight: -9000 sorgt für die Platzierung ganz oben im Menü. Auch für den Gesamtinhalt gab es in der alten ftc eine entsprechende URL, die per legacy_id: zur neuen Seite umgeleitet wird.

layout: "ftptoc" veranlasst das Script /layouts/ftpedia/ftptoc.html alle Informationen zusammenzustellen und die Seite zu bauen.

Das Gesamtinhaltsverzeichnis der ft:pedia wird aus einer Comma Separated Value (.csv) Datei umgesetzt. Der Name der Datei sei immer ftPedia_Artikeluebersicht.csv und ihr Ablageort ist generell in /content/ftpedia.

{Hier ist noch der Inhalt dieser .csv Datei zu dokumentieren!}

Zurück zur Inhaltsübersicht


Stand: 30. Juni 2019