Звучит сложно, но на самом деле это не так страшно, если вы знакомы с Node.js и npm, активно применяющимися в инструментах веб-разработки.
Требуется установить Node.js (версию 12 LTS и выше). На нём работают все утилиты.
Для автоматизации задач используются 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 работает через HTML и Headless Chrome.
Должен быть установлен Google Chrome
(работает само), либо любой основанный на Chromium
браузер (например, стандартный в OS Windows Microsoft Edge).
Утилиты сборки будут искать браузер по стандартным путями установки Google Chrome
, затем по пути, указанному в ENV переменной CHROME_PATH
. Достаточно указать путь до любого установленного Chromium-based браузера в этой переменной при запуске.