Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Сборка HTML страницы из компонентов и стилей

В файле index.js директории 06-build-page напишите скрипт который:

  1. Создаёт папку project-dist.
  2. Заменяет шаблонные теги в файле template.html с названиями файлов из папки components (пример:{{section}}) на содержимое одноимённых компонентов и сохраняет результат в project-dist/index.html.
  3. Собирает в единый файл стили из папки styles и помещает их в файл project-dist/style.css.
  4. Копирует папку assets в project-dist/assets

Общие правила:

  • Запрещается использование любых сторонних модулей
  • Каждое из заданий должно запускаться командой node <имя папки задания> выполненной в корневой директории
  • Запрещается использование синхронных функций модуля fs такие, как fs.statSync(path[, options]), fs.readFileSync(path[, options]) и другие находящиеся в разделе synchronous API

Требования

  • После завершения работы скрипта должна быть создана папка project-dist
  • В папке project-dist должны находиться файлы index.html и style.css
  • В папке project-dist должна находиться папка assets являющаяся точной копией папки assets находящейся в 06-build-page
  • Запрещается использование fsPromises.cp()
  • Файл index.html должен содержать разметку являющуюся результатом замены шаблонных тегов в файле template.html
  • Файл style.css должен содержать стили собранные из файлов папки styles
  • При добавлении компонента в папку и соответствующего тега в исходный файл template.html повторное выполнение скрипта приведёт файл index.html в папке project-dist в актуальное состояние перезаписав его. Файл style.css и папка assets так же должны поддерживать актуальное состояние
  • При записи двух и более шаблонных тегов подряд в файле template.html, разделенных между собой только пробелами без переноса строки, не должно возникать ошибок выполнения кода. Например, {{about}} {{articles}} должно расцениваться как 2 отдельных компонента
  • Исходный файл template.html не должен быть изменён в ходе выполнения скрипта
  • Запись в шаблон содержимого любых файлов кроме файлов с расширением .html является ошибкой

Цели задания

  • Создание небольшой утилиты позволяющей собрать статичную HTML страницу.
  • Закрепление полученных знаний

Описание

Один из возможных порядков выполнения задачи:

  1. Импорт всех требуемых модулей
  2. Прочтение и сохранение в переменной файла-шаблона
  3. Нахождение всех имён тегов в файле шаблона
  4. Замена шаблонных тегов содержимым файлов-компонентов
  5. Запись изменённого шаблона в файл index.html в папке project-dist
  6. Использовать скрипт написанный в задании 05-merge-styles для создания файла style.css
  7. Использовать скрипт из задания 04-copy-directory для переноса папки assets в папку project-dist

Обратите внимание, что данный алгоритм вы можете оптимизировать и изменять по своему усмотрению.