add icons

This commit is contained in:
JMARyA 2024-09-17 07:32:49 +02:00
parent d8ffb7cf75
commit b2f7640b29
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
3 changed files with 17 additions and 1 deletions

View file

@ -6,5 +6,6 @@ services:
- "8000:8000"
volumes:
- ./config.yml:/config.yml
- ./icons:/static/icons
environment:
ROCKET_ADDRESS: 0.0.0.0

View file

@ -11,6 +11,7 @@ pub struct Config {
pub struct Project {
pub name: String,
pub description: String,
pub icon: Option<String>,
pub website: Option<String>,
pub documentation: Option<String>,
pub since: Option<String>,
@ -47,6 +48,9 @@ impl Project {
maud::html!(
div class="card" id=(card_id) {
@if let Some(icon) = &self.icon {
img src=(format!("/static/icons/{}", icon)) style="float: left; width: 200px; height: 200px;";
}
h3 { (self.name) };
p { (self.description) };
@if let Some(website) = &self.website {

View file

@ -1,10 +1,19 @@
use std::path::Path;
use config::Config;
use rocket::fs::NamedFile;
use rocket::response::content::RawHtml;
use rocket::{get, launch, routes, State};
mod config;
mod site;
#[get("/icon/<file>")]
async fn icon_res(file: &str) -> Option<NamedFile> {
let path = Path::new("static/icons/").join(file);
NamedFile::open(path).await.ok()
}
#[get("/")]
pub fn main_page(c: &State<Config>) -> RawHtml<String> {
RawHtml(site::gen_site(c))
@ -18,5 +27,7 @@ async fn rocket() -> _ {
.unwrap_or("./config.yml".to_string());
let conf = config::Config::load(&conf_path);
rocket::build().mount("/", routes![main_page]).manage(conf)
rocket::build()
.mount("/", routes![main_page, icon_res])
.manage(conf)
}