aboutsummaryrefslogtreecommitdiffstats
path: root/web/template
diff options
context:
space:
mode:
authormsi2025-11-13 12:22:04 -0300
committermsi2025-11-13 12:22:04 -0300
commit87ee84f5386302d18576d88e02c1554a9362ca89 (patch)
treee7ae9e69fd12038279c89220ab1c647e315e5cbd /web/template
parentb245dfcf9dd441674b40605df41b2920c13b66f5 (diff)
downloadtemplates-87ee84f5386302d18576d88e02c1554a9362ca89.tar.gz
Add support serve static files
Diffstat (limited to 'web/template')
-rw-r--r--web/template/Cargo.toml2
-rw-r--r--web/template/assets/css/styles.css11
-rw-r--r--web/template/dprint.json19
-rw-r--r--web/template/src/main.rs29
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)
}