freeCodeCamp/docs/i18n/ukrainian/curriculum-file-structure.md

12 KiB
Raw Blame History

Структура навчальної програми

Наш основний навчальний контент знаходиться у каталозі під назвою навчальна програма. На цій сторінці буде детально описано, як ці файли організовані.

Термінологія

При обговоренні навчальної програми важливо знати декілька термінів.

  • certification : Коли йдеться про сертифікацію, мається на увазі сертифікати, які отримують користувачі. Це не те саме, що й superBlock.
  • superBlock : superBlock — це збірка найскладніших завдань. Кожен суперблок відповідає сертифікату в навчальній програмі (наприклад, Адаптивний вебдизайн).
  • block : Блок — це розділ у межах superblock. Блок відповідає групі завдань у даній сертифікації (наприклад, Базовий HTML та HTML5)
  • challenge : Завдання — це окремий урок у навчальній програмі (наприклад, Ознайомтесь з HTML елементами)

Дерево файлів

Ось як буде виглядати структура файлів з цими термінами:


curriculum/
├─ _meta/
│  ├─ {block}/
│  │  ├─ meta.json
├─ {language}/
│  ├─ {superBlock}/
│  │  ├─ {block}/
│  │  │  ├─ {challenge}.md

Каталог _meta

Каталог _meta — це особливий каталог, який містить .json файли. Ці файли відповідають кожному окремому блоку в навчальній програмі та використовуються, щоб визначити до якого суперблоку належить блок та порядок завдань у цьому блоці.

Перейменування файлів

Інколи вам потрібно перейменувати сертифікат, суперблок, блок чи завдання. У цьому розділі будуть описані важливі кроки, які допоможуть вам уникнути помилок збірки.

[!УВАГА] Перейменування файлів у структурі навчальної програми часто змінює шлях (або URL-адресу) контенту на головній вебсторінці. Робити це слід з обережністю, оскільки перенаправлення потрібно налаштовувати для кожної внесеної зміни.

Перейменування сертифікату

Під час перейменування сертифікату ви, ймовірно, захочете перейменувати пов’язаний із ним суперблок. Виконуйте наступні дії, щоб перейменувати лише сертифікат:

  1. Оберіть нову назву для теки curriculum/challenges/_meta/{superBlock}-certificate.
  2. У файлі meta.json тієї теки, змініть значення в name, dashedName і challengeOrder на нову назву.
  3. У curriculum/challenges/english/12-certificate, перейменуйте теку {superBlock}-certificate і YAML файл у ній.
  4. У YAML файлі, змініть title на нову назву.
  5. Перейменуйте файл і теку з третього кроку для інших мов навчальної програми.
  6. Оновіть client/src/redux/index.ts, щоб використовувати правильний title.
  7. За бажанням оновіть і certSlug для суперблока в цьому ж файлі. Зауважте, що перейменування certSlug змінить URL-адресу для сертифікатів, тому це слід робити обачно.
  8. Оновіть title в client/src/resources/cert-and-project-map.ts до нових значень. Зверніть увагу, що зміна title тут зруйнує superBlock сторінку для відповідної сертифікації. Це пов'язано із тим, що назва superBlock має відповідати назві сертифікації. Бажано одночасно змінити й назву суперблоку.
  9. Якщо Ви перейменували certSlug у сьомому кроці, змініть його тут для сертифіката і вкладених projects значень.
  10. У config/certification-settings.js, оновіть значення certTypeTitleMap на нову назву.
  11. Якщо Ви перейменували certSlug у сьомому кроці, оновіть ключ доступу certSlugTypeMap в цьому ж файлі.
  12. За необхідності оновіть ім'я сертифікату в масиві legacyCerts з client/src/client-only-routes/show-project-links.tsx.
  13. Оновіть основний файл README.md до нового імені.

Перейменування суперблоку

[!NOTE] Під час перейменування суперблоку, нове ім’я теки використовується як шлях і його слід вважати «вірним» ім’ям. Усі інші значення слід оновити, щоб показати цю зміну.

Крім того, ви, ймовірно, захочете перейменувати сертифікат та блок {superBlock}-projects одночасно із superBlock, оскільки всі вони мають спільну назву. Виконайте наступні кроки, щоб перейменувати лише superBlock:

  1. Перейменуйте теку superBlock у каталозі curriculum/challenges/english.
  2. Перейменуйте теку superBlock у всіх інших каталогах curriculum/challenges/{language}.
  3. Для кожного блоку в цьому суперблоці оновіть значення superBlock в meta.json файлі на його ж dashedName. Вам не потрібно перейменовувати теки тут. Зробіть це при перейменуванні блоку.
  4. Перейменуйте теку суперблоку в client/src/pages/learn.
  5. Оновіть файл index.md у вищевказаній теці, змінивши title та superBlock значення на нове ім'я.
  6. Для кожної вищезазначеної теки у блоці, оновіть index.md, щоб використовувати її за правильним superBlock значенням.
  7. У файлі client/src/resources/cert-and-project-map.ts, оновіть алгоритм дій до сертифіката на початку файлу і значення title для цього суперблоку. Зверніть увагу: зміна title тут забере у Вас можливість переглядати дійсні сертифікати для цього суперблоку. Це пов'язано із тим, що назва superBlock має відповідати назві сертифікації. Бажано одночасно змінити й назву сертифіката.
  8. Оновіть superBlockCertTypeMap ключ у config/certification-settings.js до нової назви суперблоку.
  9. Оновіть значення шляху в client/src/assets/icons/index.tsx.
  10. Оновіть intro.json файл для кожної мови в client/i18n/locales, щоб мати змогу використати новий суперблок dashedName. В англійському файлі також оновіть title.
  11. Перевірте config/i18n/all-langs.js файл, щоб побачити чи надав суперблок можливість конвертації. Оновіть усі значення, де він використовується.
  12. Оновіть назву головного README.md файлу.

Перейменування блоку

При перейменуванні блоку навчальної програми, вам варто:

  1. Змінити назву теки блоку в каталозі curriculum/challenges/english/{superBlock}.
  2. Змінити назву тієї ж самої теки блоку в усіх іншомовних каталогах, аби вони збігалися. Вони повинні бути такі ж самі як і в англійській теці, інакше буде помилка збірки.
  3. Змінити назву теки блоку в _meta каталозі.
  4. Оновити властивості name та dashedName для meta.json файлу цього блоку.
  5. Оновити client/utils/help-category-map.json, щоб використати нову назву блоку як основну.
  6. Оновити теку блоку в client/src/pages/learn/{superBlock}.
  7. Оновити block значення в титульному елементі в файлі index.md з вищезгаданої теки.
  8. У файлах client/i18n/locales/{language}/intro.json оновіть назву блоку до нової для всіх мов. В англійському файлі intro.json також оновіть title.
  9. Оновити основний README.md файл до нового імені.

Перейменування завдання

Під час перейменування окремого файлу завдання Вам необхідно:

  1. Змінити назву файлу завдання в каталозі curriculum/challenges/english.
  2. Змінити назву title і dashedName у цьому файлі.
  3. Змінити назву файлу та dashedName у цих файлах для всіх каталогів мов так, щоб вони збігалися.
  4. Оновити назву завдання у відповідному файлі meta.json. Ці назви завдань не використовуються у збірці, але забезпечують зручний спосіб ідентифікації порядку завдань.
  5. Якщо за це завдання передбачений сертифікат, то оновіть назву файлу YAML у curriculum/english/12-certificates/<superBlock>.
  6. Якщо за це завдання передбачений сертифікат, оновіть title та link в client/src/resources/cert-and-project-map.ts
  7. Якщо за це завдання передбачений сертифікат, оновіть основний файл README.md до нового імені.

Властивість dashedName

The dashedName property is used to generate the URL path for the superblock, block, or challenge. These should generally match what the /utils/slugs.js helper would output for the file name.