Skip to content

Latest commit

 

History

History
59 lines (39 loc) · 5.88 KB

DEVELOPMENT.md

File metadata and controls

59 lines (39 loc) · 5.88 KB

Разработка курса

Звучит сложно, но на самом деле это не так страшно, если вы знакомы с Node.js и npm, активно применяющимися в инструментах веб-разработки.

Подготовка

Требуется установить Node.js (версию 12 LTS и выше). На нём работают все утилиты.

npm scripts

Для автоматизации задач используются npm scripts.

Запуск скрипта: npm run SCRIPT-NAME. В package.json можно посмотреть, какую команду запускает каждый скрипт.

Скрипт Описание
toc Обновление оглавлений страниц курса
build:pages Сборка в HTML основных страниц курса
build:labs-html Сборка HTML версий условий лабораторных работ
build:labs-pdf Сборка PDF версий условий лабораторных работ
build:materials Сборка условий лабораторных работ в HTML и PDF
build:materials-pdf Сборка презентаций в PDF
build:materials-html Сборка презентаций в HTML
build:materials Сборка презентаций в PDF и HTML
prebuild Выполнение всех обязательных скриптов перед полной сборкой
build Сборка всего вышеперечисленного
watch:materials Запуск сборки материалов в HTML с автоматической пересборкой при сохранении
serve:materials Запуск локального сервера в материалах с пересборкой при сохранении

Страницы курса

Курс описан несколькими страницами, такими как README.md, Plan.md, Exam.md и др.

  • Через markdown-toc добавляется авто-собираемое оглавление (скрипт toc).
  • Через md-to-pdf собираются HTML страницы для веб-версии курса (скрипт build:pages).

Лабораторные работы

Лабораторные работы описаны аналогично страницам курса, но дополнительно собираются в PDF.

Важно: у некоторых лабораторных работы есть отдельный репозиторий с условием и дополнительными файлами.

Материалы (презентации)

Презентации представлены текстом в формате Markdown (MD) с использованием Marp (Markdown Presentation Ecosystem): https://marp.app/

  • Создание и изменение презентации - редактирование файла .md. Описание возможностей и синтаксис: https://marpit.marp.app/
  • Преобразование презентации в HTML и PDF работает через marp-cli (см. npm scripts выше)
  • При редактировании презентации удобно включать режим сборки с watch (скрипт serve:materials), при котором презентация будет автоматически пересобираться в HTML и обновляться в браузере при изменении файла. Если у вас не работает этот скрипт, можно попробовать запустить его для конкретного файла npx marp -w ./materials/path/to/some.md
  • Либо можно запустить локальный сервер с npm run serve:materials, где запуститься сервер для материалов со сборкой презентаций
  • Можно использовать расширение для VS Code.

Примечание по преобразованию в PDF

Преобразование в PDF работает через HTML и Headless Chrome.

Должен быть установлен Google Chrome (работает само), либо любой основанный на Chromium браузер (например, стандартный в OS Windows Microsoft Edge).

Утилиты сборки будут искать браузер по стандартным путями установки Google Chrome, затем по пути, указанному в ENV переменной CHROME_PATH. Достаточно указать путь до любого установленного Chromium-based браузера в этой переменной при запуске.