diff options
| author | msi | 2025-11-13 12:22:04 -0300 |
|---|---|---|
| committer | msi | 2025-11-13 12:22:04 -0300 |
| commit | 87ee84f5386302d18576d88e02c1554a9362ca89 (patch) | |
| tree | e7ae9e69fd12038279c89220ab1c647e315e5cbd | |
| parent | b245dfcf9dd441674b40605df41b2920c13b66f5 (diff) | |
| download | templates-87ee84f5386302d18576d88e02c1554a9362ca89.tar.gz | |
Add support serve static files
| -rw-r--r-- | web/template/Cargo.toml | 2 | ||||
| -rw-r--r-- | web/template/assets/css/styles.css | 11 | ||||
| -rw-r--r-- | web/template/dprint.json | 19 | ||||
| -rw-r--r-- | web/template/src/main.rs | 29 |
4 files changed, 54 insertions, 7 deletions
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#"<html> +<head> +<link href="/assets/css/styles.css" rel="stylesheet" type="text/css"> +</head> +<body> +<h1><h1>Hello, World {{project-name}} =]</h1> +<p>Template form https://ijanc.org</p> +</body> +</html> +"#; + async fn handler() -> Html<&'static str> { - Html("<h1>Hello, World {{project-name}} =]</h1>") + Html(INDEX) } |