From b4750b90533f59d8384a26dbcfc70b77fe52cf69 Mon Sep 17 00:00:00 2001 From: Maxwell Jeffress Date: Mon, 20 Jul 2026 20:31:25 +1000 Subject: [PATCH] Support for attributes --- build.sh | 4 +++- client/{header.html => header_bottom.html} | 7 ------- client/header_top.html | 7 +++++++ server/meson.build | 3 ++- server/src/main.cpp | 17 ++++++++++------- server/src/post.cpp | 11 +++++++++++ server/src/post.h | 1 + 7 files changed, 34 insertions(+), 16 deletions(-) rename client/{header.html => header_bottom.html} (79%) create mode 100644 client/header_top.html diff --git a/build.sh b/build.sh index ed94beb..02a5540 100644 --- a/build.sh +++ b/build.sh @@ -1,7 +1,9 @@ #!/bin/sh +bin2cpp --file=client/header_top.html --output=server/src/generated +bin2cpp --file=client/header_bottom.html --output=server/src/generated + bin2cpp --file=client/footer.html --output=server/src/generated -bin2cpp --file=client/header.html --output=server/src/generated bin2cpp --file=client/e404.html --output=server/src/generated bin2cpp --file=client/style.css --output=server/src/generated bin2cpp --file=client/script.js --output=server/src/generated diff --git a/client/header.html b/client/header_bottom.html similarity index 79% rename from client/header.html rename to client/header_bottom.html index 4226cd9..2a73a1a 100644 --- a/client/header.html +++ b/client/header_bottom.html @@ -1,10 +1,3 @@ - - - - posts - - -
diff --git a/client/header_top.html b/client/header_top.html new file mode 100644 index 0000000..08c2e10 --- /dev/null +++ b/client/header_top.html @@ -0,0 +1,7 @@ + + + + posts + + + diff --git a/server/meson.build b/server/meson.build index d1163a8..ccb16e4 100644 --- a/server/meson.build +++ b/server/meson.build @@ -5,7 +5,8 @@ sources = [ 'src/post.cpp', 'src/db.cpp', 'src/generated/e404.cpp', - 'src/generated/header.cpp', + 'src/generated/header_top.cpp', + 'src/generated/header_bottom.cpp', 'src/generated/footer.cpp', 'src/generated/style.cpp', 'src/generated/script.cpp', diff --git a/server/src/main.cpp b/server/src/main.cpp index a3eb273..202c64b 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -12,19 +12,22 @@ #include "post.h" #include "generated/e404.h" -#include "generated/header.h" +#include "generated/header_top.h" +#include "generated/header_bottom.h" #include "generated/footer.h" #include "generated/style.h" #include "generated/script.h" int main() { - const bin2cpp::File& headerfile = bin2cpp::getHeaderHtmlFile(); + const bin2cpp::File& headerTopFile = bin2cpp::getHeader_topHtmlFile(); + const bin2cpp::File& headerBottomFile = bin2cpp::getHeader_bottomHtmlFile(); const bin2cpp::File& footerfile = bin2cpp::getFooterHtmlFile(); const bin2cpp::File& e404file = bin2cpp::getE404HtmlFile(); const bin2cpp::File& stylefile = bin2cpp::getStyleCssFile(); const bin2cpp::File& scriptfile = bin2cpp::getScriptJsFile(); - std::string header{headerfile.getBuffer(), headerfile.getSize()}; + std::string headerTop{headerTopFile.getBuffer(), headerTopFile.getSize()}; + std::string headerBottom{headerBottomFile.getBuffer(), headerBottomFile.getSize()}; std::string footer{footerfile.getBuffer(), footerfile.getSize()}; std::string e404{e404file.getBuffer(), e404file.getSize()}; std::string style{stylefile.getBuffer(), stylefile.getSize()}; @@ -44,10 +47,10 @@ int main() { response.set_content(script, "text/css"); }); - svr.Get("/", [&header, &footer, &database, &data_mutex](const httplib::Request& request, httplib::Response& response) { + svr.Get("/", [&headerTop, &headerBottom, &footer, &database, &data_mutex](const httplib::Request& request, httplib::Response& response) { std::stringstream ss; - ss << header; + ss << headerTop << "" << headerBottom; std::lock_guard lock(data_mutex); @@ -68,7 +71,7 @@ int main() { } }); - svr.Get("/posts/:id", [&header, &footer, &e404, &database, &data_mutex](const httplib::Request& request, httplib::Response& response) { + svr.Get("/posts/:id", [&headerTop, &headerBottom, &footer, &e404, &database, &data_mutex](const httplib::Request& request, httplib::Response& response) { std::string postId = request.path_params.at("id"); try { uint64_t postIdNum = std::stoll(postId); @@ -81,7 +84,7 @@ int main() { } std::stringstream ss; - ss << header << post->genHtml() << footer; + ss << headerTop << post->genHtmlMeta() << headerBottom << post->genHtml() << footer; response.set_content(ss.str(), "text/html"); } catch (const std::runtime_error& e) { response.status = 500; diff --git a/server/src/post.cpp b/server/src/post.cpp index 8f6319b..118d0b8 100644 --- a/server/src/post.cpp +++ b/server/src/post.cpp @@ -60,3 +60,14 @@ std::string Post::genHtml() const { return ss.str(); } + +std::regex tags("<[^<]*>"); + +std::string Post::genHtmlMeta() const { + std::stringstream ss; + + ss << ""; + ss << ""; + + return ss.str(); +} diff --git a/server/src/post.h b/server/src/post.h index a368da3..a2785c8 100644 --- a/server/src/post.h +++ b/server/src/post.h @@ -17,6 +17,7 @@ struct Post { uint64_t userId = 0; std::string genHtml() const; + std::string genHtmlMeta() const; Post(std::string contentin, const std::string& user); Post(std::string contentin, uint64_t user);