/platform-next

NextJS-based new generation of the platform

Primary LanguageTypeScriptMIT LicenseMIT

Платформа проекту webdoky.org

uk

Що це

Це генератор статичного вебстайту, збудований на базі NextJS, який відповідальний за функціонал, і зовнішній вигляд проєкту WebDoky.

За його вміст відповідає ось цей репозиторій, а для коректної навігації ми користуємося оригінальним репозиторієм MDN.

Як це запустити

  1. Склонуйте цей репозиторій (разом з підмодулями) у будь-яке зручне місце:

    git clone --recurse-submodules git@github.com:webdoky/platform-next.git
  2. Перейдіть всередину і встановіть необхідні залежності:

    yarn

    Якщо ця команда викинула помилку — впевніться, що у вас встановлено NodeJs, NPM та Yarn

  3. Підготуйте конфігурацію проекта у файлі .env.local (файл локальної конфігурації NextJS). Для цього можна скористатися підготовленим прикладом у файлі .env.example:

    mv ./.env.example ./.env.local
  4. Перед збиранням власне застосунку слід окремо підготувати його вміст, це найбілш часозатратна операція. :

    yarn pre-build
  5. Запустіть проект:

    yarn dev

    Також можна одразу згенерувати готовий статичний вебсайт:

    yarn build

    Загалом тут збережена конфігурація команд типового NextJS-проекту.

Структура файлів репозиторію

  • ./pages — шаблони сторінок та документу

  • ./components — файли компонентів застосунку

  • ./styles — файли стилів застосунку

  • ./content — підвантажувачі даних для самого застосунку

  • ./docs — файли внутрішньої документації проекту webdoky.org

  • ./utils — загальні функції та утиліти

  • ./pre-build — тут зосереджена логіка, яка відповідає за підготовку вмісту для подальшого використання під час збирання застосунку. Зокрема, тут виконуються такі етапи:

    • Зчитування файлів статей, їхня обробка та збереження результату у файловому кеші
    • Екстракція інтерактивних прикладів, збереження їх у вигляді окремих HTML-файлів
    • Екстракція файлів зображень і збереження їх у вигляді, придатному для подальшого використання фреймворком
    • ...та ін.
  • ./public — вміщує всі статичні файли проекту (включно також із тими, які створюються на етапі попередньої обробки вмісту).

  • ./external — підмодулі з текстовим вмістом та частиною інтерактивних прикладів

  • ./cache — тимчасовий файловий кеш, куди складаються результати виконання попередньої обробки вмісту.