From 79a248d6410434e54f1def0605e7b23ec12f1d22 Mon Sep 17 00:00:00 2001 From: Pantonshire Date: Wed, 18 May 2022 15:30:26 +0100 Subject: [PATCH] Styling for index page --- .gitignore | 3 +- blog_server/src/main.rs | 5 +- blog_server/src/service/index.rs | 52 ++++++ blog_server/src/{services => service}/mod.rs | 0 .../src/{services => service}/posts.rs | 0 .../src/{services => service}/response.rs | 1 + blog_server/src/{services => service}/site.rs | 0 .../{services => service}/static_content.rs | 0 blog_server/src/services/index.rs | 24 --- blog_server/src/template.rs | 34 ++++ static/images/tombot_450.png | Bin 0 -> 64722 bytes static/style/main.css | 0 static/{style => styles}/code.css | 0 static/styles/main.css | 176 ++++++++++++++++++ static/test.html | 87 +++++++++ 15 files changed, 355 insertions(+), 27 deletions(-) create mode 100644 blog_server/src/service/index.rs rename blog_server/src/{services => service}/mod.rs (100%) rename blog_server/src/{services => service}/posts.rs (100%) rename blog_server/src/{services => service}/response.rs (98%) rename blog_server/src/{services => service}/site.rs (100%) rename blog_server/src/{services => service}/static_content.rs (100%) delete mode 100644 blog_server/src/services/index.rs create mode 100644 blog_server/src/template.rs create mode 100644 static/images/tombot_450.png delete mode 100644 static/style/main.css rename static/{style => styles}/code.css (100%) create mode 100644 static/styles/main.css create mode 100644 static/test.html diff --git a/.gitignore b/.gitignore index 10166c2..e007998 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store /target/ -/config.kdl \ No newline at end of file +/config.kdl +/static/fonts/ diff --git a/blog_server/src/main.rs b/blog_server/src/main.rs index 4d12e67..9e2c7de 100644 --- a/blog_server/src/main.rs +++ b/blog_server/src/main.rs @@ -3,7 +3,8 @@ mod fs_watcher; mod post; mod posts_store; mod render; -mod services; +mod service; +mod template; use std::{env, fs, path::PathBuf, thread}; @@ -79,7 +80,7 @@ fn main() -> miette::Result<()> { } async fn run(config: Config, posts_store: ConcurrentPostsStore) -> miette::Result<()> { - let service = services::site_service( + let service = service::site_service( posts_store, &config.static_dir, config.concurrency_limit diff --git a/blog_server/src/service/index.rs b/blog_server/src/service/index.rs new file mode 100644 index 0000000..90047b3 --- /dev/null +++ b/blog_server/src/service/index.rs @@ -0,0 +1,52 @@ +use axum::extract::Extension; +use maud::html; + +use crate::{ + posts_store::ConcurrentPostsStore, + template, +}; +use super::response::HtmlResponse; + +pub async fn handle(Extension(posts): Extension) -> HtmlResponse { + HtmlResponse::new() + .with_title_static("Placeholder title") + .with_crawler_permissive() + .with_head(html! { + link href="/static/styles/main.css" rel="stylesheet"; + }) + .with_body(template::main_page(html! { + section .content_section { + h2 { "Who I am" } + p { + "Hi! I'm Tom, a computer science student and hobbyist programmer." + } + figure { + img src="/static/images/tombot_450.png" + alt="A drawing by @smolrobots (on Twitter) of me as a robot. It has an \ + egg-shaped body and a smiling face, and is doing a little dance next \ + to a Raspberry Pi." + width="256"; + figcaption { + "Drawn by " + a href="https://twitter.com/smolrobots" { "@smolrobots" } + } + } + } + + section .content_section { + h2 { "Things I've made" } + p { "Todo" } + } + + section .content_section { + h2 { "Articles" } + ul { + @for post in posts.read().await.iter_by_created().rev() { + li { + a href={"/posts/" (post.id_str())} { (post.title()) } + } + } + } + } + })) +} diff --git a/blog_server/src/services/mod.rs b/blog_server/src/service/mod.rs similarity index 100% rename from blog_server/src/services/mod.rs rename to blog_server/src/service/mod.rs diff --git a/blog_server/src/services/posts.rs b/blog_server/src/service/posts.rs similarity index 100% rename from blog_server/src/services/posts.rs rename to blog_server/src/service/posts.rs diff --git a/blog_server/src/services/response.rs b/blog_server/src/service/response.rs similarity index 98% rename from blog_server/src/services/response.rs rename to blog_server/src/service/response.rs index 6fe4ca1..585242e 100644 --- a/blog_server/src/services/response.rs +++ b/blog_server/src/service/response.rs @@ -131,6 +131,7 @@ impl IntoResponse for HtmlResponse { head { meta charset="utf-8"; meta name="robots" content=(self.crawler_hints); + meta name="viewport" content="width=device-width, initial-scale=1"; title { (self.title) } @if let Some(head) = self.head { (head) diff --git a/blog_server/src/services/site.rs b/blog_server/src/service/site.rs similarity index 100% rename from blog_server/src/services/site.rs rename to blog_server/src/service/site.rs diff --git a/blog_server/src/services/static_content.rs b/blog_server/src/service/static_content.rs similarity index 100% rename from blog_server/src/services/static_content.rs rename to blog_server/src/service/static_content.rs diff --git a/blog_server/src/services/index.rs b/blog_server/src/services/index.rs deleted file mode 100644 index 293a739..0000000 --- a/blog_server/src/services/index.rs +++ /dev/null @@ -1,24 +0,0 @@ -use axum::extract::Extension; -use maud::html; - -use crate::posts_store::ConcurrentPostsStore; -use super::response::HtmlResponse; - -pub async fn handle(Extension(posts): Extension) -> HtmlResponse { - HtmlResponse::new() - .with_title_static("Placeholder title") - .with_crawler_permissive() - .with_body(html! { - h1 { "Here is my great heading" } - p { "Hello world" } - ul { - @for post in posts.read().await.iter_by_created().rev() { - li { - a href={ "/posts/" (post.id_str()) } { - (post.title()) - }; - } - } - } - }) -} diff --git a/blog_server/src/template.rs b/blog_server/src/template.rs new file mode 100644 index 0000000..e0cd44f --- /dev/null +++ b/blog_server/src/template.rs @@ -0,0 +1,34 @@ +use maud::{html, Markup}; + +pub fn main_page(content: Markup) -> Markup { + html! { + header #page_header .sticky_header { + nav #page_nav { + #title_box { + a href="/" { "Pantonshire" } + } + #right_nav_box { + ul { + li { a href="/" { "Articles" } } + li { a href="/" { "Atom" } } + li { a href="/" { "RSS" } } + li { a href="/" { "GitHub" } } + li { a href="/" { "Contact" } } + } + } + } + } + + main #page_main { + #content { + (content) + } + } + + footer #page_footer { + #page_footer_content { + span { "Here is some footer text" } + } + } + } +} diff --git a/static/images/tombot_450.png b/static/images/tombot_450.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5b561f7603c1ac18214c50ce32fc62e3eb2183 GIT binary patch literal 64722 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 bdTQiP5yt%?< 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 + + + + + + + Placeholder title + + + + + + + + + + +
+
+
+

Who I am

+

Hi! I'm Tom, a computer science student and hobbyist programmer.

+ +
+ +
Drawn by @smolrobots
+
+
+ +
+

Things I've made

+

+ Todo + + +

+
+ +
+

Articles

+ +
+
+
+ + + + + \ No newline at end of file