aboutsummaryrefslogtreecommitdiffstats
path: root/web/template/src/main.rs
diff options
context:
space:
mode:
authormsi2025-11-13 14:07:03 -0300
committermsi2025-11-13 14:07:03 -0300
commit017324a1e98ac2da7812e4fcc06fe67d424e4ffb (patch)
tree85e1901cfdfd2b370c73f03796626c9c814b04e9 /web/template/src/main.rs
parentb863a55d8a947cfcc6296d34edae4d1365a7725f (diff)
downloadtemplates-017324a1e98ac2da7812e4fcc06fe67d424e4ffb.tar.gz
Implement minijinja template
Diffstat (limited to 'web/template/src/main.rs')
-rw-r--r--web/template/src/main.rs41
1 files changed, 13 insertions, 28 deletions
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#"<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(INDEX)
-}