- Определяются переменные, в т.ч. `config` из `./config.js` (все настройки).
-`blocksList = []` — массив классов-Блоков, которые будут получены из html.
-`configOld = require('./config.json')` — конфиг, который уже есть.
-`config = {}` — актуальный конфиг.
- Из pug собирается html.
- Из pug собирается html.
- Получившийся HTML анализируется, из атрибутов `class` формируется массив `blocksList`.
- Получившийся HTML анализируется, из атрибутов `class` формируется массив `blocksList` (файлы, перечисленные в `config.notGetBlocks` игнорируются; блоки, перечисленные в `config.ignoredBlocks` игнорируются).
- Из `blocksList` исключаются игнорируемые блоки, упомянутые в массиве `configOld.ignoredBlocks`.
- Формируется список использованных сейчас на проекте блоков:
- Формируем актуальный конфиг `config`:
- Из массива `config.blocks` убираются не использующиеся сейчас в разметке блоки.
- Добавляем не касающиеся блоков разделы из `configOld`.
- В массив `config.blocks` добавляются блоки, которые используются, но отсутствовали в нём (добавляются в конец).
- Обходим `blocksList` и проверяем для каждого блока существование стилевого файла, JS-файла, папки картинок. Записываем данные, идентичные старому конфигу по структуре.
- Если изменился список блоков, формируется контент `./config.js` и файл записывается на диск.
- Записываем актуальный конфиг в файл `config.json`.