From 10af49898fc7d3d1f1f297a1fc485313b32d00ee Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 4 Feb 2022 18:38:18 +0100 Subject: [PATCH] Added a skeleton StaticPage and StaticFolderPage classes and a few notes. --- modules/folder_pages/SCsub | 12 ++++++++ modules/folder_pages/detect.py | 27 ++++++++++++++++ modules/folder_pages/static_folder_page.cpp | 21 +++++++++++++ modules/folder_pages/static_folder_page.h | 34 +++++++++++++++++++++ modules/paged_list/paged_list.h | 4 +++ modules/static_pages/SCsub | 12 ++++++++ modules/static_pages/detect.py | 27 ++++++++++++++++ modules/static_pages/static_page.cpp | 18 +++++++++++ modules/static_pages/static_page.h | 33 ++++++++++++++++++++ 9 files changed, 188 insertions(+) create mode 100644 modules/folder_pages/SCsub create mode 100644 modules/folder_pages/detect.py create mode 100644 modules/folder_pages/static_folder_page.cpp create mode 100644 modules/folder_pages/static_folder_page.h create mode 100644 modules/static_pages/SCsub create mode 100644 modules/static_pages/detect.py create mode 100644 modules/static_pages/static_page.cpp create mode 100644 modules/static_pages/static_page.h diff --git a/modules/folder_pages/SCsub b/modules/folder_pages/SCsub new file mode 100644 index 0000000..e184b7a --- /dev/null +++ b/modules/folder_pages/SCsub @@ -0,0 +1,12 @@ +#!/usr/bin/env python + +Import("env_mod") +Import("env") + +env_mod.core_sources = [] + +env_mod.add_source_files(env_mod.core_sources, "*.cpp") + +# Build it all as a library +lib = env_mod.add_library("paged_list", env_mod.core_sources) +env.Prepend(LIBS=[lib]) diff --git a/modules/folder_pages/detect.py b/modules/folder_pages/detect.py new file mode 100644 index 0000000..3132192 --- /dev/null +++ b/modules/folder_pages/detect.py @@ -0,0 +1,27 @@ +import os +import platform +import sys + + +def is_active(): + return True + + +def get_name(): + return "paged_list" + + +def can_build(): + return True + + +def get_opts(): + return [] + +def get_flags(): + + return [] + + +def configure(env): + pass diff --git a/modules/folder_pages/static_folder_page.cpp b/modules/folder_pages/static_folder_page.cpp new file mode 100644 index 0000000..f2779d9 --- /dev/null +++ b/modules/folder_pages/static_folder_page.cpp @@ -0,0 +1,21 @@ +#include "static_folder_page.h" + +#include "core/http/request.h" + +#include +#include "core/file_cache.h" +#include "core/database/database_manager.h" +#include "core/html/html_builder.h" + +void StaticFolderPage::handle_request_main(Request *request) { +} + +void StaticFolderPage::load() { +} + +StaticFolderPage::StaticFolderPage() : + WebNode() { +} + +StaticFolderPage::~StaticFolderPage() { +} diff --git a/modules/folder_pages/static_folder_page.h b/modules/folder_pages/static_folder_page.h new file mode 100644 index 0000000..b73f57d --- /dev/null +++ b/modules/folder_pages/static_folder_page.h @@ -0,0 +1,34 @@ +#ifndef STATIC_FOLDER_PAGE_H +#define STATIC_FOLDER_PAGE_H + +#include "core/string.h" + +#include "core/http/web_node.h" + +//StaticFolderPage +//Just serve files +//404 if doesnt exist + +//staticsitefolderpage +//index file support per dir +//could render md -> if .md -> check if changed -> cache -> file date +//could render bbcode -> if .bb + +//static file list +//same as StaticFolderPage but can render file list + +class StaticFolderPage : public WebNode { + RCPP_OBJECT(StaticFolderPage, WebNode); + +public: + void handle_request_main(Request *request); + + void load(); + + StaticFolderPage(); + ~StaticFolderPage(); + + String folder; +}; + +#endif \ No newline at end of file diff --git a/modules/paged_list/paged_list.h b/modules/paged_list/paged_list.h index a50ef92..98cb882 100644 --- a/modules/paged_list/paged_list.h +++ b/modules/paged_list/paged_list.h @@ -8,6 +8,10 @@ #include "modules/list_page/list_page.h" #include "modules/paged_article/paged_article.h" +// inherit from StaticPage +// (make the module a dependency) +// Add PagedArticle as child -> rout everything to it the same way as now + class PagedList : public WebNode { RCPP_OBJECT(PagedList, WebNode); diff --git a/modules/static_pages/SCsub b/modules/static_pages/SCsub new file mode 100644 index 0000000..e184b7a --- /dev/null +++ b/modules/static_pages/SCsub @@ -0,0 +1,12 @@ +#!/usr/bin/env python + +Import("env_mod") +Import("env") + +env_mod.core_sources = [] + +env_mod.add_source_files(env_mod.core_sources, "*.cpp") + +# Build it all as a library +lib = env_mod.add_library("paged_list", env_mod.core_sources) +env.Prepend(LIBS=[lib]) diff --git a/modules/static_pages/detect.py b/modules/static_pages/detect.py new file mode 100644 index 0000000..3132192 --- /dev/null +++ b/modules/static_pages/detect.py @@ -0,0 +1,27 @@ +import os +import platform +import sys + + +def is_active(): + return True + + +def get_name(): + return "paged_list" + + +def can_build(): + return True + + +def get_opts(): + return [] + +def get_flags(): + + return [] + + +def configure(env): + pass diff --git a/modules/static_pages/static_page.cpp b/modules/static_pages/static_page.cpp new file mode 100644 index 0000000..9e1276f --- /dev/null +++ b/modules/static_pages/static_page.cpp @@ -0,0 +1,18 @@ +#include "static_page.h" + +#include "core/http/request.h" +#include "core/file_cache.h" +#include "core/html/html_builder.h" + +void StaticPage::handle_request_main(Request *request) { +} + +void StaticPage::load() { +} + +StaticPage::StaticPage() : + WebNode() { +} + +StaticPage::~StaticPage() { +} diff --git a/modules/static_pages/static_page.h b/modules/static_pages/static_page.h new file mode 100644 index 0000000..f8e79ce --- /dev/null +++ b/modules/static_pages/static_page.h @@ -0,0 +1,33 @@ +#ifndef STATIC_PAGE_H +#define STATIC_PAGE_H + +#include "core/string.h" + +#include "core/http/web_node.h" + +/* + +StaticPage -> string data (serve it) +load_md(path) + parse_md(data) +load_bbcode(path) + ... +load_html(path) +load_file(path) + +bool add menu -> handle + + +*/ + +class StaticPage : public WebNode { + RCPP_OBJECT(StaticPage, WebNode); + +public: + void handle_request_main(Request *request); + + void load(); + + StaticPage(); + ~StaticPage(); +}; + +#endif \ No newline at end of file