summaryrefslogtreecommitdiff
path: root/htmlua-apache-cgi
diff options
context:
space:
mode:
Diffstat (limited to 'htmlua-apache-cgi')
-rw-r--r--htmlua-apache-cgi/Cargo.toml8
-rw-r--r--htmlua-apache-cgi/src/main.rs32
2 files changed, 40 insertions, 0 deletions
diff --git a/htmlua-apache-cgi/Cargo.toml b/htmlua-apache-cgi/Cargo.toml
new file mode 100644
index 0000000..7a8052d
--- /dev/null
+++ b/htmlua-apache-cgi/Cargo.toml
@@ -0,0 +1,8 @@
+[package]
+name = "htmlua-apache-cgi"
+version = "0.1.0"
+edition = "2024"
+
+[dependencies]
+htmlua-parser = { path = "../htmlua-parser" }
+kuchikiki = "0.8.2"
diff --git a/htmlua-apache-cgi/src/main.rs b/htmlua-apache-cgi/src/main.rs
new file mode 100644
index 0000000..ce86dc6
--- /dev/null
+++ b/htmlua-apache-cgi/src/main.rs
@@ -0,0 +1,32 @@
+use std::env;
+use std::fs;
+use std::fs::read_to_string;
+use std::path::{Path, PathBuf};
+use std::str::FromStr;
+use htmlua_parser::serve::serve_content;
+use kuchikiki::{
+ NodeRef,
+ traits::TendrilSink,
+};
+
+fn main() {
+ println!("Content-Type: text/html\n");
+
+ let request_uri = env::var("PATH_INFO").unwrap_or_else(|_| "".to_string());
+
+ let page = serve_content(request_uri.as_str()).unwrap();
+
+
+ // Output the final expanded HTML
+ println!("{page}");
+}
+
+// Simple HTML escape function
+fn html_escape(input: &str) -> String {
+ input
+ .replace('&', "&")
+ .replace('<', "&lt;")
+ .replace('>', "&gt;")
+ .replace('"', "&quot;")
+ .replace('\'', "&#x27;")
+}