inital commit
This commit is contained in:
commit
cef5a32041
10 changed files with 171 additions and 0 deletions
22
implementations/Catcrafts-Blog.cpp
Normal file
22
implementations/Catcrafts-Blog.cpp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
/*
|
||||
catcrafts.net
|
||||
Copyright (C) 2025 Catcrafts
|
||||
|
||||
The source code of this website is made available for viewing purposes only.
|
||||
No permission is granted to copy, modify, distribute, or create derivative works.
|
||||
*/
|
||||
|
||||
export module Catcrafts:Blog_impl;
|
||||
import :Blog;
|
||||
import std;
|
||||
|
||||
namespace Catcrafts {
|
||||
std::string RenderBlog() {
|
||||
std::string html = "";
|
||||
for(const BlogPost& post : *posts) {
|
||||
html += std::format("{}<br>{}<br><br>{}", post.name, post.date, post.content);
|
||||
}
|
||||
return html;
|
||||
}
|
||||
}
|
||||
|
||||
56
implementations/main.cpp
Normal file
56
implementations/main.cpp
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/*
|
||||
catcrafts.net
|
||||
Copyright (C) 2025 Catcrafts
|
||||
|
||||
The source code of this website is made available for viewing purposes only.
|
||||
No permission is granted to copy, modify, distribute, or create derivative works.
|
||||
*/
|
||||
|
||||
import Catcrafts;
|
||||
import Crafter.CppDOM;
|
||||
import std;
|
||||
using namespace Catcrafts;
|
||||
using namespace Crafter;
|
||||
using namespace Crafter::CppDOMBindings;
|
||||
|
||||
HtmlElementView* blogButton;
|
||||
|
||||
void RenderRoot(const std::string_view route) {
|
||||
std::string pageContent;
|
||||
if(route == "/blog") { //currently pointless if but for adding more pages in the future
|
||||
pageContent = RenderBlog();
|
||||
} else {
|
||||
pageContent = RenderBlog(); //default route
|
||||
}
|
||||
|
||||
body->SetInnerHTML(std::format(R"(
|
||||
Catcrafts.net
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a id="blog-nav-button">Blog</a></li>
|
||||
<li><a href="https://forgejo.catcrafts.net/">Forgejo</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
{}
|
||||
|
||||
<footer>Powered by Crafter.CppDOM, Running near native with WASM!, <a href="https://forgejo.catcrafts.net/Catcrafts/catcrafts.net">View source</a></footer>)", pageContent));
|
||||
|
||||
if(blogButton) {
|
||||
delete blogButton;
|
||||
}
|
||||
blogButton = new HtmlElementView("blog-nav-button");
|
||||
blogButton->AddClickListener([](Crafter::MouseEvent e) {
|
||||
std::cout << "click" << std::endl;
|
||||
PushState("{}", "", "/blog");
|
||||
RenderRoot("blog");
|
||||
});
|
||||
}
|
||||
|
||||
int main() {
|
||||
AddPopStateListener([]() {
|
||||
RenderRoot(GetPathNameString());
|
||||
});
|
||||
|
||||
RenderRoot("/");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue