8.6 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}-certificatein den neuen Namen um. - Benenne in der Datei
meta.jsondieses Ordners die Werte inname,dashedNameundchallengeOrderin den neuen Zertifikatsnamen um. - Benenne den Ordner
{superBlock}-certificateund die darin enthaltene YAML-Datei incurriculum/challenges/english/12-certificatein den neuen Namen um. - Ändere den
titlein 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 richtigentitlezu benutzen. - Optional aktualisiere den
certSlugfür den superblock in der gleichen Datei. Beachte, dass das Umbenennen einescertSlugdie URL für die Zertifizierung ändern wird und sollte deshalb nur nach sorgfältiger Überlegung durchgeführt werden. - Aktualisiere den
titleinclient/src/resources/cert-and-project-map.tsauf den neuen Wert. Beachte, dass das Ändern destitlehier 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
certSlugin Schritt 7 umbenannt hast, ändere ihn hier für das cert und alle verschachteltenprojects-Werte. - In
shared/config/certification-settings.js, update the value ofcertTypeTitleMapto the new name. - Wenn du den
certSlugin Schritt 7 umbenannt hast, aktualisiere den key voncertSlugTypeMapin derselben Datei. - Aktualisiere bei Bedarf den Zertifikatsnamen im
legacyCerts-Array vonclient/src/client-only-routes/show-project-links.tsx. - Aktualisiere die Hauptdatei
README.mdauf 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/englishum. - 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/learnum. - Aktualisiere die Datei
index.mdim oben genannten Ordner und ändere die Werte fürtitleundsuperBlockauf den neuen Namen. - Aktualisiere die
index.mdfür jeden Blockordner, um den richtigensuperBlock-Wert zu verwenden. - In der Datei
client/src/resources/cert-and-project-map.tsaktualisierst du den Pfad für das Zertifikat(cert) am Anfang der Datei und dentitle-Wert für diesen SuperBlock. Beachte, dass das Ändern destitlehier 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. - Update the
superBlockCertTypeMapkey inshared/config/certification-settings.jsto the new superBlock name. - Aktualisiere den Pfadwert in
client/src/assets/icons/index.tsx. - Aktualisiere für jede Sprache in
client/i18n/localesdie Dateiintro.json, um den neuen SuperBlockdashedNamezu verwenden. In der englischen Datei aktualisierst du auch dentitle. - Check the
shared/config/i18n/all-langs.jsfile to see if the superBlock is enabled in i18n builds. Aktualisiere alle Werte, in denen er verwendet wird. - Aktualisiere die Hauptdatei
README.mdauf 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
nameunddashedNamein dermeta.json-Datei des Blocks. - Update the block folder in
client/src/pages/learn/{superBlock}. - In the
index.mdfile of the above folder, update theblockvalue in the frontmatter. - In the
client/i18n/locales/{language}/intro.jsonfiles, update the block name to the new name for all the languages. In the Englishintro.jsonfile, update thetitleas well. - Update the main
README.mdfile to the new name.
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
titleunddashedNamein dieser Datei. - Ändere den Namen der Datei und den
dashedNamein 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
titleundlinkinclient/src/resources/cert-and-project-map.ts - Wenn es sich bei der Aufgabe um ein Zertifikatsprojekt handelt, aktualisiere die Hauptdatei
README.mdauf 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.