diff --git a/actix_mvc_app/src/controllers/home.rs b/actix_mvc_app/src/controllers/home.rs index 0700780..fc08b31 100644 --- a/actix_mvc_app/src/controllers/home.rs +++ b/actix_mvc_app/src/controllers/home.rs @@ -6,6 +6,20 @@ use crate::models::User; pub struct HomeController; impl HomeController { + /// Handles the markdown editor page route + pub async fn editor(tmpl: web::Data) -> Result { + let mut ctx = tera::Context::new(); + ctx.insert("active_page", "editor"); + + let rendered = tmpl.render("editor.html", &ctx) + .map_err(|e| { + eprintln!("Template rendering error: {}", e); + actix_web::error::ErrorInternalServerError("Template rendering error") + })?; + + Ok(HttpResponse::Ok().content_type("text/html").body(rendered)) + } + /// Handles the home page route pub async fn index(tmpl: web::Data) -> Result { let mut ctx = tera::Context::new(); diff --git a/actix_mvc_app/src/routes/mod.rs b/actix_mvc_app/src/routes/mod.rs index 750de08..153d462 100644 --- a/actix_mvc_app/src/routes/mod.rs +++ b/actix_mvc_app/src/routes/mod.rs @@ -25,6 +25,7 @@ pub fn configure_routes(cfg: &mut web::ServiceConfig) { .route("/about", web::get().to(HomeController::about)) .route("/contact", web::get().to(HomeController::contact)) .route("/contact", web::post().to(HomeController::submit_contact)) + .route("/editor", web::get().to(HomeController::editor)) // Auth routes .route("/login", web::get().to(AuthController::login_page)) diff --git a/actix_mvc_app/src/views/base.html b/actix_mvc_app/src/views/base.html index 9d90d65..1f1616a 100644 --- a/actix_mvc_app/src/views/base.html +++ b/actix_mvc_app/src/views/base.html @@ -29,6 +29,9 @@ +