8.8 KiB
Dateistruktur des Studienplans (Curriculum)
Unsere wichtigsten Lehrinhalte befinden sich in dem Verzeichnis mit dem aussagekräftigen Namen Curriculum
. Auf dieser Seite erfährst du, wie diese Dateien organisiert sind.
Terminologie
Es gibt ein paar Begriffe, die wir verwenden, wenn wir über unsere Studienplaninhalte sprechen.
certification
: Wenn in diesem Fall von einer Zertifizierung die Rede ist, geht es um das eigentliche Zertifikat, das die Nutzer/innen beantragen. Das ist unabhängig vom Namen des SuperBlocks.superBlock
: Ein Superblock ist die oberste Ebene einer Sammlung von Aufgaben. Jeder Superblock entspricht einer Zertifizierung im Lehrplan (z.B. Responsive Web Design).block
: Ein Block ist ein Abschnitt innerhalb eines Superblocks. Ein Block entspricht einer Gruppe von Aufgaben in einer bestimmten Zertifizierung (z. B. Grundlegendes HTML und HTML5)challenge
: Eine Aufgabe ist eine einzelne Lektion innerhalb des Lehrplans (z.B. Sag Hallo zu HTML-Elementen)
Dateibaum
Mit diesen Begriffen würde die Dateistruktur folgendermaßen definiert werden:
curriculum/
├─ _meta/
│ ├─ {block}/
│ │ ├─ meta.json
├─ {language}/
│ ├─ {superBlock}/
│ │ ├─ {block}/
│ │ │ ├─ {challenge}.md
Das _meta
-Verzeichnis
Das _meta
-Verzeichnis ist ein besonderes Verzeichnis, welches .json
-Dateien enthält. Diese Dateien entsprechen jedem Block im Studienplan und werden verwendet, um zu bestimmen, zu welchem SuperBlock ein Block gehört und in welcher Reihenfolge die Aufgaben innerhalb dieses Blocks bearbeitet werden.
Umbenennung von Dateien
Es kann vorkommen, dass du ein Zertifikat, einen Superblock, einen Block oder eine Aufgabe umbenennen musst. In diesem Abschnitt werden die notwendigen Schritte beschrieben, um Fehler bei der Umbenennung zu vermeiden.
[!ATTENTION] Das Umbenennen von Dateien innerhalb der Studienplanstruktur führt oft dazu, dass sich der Pfad (oder die URL) des Inhalts auf der Startseite ändert. Dies sollte mit Bedacht geschehen, da für jede Änderung eine Weiterleitung eingerichtet werden muss.
Umbenennen eines Zertifikats
Wenn du eine Zertifizierung umbenennst, willst du wahrscheinlich auch den zugehörigen Superblock umbenennen. Gehe wie folgt vor, um nur das Zertifikat umzubenennen:
- Benenne den Ordner
curriculum/challenges/_meta/{superBlock}-certificate
in den neuen Namen um. - Benenne in der Datei
meta.json
dieses Ordners die Werte inname
,dashedName
undchallengeOrder
in den neuen Zertifikatsnamen um. - Benenne den Ordner
{superBlock}-certificate
und die darin enthaltene YAML-Datei incurriculum/challenges/english/12-certificate
in den neuen Namen um. - Ändere den
title
in der YAML-Datei in den neuen Namen um. - Benenne die Datei und den Ordner aus Schritt 3 für die übrigen Studienplansprachen um.
- Aktualisiere
client/src/redux/index.ts
, um den richtigentitle
zu benutzen. - Optional aktualisiere den
certSlug
für den superblock in der gleichen Datei. Beachte, dass das Umbenennen einescertSlug
die URL für die Zertifizierung ändern wird und sollte deshalb nur nach sorgfältiger Überlegung durchgeführt werden. - Aktualisiere den
title
inclient/src/resources/cert-and-project-map.ts
auf den neuen Wert. Beachte, dass das Ändern destitle
hier die SuperBlock-Seite für die zugehörige Zertifizierung unterbricht. Er ist darauf angewiesen, dass der SuperBlock-Titel mit dem Titel der Zertifizierung übereinstimmt. Wahrscheinlich willst du den SuperBlock gleichzeitig umbenennen. - Wenn du den
certSlug
in Schritt 7 umbenannt hast, ändere ihn hier für das cert und alle verschachteltenprojects
-Werte. - Aktualisiere in
config/certification-settings.js
den Wert voncertTypeTitleMap
auf den neuen Namen. - Wenn du den
certSlug
in Schritt 7 umbenannt hast, aktualisiere den key voncertSlugTypeMap
in derselben Datei. - Aktualisiere bei Bedarf den Zertifikatsnamen im
legacyCerts
-Array vonclient/src/client-only-routes/show-project-links.tsx
. - Aktualisiere die Hauptdatei
README.md
auf den neuen Namen.
Umbenennen eines Superblocks
[!NOTE] Wenn du einen SuperBlock umbenennst, wird der neue Ordnername als Pfad verwendet und sollte als "richtiger" Name betrachtet werden. Alle anderen Werte sollten aktualisiert sein, um diese Veränderung widerzuspiegeln.
Außerdem wirst du wahrscheinlich das Zertifikat und den {superBlock}-projects
-Block umbenennen wollen, wenn du einen superBlock umbenennst, da sie alle einen gemeinsamen Namen haben. Um nur einen superBlock umzubenennen, musst du:
- Benenne den Ordner superBlock im Verzeichnis
curriculum/challenges/english
um. - Benenne den superBlock Ordner in allen anderen
curriculum/challenges/{language}
Verzeichnissen um. - Für jeden Block innerhalb dieses Superblocks aktualisierst du den
superBlock
-Wert in dermeta.json
-Datei auf seinen dashedName. Du musst hier keine Ordner umbenennen. Mach das, wenn du einen Block umbenennst. - Benenne den Superblock-Ordner in
client/src/pages/learn
um. - Aktualisiere die Datei
index.md
im oben genannten Ordner und ändere die Werte fürtitle
undsuperBlock
auf den neuen Namen. - Aktualisiere die
index.md
für jeden Blockordner, um den richtigensuperBlock
-Wert zu verwenden. - In der Datei
client/src/resources/cert-and-project-map.ts
aktualisierst du den Pfad für das Zertifikat(cert) am Anfang der Datei und dentitle
-Wert für diesen SuperBlock. Beachte, dass das Ändern destitle
hier die Möglichkeit zerstört, die eigentliche Zertifizierung für diesen SuperBlock anzuzeigen. Er ist darauf angewiesen, dass der SuperBlock-Titel mit dem Titel der Zertifizierung übereinstimmt. Wahrscheinlich möchtest du die Zertifizierung gleichzeitig umbenennen. - Aktualisiere den
superBlockCertTypeMap
Schlüssel(key) inconfig/certification-settings.js
auf den neuen SuperBlock-Namen. - Aktualisiere den Pfadwert in
client/src/assets/icons/index.tsx
. - Aktualisiere für jede Sprache in
client/i18n/locales
die Dateiintro.json
, um den neuen SuperBlockdashedName
zu verwenden. In der englischen Datei aktualisierst du auch dentitle
. - Überprüfe die Datei
config/i18n/all-langs.js
, um zu sehen, ob der SuperBlock in i18n-Builds aktiviert ist. Aktualisiere alle Werte, in denen er verwendet wird. - Aktualisiere die Hauptdatei
README.md
auf den neuen Namen.
Umbenennen eines Blocks
Wenn du einen Studienplanblock umbenennen willst, musst du Folgendes tun:
- Ändere den Namen des Blockordners im Verzeichnis
curriculum/challenges/english/{superBlock}
. - Ändere den Namen des gleichen Blockordners in allen der anderen Sprachverzeichnisse, damit er übereinstimmt. Diese müssen alle mit der englischen Struktur übereinstimmen, sonst wird der Build nicht funktionieren.
- Ändere den Namen des Blockordners im
_meta
-Verzeichnis. - Aktualisiere die Eigenschaften
name
unddashedName
in dermeta.json
-Datei des Blocks. - Aktualisiere die
client/utils/help-category-map.json
, um den neuen Blocknamen als Schlüssel(key) zu verwenden. - Aktualisiere den Blockordner in
client/src/pages/learn/{superBlock}
. - Aktualisiere in der
index.md
-Datei des obigen Ordners denblock
-Wert im Frontmatter. - Aktualisiere in den
client/i18n/locales/{language}/intro.json
-Dateien den Blocknamen auf den neuen Namen für alle Sprachen. In der englischenintro.json
-Datei aktualisierst du auch dentitle
. - Aktualisiere die Hauptdatei
README.md
auf den neuen Namen.
Umbenennen einer Aufgabe
Wenn du eine einzelne Aufgaben-Datei umbenennen willst, musst du Folgendes tun:
- Ändere den Namen der Challenge-Datei im Verzeichnis
curriculum/challenges/english
. - Ändere den Namen des
title
unddashedName
in dieser Datei. - Ändere den Namen der Datei und den
dashedName
in diesen Dateien, damit alle der anderen Sprachverzeichnisse übereinstimmen. - Aktualisiere den Namen der Aufgabe in der entsprechenden
meta.json
-Datei. Die Namen der Aufgaben werden im Build nicht verwendet, aber sie dienen dazu, die Reihenfolge der Aufgaben benutzerfreundlich zu gestalten. - Wenn es sich bei der Aufgabe um ein Zertifikatsprojekt handelt, aktualisiere die YAML-Datei in
curriculum/english/12-certificates/<superBlock>
auf den neuen Namen. - Wenn es sich bei der Aufgabe um ein Zertifikatsprojekt handelt, aktualisiere den
title
undlink
inclient/src/resources/cert-and-project-map.ts
- Wenn es sich bei der Aufgabe um ein Zertifikatsprojekt handelt, aktualisiere die Hauptdatei
README.md
auf den neuen Namen.
Die dashedName
-Eigenschaft
Die Eigenschaft dashedName
wird verwendet, um den URL-Pfad für den Superblock, Block oder die Aufgabe zu generieren. Diese sollten in der Regel dem entsprechen, was der /utils/slugs.js
Helper für den Dateinamen ausgeben würde.