Skip to content

vmedv/static_site_generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Static site generator

Тестовое задание для прохождения в команду группы разработки решений для защиты индустриальных систем (Санкт-Петербург).

Задание выполнено с помощью C++17 для ОС GNU/Linux (работоспособность на других ОС не исключается, но не гарантируется)

Использование

Сборка осуществляется с помощью CMake.

Полученный бинарный файл следует использовать так:

Usage:
./static_site_generator <input> <output>,
where both arguments are paths to directories and output is not a subdirectory of input.

Также есть ключ --help, выводящий usage-информацию.

Архитектура

Логика работы с директориями и файлами реализована в main.cpp с использованием библиотеки std::filesystem (C++17), реализована обработка ошибок файловой системы и аллокатора. Реализованы проверки на корректность входных данных.

Для элементов разметки созданы классы (markup.h и markup.cpp), описывающие содержимое элемента и позволяющие представлять элементы в нужном языке разметки (в рамках задания -- HTML, но несложно расширить до других языков).

Разбор разметки происходит простейшим парсером (gemtext.h и gemtext.cpp), который возвращает нужный элемент разметки. Это позволяет при надобности хранить структуру файла (в задании -- не требуется). Первичное разбиение на элементы происходит также в main.cpp.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks