/* This file is part of jellything (https://codeberg.org/metamuffin/jellything) which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin Copyright (C) 2023 tpart */ use rocket::{get, http::ContentType}; macro_rules! concat_files { ($($files:literal),*) => {{ #[cfg(debug_assertions)] { use std::{fs::read_to_string, path::PathBuf, str::FromStr}; [ $($files),* ] .into_iter() .map(|n| { read_to_string( PathBuf::from_str(file!()) .unwrap() .parent() .unwrap() .join(n), ) .unwrap() }) .collect::>() .join("\n") } #[cfg(not(debug_assertions))] concat!($(include_str!($files)),*).to_string() }}; } fn css_bundle() -> String { concat_files!( "layout.css", "player.css", "nodepage.css", "nodecard.css", "js-player.css", "forms.css" ) } fn js_bundle() -> String { concat_files!( // "transition.js", "js-player.js" ) } #[get("/assets/style.css")] pub fn r_assets_style() -> (ContentType, String) { (ContentType::CSS, css_bundle()) } #[get("/assets/cantarell.woff2")] pub fn r_assets_font() -> (ContentType, &'static [u8]) { (ContentType::WOFF2, include_bytes!("cantarell.woff2")) } #[get("/assets/bundle.js")] pub fn r_assets_js() -> (ContentType, String) { (ContentType::JavaScript, js_bundle()) }