diff options
author | Bao Trinh <qubidt@gmail.com> | 2023-07-12 17:46:51 +0000 |
---|---|---|
committer | Bao Trinh <qubidt@gmail.com> | 2023-07-12 18:39:51 +0000 |
commit | b369a1a9ff3c60b67a7598d4486253c428e3a4da (patch) | |
tree | 2cdf9586cc50f999fc69f436aea89c5ff3332cba /src/main.rs | |
parent | simplify theme selection using data attributes (diff) | |
download | miniserve-b369a1a9ff3c60b67a7598d4486253c428e3a4da.tar.gz miniserve-b369a1a9ff3c60b67a7598d4486253c428e3a4da.zip |
Separate color schemes into separate files
Diffstat (limited to '')
-rw-r--r-- | src/main.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs index 2f81baa..33b0699 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,8 @@ mod renderer; use crate::config::MiniserveConfig; use crate::errors::ContextualError; +static STYLESHEET: &str = include_str!(concat!(env!("OUT_DIR"), "/style.css")); + fn main() -> Result<()> { let args = args::CliArgs::parse(); @@ -181,10 +183,20 @@ async fn run(miniserve_config: MiniserveConfig) -> Result<(), ContextualError> { .map(|sock| sock.to_string().green().bold().to_string()) .collect::<Vec<_>>(); + let stylesheet = web::Data::new( + [ + STYLESHEET, + inside_config.default_color_scheme.css(), + inside_config.default_color_scheme_dark.css_dark().as_str(), + ] + .join("\n"), + ); + let srv = actix_web::HttpServer::new(move || { App::new() .wrap(configure_header(&inside_config.clone())) .app_data(inside_config.clone()) + .app_data(stylesheet.clone()) .wrap_fn(errors::error_page_middleware) .wrap(middleware::Logger::default()) .route(&inside_config.favicon_route, web::get().to(favicon)) @@ -345,9 +357,8 @@ async fn favicon() -> impl Responder { .body(logo) } -async fn css() -> impl Responder { - let css = include_str!(concat!(env!("OUT_DIR"), "/style.css")); +async fn css(stylesheet: web::Data<String>) -> impl Responder { HttpResponse::Ok() .insert_header(ContentType(mime::TEXT_CSS)) - .body(css) + .body(stylesheet.to_string()) } |