From 017324a1e98ac2da7812e4fcc06fe67d424e4ffb Mon Sep 17 00:00:00 2001 From: msi Date: Thu, 13 Nov 2025 14:07:03 -0300 Subject: Implement minijinja template --- web/template/src/main.rs | 41 +++++++++++++---------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) (limited to 'web/template/src/main.rs') diff --git a/web/template/src/main.rs b/web/template/src/main.rs index d686877..20a1974 100644 --- a/web/template/src/main.rs +++ b/web/template/src/main.rs @@ -14,29 +14,29 @@ // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // -use std::time::Duration; +use std::sync::Arc; -use axum::{Router, response::Html, routing::get}; +use minijinja::Environment; use tokio::net::TcpListener; -use tower_http::{ - services::ServeDir, timeout::TimeoutLayer, trace::TraceLayer, -}; use tracing::info; mod helpers; +mod router; +mod state; #[tokio::main] async fn main() -> anyhow::Result<()> { helpers::init_tracing(); - 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 - )); + let mut env = Environment::new(); + env.add_template("layout", include_str!("../templates/layout.jinja"))?; + env.add_template("home", include_str!("../templates/home.jinja"))?; + env.add_template("content", include_str!("../templates/content.jinja"))?; + env.add_template("about", include_str!("../templates/about.jinja"))?; + + let app_state = Arc::new(state::AppState { env }); + + let app = router::route(app_state); // TODO(msi): from config let listener = TcpListener::bind("0.0.0.0:3000").await?; @@ -47,18 +47,3 @@ async fn main() -> anyhow::Result<()> { Ok(()) } - -const INDEX: &'static str = r#" - - - - -

Hello, World {{project-name}} =]

-

Template form https://ijanc.org

- - -"#; - -async fn handler() -> Html<&'static str> { - Html(INDEX) -} -- cgit v1.2.3