From 392444d21101ce7b637f2e5a385490605f93ccf1 Mon Sep 17 00:00:00 2001 From: Kaiden Fey Date: Sun, 25 Oct 2020 02:40:33 +0100 Subject: Big project update --- src/main.rs | 8 +++----- src/pages/mod.rs | 32 ++++++++++++++++++++++++++++++++ src/pages/repo/details.rs | 11 +++++------ src/project/mod.rs | 8 ++++++++ 4 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 src/project/mod.rs (limited to 'src') diff --git a/src/main.rs b/src/main.rs index a0d6dce..92e1bc7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,8 @@ mod pages; mod repo; mod templ_data; +mod project; + use actix_files as fs; use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer}; use std::io; @@ -20,11 +22,7 @@ async fn main() -> io::Result<()> { // This is a bit of a hack so that people don't get the // 404 on the root page. Especially as long as octopus // doesn't have the account overview yet! - .service(web::resource("/").route(web::get().to(|_: HttpRequest| { - HttpResponse::PermanentRedirect() - .header("Location", "octopus") - .finish() - }))) + .service(web::resource("/").route(web::get().to(pages::index))) .service(web::resource("/{repo}").route(web::get().to(pages::repo::about))) .service(web::resource("/{repo}/details").route(web::get().to(pages::repo::details))) .default_service(web::resource("").route(web::get().to(pages::p404))) diff --git a/src/pages/mod.rs b/src/pages/mod.rs index f838eee..5689af7 100644 --- a/src/pages/mod.rs +++ b/src/pages/mod.rs @@ -7,3 +7,35 @@ pub mod repo; mod p404; pub use p404::render as p404; + +use actix_web::{web, HttpRequest, HttpResponse, Result}; +use askama::Template; + +pub(crate) struct BaseData { + sitename: String, + has_wiki: bool, +} + +#[derive(Template)] +#[template(path = "index.html", escape = "none")] +pub(crate) struct Index { + base: BaseData, + readme: String, +} + +pub async fn index(req: HttpRequest) -> Result { + + let readme: String = markdown::to_html(include_str!("../../fake-readme.md").into()); + + let index = Index { + base: BaseData { + sitename: "dev.spacekookie.de".into(), + has_wiki: true, + }, + readme + + } + .render() + .unwrap(); + Ok(HttpResponse::Ok().content_type("text/html").body(index)) +} diff --git a/src/pages/repo/details.rs b/src/pages/repo/details.rs index d5822d6..7298e15 100644 --- a/src/pages/repo/details.rs +++ b/src/pages/repo/details.rs @@ -9,16 +9,15 @@ pub async fn render(req: HttpRequest, path: web::Path) -> Result bool { + p.join(".octopus").exists() +} -- cgit v1.2.3