From 87ee84f5386302d18576d88e02c1554a9362ca89 Mon Sep 17 00:00:00 2001 From: msi Date: Thu, 13 Nov 2025 12:22:04 -0300 Subject: Add support serve static files --- web/template/Cargo.toml | 2 +- web/template/assets/css/styles.css | 11 +++++++++++ web/template/dprint.json | 19 +++++++++++++++++++ web/template/src/main.rs | 29 +++++++++++++++++++++++------ 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 web/template/assets/css/styles.css create mode 100644 web/template/dprint.json (limited to 'web') diff --git a/web/template/Cargo.toml b/web/template/Cargo.toml index 9f7146c..6890378 100644 --- a/web/template/Cargo.toml +++ b/web/template/Cargo.toml @@ -11,6 +11,6 @@ anyhow = "=1.0.100" axum = "=0.8.6" serde = { version = "=1.0.228", features = ["derive"] } tokio = { version = "=1.48.0", features = ["macros", "rt-multi-thread", "signal"] } -tower-http = { version = "=0.6.6", features = ["timeout", "trace"] } +tower-http = { version = "=0.6.6", features = ["timeout", "trace", "fs"] } tracing = "=0.1.41" tracing-subscriber = { version = "=0.3.20", features = ["env-filter"] } diff --git a/web/template/assets/css/styles.css b/web/template/assets/css/styles.css new file mode 100644 index 0000000..629c8d2 --- /dev/null +++ b/web/template/assets/css/styles.css @@ -0,0 +1,11 @@ +html { + -webkit-text-size-adjust: 100%; + padding-bottom: 4em; +} +body { + font-family: sans-serif; + line-height: 1.5em; + max-width: 40em; + padding: 0 2%; + margin: auto; +} diff --git a/web/template/dprint.json b/web/template/dprint.json new file mode 100644 index 0000000..97bc373 --- /dev/null +++ b/web/template/dprint.json @@ -0,0 +1,19 @@ +{ + "markdown": { + }, + "toml": { + }, + "malva": { + }, + "markup": { + }, + "excludes": [ + "**/node_modules" + ], + "plugins": [ + "https://plugins.dprint.dev/markdown-0.20.0.wasm", + "https://plugins.dprint.dev/toml-0.7.0.wasm", + "https://plugins.dprint.dev/g-plane/malva-v0.15.0.wasm", + "https://plugins.dprint.dev/g-plane/markup_fmt-v0.24.1.wasm" + ] +} diff --git a/web/template/src/main.rs b/web/template/src/main.rs index 9e36cae..d686877 100644 --- a/web/template/src/main.rs +++ b/web/template/src/main.rs @@ -18,7 +18,9 @@ use std::time::Duration; use axum::{Router, response::Html, routing::get}; use tokio::net::TcpListener; -use tower_http::{timeout::TimeoutLayer, trace::TraceLayer}; +use tower_http::{ + services::ServeDir, timeout::TimeoutLayer, trace::TraceLayer, +}; use tracing::info; mod helpers; @@ -27,10 +29,14 @@ mod helpers; async fn main() -> anyhow::Result<()> { helpers::init_tracing(); - let app = Router::new().route("/", get(handler)).layer(( - TraceLayer::new_for_http(), - TimeoutLayer::new(Duration::from_secs(10)), // TODO(msi): from config - )); + let app = Router::new() + .route("/", get(handler)) + // TODO(msi): from config folder asssets + .nest_service("/assets", ServeDir::new("assets")) + .layer(( + TraceLayer::new_for_http(), + TimeoutLayer::new(Duration::from_secs(10)), // TODO(msi): from config + )); // TODO(msi): from config let listener = TcpListener::bind("0.0.0.0:3000").await?; @@ -42,6 +48,17 @@ async fn main() -> anyhow::Result<()> { Ok(()) } +const INDEX: &'static str = r#" +
+ + + +Template form https://ijanc.org
+ + +"#; + async fn handler() -> Html<&'static str> { - Html("