diff --git a/public/404.html b/public/404.html index d42bc82..5cd9f19 100644 --- a/public/404.html +++ b/public/404.html @@ -2,14 +2,31 @@ Page Not Found - + + + + + -

Page cannot be found

-

Sorry, this page cannot be found.

+ +
+

Sorry, this page cannot be found.

+

Sorry, this page cannot be found.

+

Sorry, this page cannot be found.

+

Sorry, this page cannot be found.

+
Sorry, this page cannot be found.
+
Sorry, this page cannot be found.
+
diff --git a/public/assets/main.js b/public/assets/main.js index 3650871..60dc2f6 100644 --- a/public/assets/main.js +++ b/public/assets/main.js @@ -1,2 +1 @@ -alert("time to rock"); -console.log("hello"); +console.log("main.js loaded"); diff --git a/public/assets/style.css b/public/assets/style.css index 9036e97..c5db2cb 100644 --- a/public/assets/style.css +++ b/public/assets/style.css @@ -1,3 +1,19 @@ +@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Anton&family=Bebas+Neue&display=swap"); +:root { + --blue: #002D62; + --red: #C8102E; + --green: #4CAF50; + --background: #F5F5F5; + --primary-text: #1A1A1A; + --secondary-text: #555555; + --success: #2E8B57; + --warning: #FFA500; + --error: #D72638; + --primary-font: "Bebas Neue", sans-serif; + --secondary-font: "Anton", sans-serif; +} + /* 1. Use a more-intuitive box-sizing model */ *, *::before, *::after { box-sizing: border-box; @@ -53,8 +69,58 @@ h1, h2, h3, h4, h5, h6 { isolation: isolate; } +header { + background: var(--blue); + padding: 20px; +} +header #site-name { + font-family: var(--secondary-font); + font-size: 2rem; + letter-spacing: 1px; +} +header a { + color: var(--background); +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--primary-font); +} + +h1 { + font-size: 3rem; + font-weight: 700; +} + +h2 { + font-size: 2.5rem; + font-weight: 700; +} + +h3 { + font-size: 2rem; + font-weight: 500; +} + +h4 { + font-size: 1.5rem; + font-weight: 500; +} + +h5 { + font-size: 1.2rem; + font-weight: 500; +} + +h6 { + font-size: 1rem; + font-weight: 500; +} + body { - background: orange; + background: var(--background); + color: var(--primary-text); + padding: 20px; + font-size: 1.2rem; } img { diff --git a/public/assets/style.css.map b/public/assets/style.css.map index 8d73f85..f8656f2 100644 --- a/public/assets/style.css.map +++ b/public/assets/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../theme/reset.scss","../../theme/styles.scss"],"names":[],"mappings":"AAAA;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;IACE;;;AAIJ;AACE;EACA;AACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AClDF;EACE;;;AAGF;EACE;EACA","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../theme/styles.scss","../../theme/variables.scss","../../theme/reset.scss","../../theme/header.scss","../../theme/headings.scss"],"names":[],"mappings":"AAAQ;AACA;ACAR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACZF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;IACE;;;AAIJ;AACE;EACA;AACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACpDF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;;ACXJ;EACE;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAIF;EACE;EACA;;;AAIF;EACE;EACA;;;AJ3BF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA","file":"style.css"} \ No newline at end of file diff --git a/public/images/fenway.jpg b/public/images/fenway.jpg new file mode 100644 index 0000000..a44a86d Binary files /dev/null and b/public/images/fenway.jpg differ diff --git a/public/index.html b/public/index.html index 89a50b3..157127c 100644 --- a/public/index.html +++ b/public/index.html @@ -1,12 +1,28 @@ - Toolshed + BatFlip Scoring App + + + -

This is my toolshed. This web server is built using Rust :)

- some image + +
+

Live Baseball Scoring App, written in Rust

+ some image +
diff --git a/src/connection.rs b/src/connection.rs index 1d15a01..77443e8 100644 --- a/src/connection.rs +++ b/src/connection.rs @@ -51,26 +51,12 @@ pub fn handle_connection(mut stream: TcpStream) { ); stream.write(response.as_bytes()).unwrap(); stream.write(&image_data).unwrap(); - } - else { + } else { response = return_response(&inc_request.path); stream.write(response.as_bytes()).unwrap(); } } -#[allow(dead_code)] -fn get_header(headers: Vec, needle: &str) -> String { - let mut value = String::new(); - for header in headers { - let split_header: Vec<&str> = header.split(":").collect(); - let header_key: String = split_header.first().expect("Nothing here").to_string(); - if header_key == needle { - value = split_header[1].to_string(); - } - } - value -} - fn return_response(path_or_code: &str) -> String { let status_line: String; let contents: String; @@ -99,3 +85,16 @@ fn return_response(path_or_code: &str) -> String { pub fn path_exists(path: &str) -> bool { fs::metadata(path).is_ok() } + +#[allow(dead_code)] +fn get_header(headers: Vec, needle: &str) -> String { + let mut value = String::new(); + for header in headers { + let split_header: Vec<&str> = header.split(":").collect(); + let header_key: String = split_header.first().expect("Nothing here").to_string(); + if header_key == needle { + value = split_header[1].to_string(); + } + } + value +} diff --git a/src/router.rs b/src/router.rs index a141a67..0d21e3c 100644 --- a/src/router.rs +++ b/src/router.rs @@ -1,8 +1,28 @@ use std::fs; +use std::collections::HashMap; pub fn get_route_data(route: &str) -> String { - match route { + // @required - set valid routes here. + let route_map = HashMap::from([ + ("/", "./public/index.html"), + ]); + + dbg!(route_map.get(route)); + + // match route_map.get(route) { + // None => , + // Some(page) => Some(page), + // }; + // Some("test".to_string()) + // + // + // High leve list of thigns to do + // 1. get the correct file to retrieve + // 2. parse the file and swap out any dynamic sections + // 3. return the string based response. + let route_file: String = match route { "/" => { + " return fs::read_to_string("./public/index.html").unwrap(); }, "/about" => { @@ -17,6 +37,8 @@ pub fn get_route_data(route: &str) -> String { return fs::read_to_string("./public/404.html").unwrap(); } } + + // fs::read_to_string(route_file).unwrap(); } // pub fn path_exists(path: &str) -> bool { diff --git a/theme/header.scss b/theme/header.scss new file mode 100644 index 0000000..d050da9 --- /dev/null +++ b/theme/header.scss @@ -0,0 +1,14 @@ +header { + background: var(--blue); + padding: 20px; + + #site-name { + font-family: var(--secondary-font); + font-size: 2rem; + letter-spacing: 1px; + } + + a { + color: var(--background); + } +} diff --git a/theme/headings.scss b/theme/headings.scss new file mode 100644 index 0000000..690d137 --- /dev/null +++ b/theme/headings.scss @@ -0,0 +1,36 @@ +h1, h2, h3, h4, h5, h6 { + font-family: var(--primary-font); +} + +h1 { + font-size: 3rem; + font-weight: 700; + +} + +h2 { + font-size: 2.5rem; + font-weight: 700; +} + +h3 { + font-size: 2rem; + font-weight: 500; +} + +h4 { + font-size: 1.5rem; + font-weight: 500; + +} + +h5 { + font-size: 1.2rem; + font-weight: 500; + +} + +h6 { + font-size: 1rem; + font-weight: 500; +} diff --git a/theme/styles.scss b/theme/styles.scss index 21c6862..6f717e6 100644 --- a/theme/styles.scss +++ b/theme/styles.scss @@ -1,9 +1,19 @@ +@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Anton&family=Bebas+Neue&display=swap'); +@import "variables"; @import "reset"; +@import "header"; +@import "headings"; body { - background: orange; + background: var(--background); + color: var(--primary-text); + padding: 20px; + font-size: 1.2rem; } + + img { max-width: 100%; display: block; diff --git a/theme/variables.scss b/theme/variables.scss new file mode 100644 index 0000000..7949884 --- /dev/null +++ b/theme/variables.scss @@ -0,0 +1,14 @@ +// Color Scheme +:root { + --blue: #002D62; + --red: #C8102E; + --green: #4CAF50; + --background: #F5F5F5; + --primary-text: #1A1A1A; + --secondary-text: #555555; + --success: #2E8B57; + --warning: #FFA500; + --error: #D72638; + --primary-font: "Bebas Neue", sans-serif; + --secondary-font: "Anton", sans-serif; +} diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..e69de29