/* Social program for Ramaskrik. Copyright (C) 2019 Harald Eilertsen This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ #![feature(proc_macro_hygiene, decl_macro)] use askama::Template; use rocket::{ get, http::RawStr, routes, response::{ NamedFile, content::Html, }, }; use std::path::PathBuf; #[derive(Template)] #[template(path = "index.html")] struct IndexTemplate<'a> { year: &'a str, } #[get("/")] fn index<'a>() -> Html { let t = IndexTemplate { year: "2019" }; Html(t.render().unwrap()) } #[get("/", rank = 99)] fn public_file(file: &RawStr) -> Option { NamedFile::open(PathBuf::from("public/").join(file.as_str())).ok() } fn main() { rocket::ignite().mount("/", routes![index, public_file]).launch(); }