diff --git a/src/builder/builder.cpp b/src/builder/builder.cpp index 8216505..0eafde8 100644 --- a/src/builder/builder.cpp +++ b/src/builder/builder.cpp @@ -5,18 +5,33 @@ std::string build_index(const std::string &TEMPLATE, const Page &PAGE, const Information &INFORMATION) { std::string result = TEMPLATE; - result = format_file(result, "{{lang}}", INFORMATION.config.general.lang); - result = format_file(result, "{{head}}", PAGE.head); - result = format_file(result, "{{header}}", PAGE.header); - result = format_file(result, "{{main}}", PAGE.main); - result = format_file(result, "{{footer}}", PAGE.footer); + result = + format_file(result, "{{config.lang}}", INFORMATION.config.general.lang); + result = format_file(result, "{{page.head}}", PAGE.head); + result = format_file(result, "{{page.header}}", PAGE.header); + result = format_file(result, "{{page.main}}", PAGE.main); + result = format_file(result, "{{page.footer}}", PAGE.footer); + return result; +} + +std::string build_blog_entry(const std::string &TEMPLATE, const Page &BLOG, + const Information &INFORMATION) { + std::string result = TEMPLATE; + result = + format_file(result, "{{config.lang}}", INFORMATION.config.general.lang); + result = format_file(result, "{{page.head}}", BLOG.head); + result = format_file(result, "{{page.header}}", BLOG.header); + result = + format_file(result, "{{metadata.title}}", INFORMATION.metadata.title); + result = format_file(result, "{{page.content}}", BLOG.main); + result = format_file(result, "{{page.footer}}", BLOG.footer); return result; } std::string build_header(const std::string &TEMPLATE, const Information &INFORMATION) { std::string result = - format_file(TEMPLATE, "{{title}}", INFORMATION.metadata.title); + format_file(TEMPLATE, "{{metadata.title}}", INFORMATION.metadata.title); ; return result; @@ -25,7 +40,7 @@ std::string build_header(const std::string &TEMPLATE, std::string build_head(const std::string &TEMPLATE, const Information &INFORMATION) { std::string result = - format_file(TEMPLATE, "{{title}}", INFORMATION.metadata.title); + format_file(TEMPLATE, "{{metadata.title}}", INFORMATION.metadata.title); return result; } diff --git a/src/builder/builder.hpp b/src/builder/builder.hpp index 08c2373..9ed52ed 100644 --- a/src/builder/builder.hpp +++ b/src/builder/builder.hpp @@ -20,3 +20,12 @@ struct Information { // @return Built index.html in string std::string build_index(const std::string &TEMPLATE, const Page &PAGE, const Information &INFORMATION); + +// @brief Function that builds particular blog entry. It takes all it's +// information flog `Page struct` that should be built before calling it. +// @param TEMPLATE Template file for blog +// @param PAGE Page struct with information on blog entry content +// @param INFORMATION Information metadata about config and metadata of the file +// @return Built blog_entry.html in string +std::string build_blog_entry(const std::string &TEMPLATE, const Page &BLOG, + const Information &INFORMATION); diff --git a/src/tests.cpp b/src/tests.cpp index 4d61b81..accd94d 100644 --- a/src/tests.cpp +++ b/src/tests.cpp @@ -131,16 +131,30 @@ This [should be clickable](https://example.com) - nine)"; constexpr const char *template_index = R"( - +
- {{head}} + {{page.head}} -