#pragma once #include "Directory.h" #include "ContentFile.h" #include #include #include #include class GeneratorConfig { void setThemePath(const Path& path) { mThemesPath = path; } void setActiveTheme(const std::string& theme) { mActiveTheme = theme; } private: Path mThemesPath; std::string mActiveTheme; }; class WebsiteGenerator { public: void findProject(const std::string& searchPath); void readConfig(); void parseContentFiles(); void parseTemplateFiles(); void doSubstitutions(); void write(); private: void findContentFiles(); Path getContentPath() const; Path getPagesPath() const; Path getArticlesPath() const; Path getConfigPath() const; std::filesystem::path mProjectPath; GeneratorConfig mConfig; std::vector mPages; std::vector mArticles; };