9.7 KiB
カリキュラムファイルの構造
名前が付けられた curriculum ディレクトリ内に、コア教育コンテンツがあります。 このページでは、それらのファイルがどのように整理されているのかを説明します。
用語
カリキュラム内容を説明する際に使用する用語がいくつかあります。
certification: この場合、ユーザーが求める実際の認定講座を意味します。 これは、スーパーブロック名とは別のものです。superBlock: スーパーブロックは、チャレンジの最上位レベルのコレクションです。 Each superblock corresponds to a certification in the curriculum (e.g. Responsive Web Design).block: ブロックは、スーパーブロック内のセクションです。 A block corresponds to a group of challenges in a given certification (e.g. Basic HTML and HTML5)challenge: A challenge is a single lesson within the curriculum (e.g. Say Hello to HTML Elements)
ファイルツリー
これらの用語を使用して、以下のようにファイル構造が定義されます。
curriculum/
├─ _meta/
│ ├─ {block}/
│ │ ├─ meta.json
├─ {language}/
│ ├─ {superBlock}/
│ │ ├─ {block}/
│ │ │ ├─ {challenge}.md
_meta ディレクトリ
_meta ディレクトリは、.json ファイルを含む特別なディレクトリです。 これらのファイルは、カリキュラム内の各ブロックに相当します。ブロックが属するスーパーブロックと、そのブロック内のチャレンジの順序を決めるために使用されます。
ファイル名を変更する
認定講座、スーパーブロック名、ブロック名、もしくはチャレンジ名を変更する必要がある場合があります。 このセクションでは、ビルドエラーを避けるために必要な手順を概説します。
[!ATTENTION] カリキュラム構造内のファイル名を変更すると、メインの Web ページ上のコンテンツパス (または URL) が変更されることがあります。 変更ごとにリダイレクトを設定する必要があるため、注意して行ってください。
認定講座名を変更する
認定講座名を変更する際、関連付けられているスーパーブロック名も一緒に変更することも検討するでしょう。 以下は、認定講座名のみを変更するための手順です。
curriculum/challenges/_meta/{superBlock}-certificateフォルダ名を変更します。- フォルダの
meta.jsonファイル内で、name、dashedName、challengeOrderの値を新しい認定講座名に変更します。 curriculum/challenges/english/12-certificate内で、{superBlock}-certificateフォルダ名と、その中の YAML ファイル名を変更します。- YAML ファイルの
title名を変更します。 - Rename the file and folder from step 3 for the rest of the curriculum languages.
client/src/redux/index.tsを更新して、正しいtitleを使用してください。- 必要に応じて、同じファイル内のスーパーブロックの
certSlugを更新します。注:certSlug名を変更すると、認定講座の URL が変更されるため、慎重に変更します。 client/src/resources/cert-and-project-map.ts内のtitleを新しい値に更新してください。注: ここでtitleを変更すると、関連する認定講座のスーパーブロックのページ が 壊れます。 そのページは、スーパーブロックのタイトルに依存しており、認定講座タイトルと一致します。 スーパーブロック名も同時に変更したい場合があるからです。- 手順 7 で、
certSlug名を変更した場合は、認定講座とネストされたprojectsの値を変更します。 config/certification-settings.jsで、certTypeTitleMapの値を新しい名前に更新します。- 手順 7 で
certSlugを変更した場合、同じファイル内のcertSlugTypeMapのキーを更新します。 - 必要に応じて、
client/src/client-only-routes/show-project-links.tsxのlegacyCerts配列内の認定講座名を更新します。 - メイン
README.mdファイル名を新しい名前に更新します。
スーパーブロック名を変更する
[!NOTE] スーパーブロック名を変更すると、新しいフォルダ名がパスとして使用され、「正しい」フォルダ名とみなされます。 その変更を反映するために、その他のすべての値を更新する必要があります。
Also, you will likely want to rename the certificate and the {superBlock}-projects block when you rename a superBlock since they all share a name. 以下は、スーパーブロック名のみを変更するための手順です。
- スーパーブロックのフォルダ名を
curriculum/challenges/englishディレクトリに変更します。 - 他の すべての
curriculum/challenges/{language}ディレクトリのスーパーブロックフォルダ名を変更します。 - スーパーブロック内の各ブロックについて、
meta.jsonファイル内のsuperBlockの値をその dashedName に更新します。 ここでは、フォルダ名を変更する必要はありません。 ブロック名変更時に、フォルダ名を変更します。 client/src/pages/learn内のスーパーブロックのフォルダ名を変更します。- 上記フォルダの
index.mdファイルを更新し、titleとsuperBlockの値を新しい名前に変更します。 - 上記の各ブロックフォルダで、
index.mdを更新して、正しいsuperBlockの値を使用します。 client/src/resources/cert-and-project-map.tsファイルで、ファイルの先頭にある認定講座パスと、スーパーブロックのtitle値を更新します。注: ここでtitleを変更すると、スーパーブロックの実際の認定講座を表示する機能が 壊れます。 表示機能は、スーパーブロックのタイトルに依存しており、認定講座タイトルと一致します。 認定講座名も同時に変更したいものです。config/certification-settings.jsのsuperBlockCertTypeMapキーを新しいスーパーブロック名に更新します。client/src/assets/icons/index.tsxのパス値を更新します。client/i18n/localesの言語ごとに、intro.jsonファイルを更新して新しいスーパーブロックdashedNameを使用します。英語のファイルのtitleも更新します。- i18n ビルドでスーパーブロックが使用可能かどうかを確認するには、
config/i18n/all-langs.jsファイルを確認します。 使用しているすべての値を更新します。 - メイン
README.mdファイルを新しい名前に更新します。
ブロック名を変更する
以下の手順に従い、カリキュラムブロック名を変更します。
curriculum/challenges/english/{superBlock}ディレクトリ内のブロックフォルダ名を変更します。- 他の言語ディレクトリ すべて において、同じブロックフォルダの名前を一致させます。 これらすべてが英語の構造と同じでないと、ビルドエラーになります。
_metaディレクトリ内のブロックフォルダ名を変更します。- ブロックの
meta.jsonファイルのnameとdashedNameプロパティを更新します。 client/utils/help-category-map.jsonを更新して、新しいブロック名をキーとして使用します。client/src/pages/learn/{superBlock}のブロックフォルダを更新します。- 上記フォルダの
index.mdファイルで、フロントマターのブロックの値を更新します。 client/i18n/locales/{language}/intro.jsonファイルで、全言語のブロック名を更新します。英語のintro.jsonファイルでは、titleも更新します。- メイン
README.mdファイルを新しい名前に更新します。
チャレンジ名を変更する
以下の手順に従い、単一のチャレンジファイル名を変更します。
urriculum/challenges/englishディレクトリのチャレンジファイル名を変更します。- ファイル内の
title名とdashedName名を変更します。 - ファイル名と他の言語ディレクトリ すべて のファイルの
dashedNameを変更して一致させます。 - 該当する
meta.jsonファイルのチャレンジ名を更新します。 ここでのチャレンジ名は、ビルドでは使用されませんが、チャレンジの順序を識別するためのユーザーフレンドリーな方法を提供します。 - チャレンジが認定講座プロジェクトの場合、
curriculum/english/12-certificates/<superBlock>内の YAML ファイルを新しい名前に更新します。 - チャレンジが認定講座プロジェクトの場合、
client/src/resources/cert-and-project-map.tsのtitleとlinkを更新します。 - チャレンジが認定講座プロジェクトの場合、メイン
README.mdファイルを新しい名前に更新します。
dashedName プロパティ
dashedName プロパティは、スーパーブロック、ブロック、またはチャレンジの URL パスを生成するために使用されます。これらは通常 /utils/slugs.js ヘルパーがファイル名に対して出力するものと一致します。