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

Властивість dashedName використовується для створення шляху URL-адреси для суперблока, блока або завдання. Загалом вони повинні відповідати тому, що помічник /utils/slugs.js виведе для імені файлу.