diff options
author | Lukas Stabe <lukas@stabe.de> | 2020-09-26 02:45:31 +0000 |
---|---|---|
committer | Lukas Stabe <lukas@stabe.de> | 2020-09-26 02:45:31 +0000 |
commit | dab13c9bb3336aac4e44171f3074c4ce973b9782 (patch) | |
tree | 1e4592b6c38e9d230b76d9e0d485cb4be7c4f6f2 /src/main.rs | |
parent | [wip] client-side color-scheme handling (diff) | |
download | miniserve-dab13c9bb3336aac4e44171f3074c4ce973b9782.tar.gz miniserve-dab13c9bb3336aac4e44171f3074c4ce973b9782.zip |
move css out of html into its own route
Diffstat (limited to '')
-rw-r--r-- | src/main.rs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs index ffb393b..5b53070 100644 --- a/src/main.rs +++ b/src/main.rs @@ -56,6 +56,9 @@ pub struct MiniserveConfig { /// Randomly generated favicon route pub favicon_route: String, + /// Randomly generated css route + pub css_route: String, + /// Default color scheme pub default_color_scheme: themes::ColorScheme, @@ -252,6 +255,10 @@ async fn run() -> Result<(), ContextualError> { &format!("/{}", inside_config.favicon_route), web::get().to(favicon), ) + .route( + &format!("/{}", inside_config.css_route), + web::get().to(css), + ) .configure(|c| configure_app(c, &inside_config)) .default_service(web::get().to(error_404)) }) @@ -284,6 +291,7 @@ fn configure_app(app: &mut web::ServiceConfig, conf: &MiniserveConfig) { let no_symlinks = conf.no_symlinks; let random_route = conf.random_route.clone(); let favicon_route = conf.favicon_route.clone(); + let css_route = conf.css_route.clone(); let show_qrcode = conf.show_qrcode; let file_upload = conf.file_upload; let tar_enabled = conf.tar_enabled; @@ -313,6 +321,7 @@ fn configure_app(app: &mut web::ServiceConfig, conf: &MiniserveConfig) { file_upload, random_route.clone(), favicon_route.clone(), + css_route.clone(), show_qrcode, u_r.clone(), tar_enabled, @@ -326,12 +335,13 @@ fn configure_app(app: &mut web::ServiceConfig, conf: &MiniserveConfig) { }; let favicon_route = conf.favicon_route.clone(); + let css_route = conf.css_route.clone(); if let Some(serve_path) = serve_path { if conf.file_upload { // Allow file upload app.service( web::resource(&upload_route).route(web::post().to(move |req, payload| { - file_upload::upload_file(req, payload, uses_random_route, favicon_route.clone()) + file_upload::upload_file(req, payload, uses_random_route, favicon_route.clone(), css_route.clone()) })), ) // Handle directories @@ -351,6 +361,7 @@ async fn error_404(req: HttpRequest) -> HttpResponse { let conf = req.app_data::<MiniserveConfig>().unwrap(); let uses_random_route = conf.random_route.is_some(); let favicon_route = conf.favicon_route.clone(); + let css_route = conf.css_route.clone(); let query_params = listing::extract_query_parameters(&req); errors::log_error_chain(err_404.to_string()); @@ -365,6 +376,7 @@ async fn error_404(req: HttpRequest) -> HttpResponse { false, !uses_random_route, &favicon_route, + &css_route, ) .into_string(), ) @@ -376,3 +388,13 @@ async fn favicon() -> impl Responder { .set(ContentType(mime::IMAGE_SVG)) .message_body(logo.into()) } + +lazy_static::lazy_static! { + static ref CSS_TEXT: String = grass::from_string(include_str!("../data/style.scss").to_string(), &grass::Options::default()).unwrap(); +} + +async fn css() -> impl Responder { + web::HttpResponse::Ok() + .set(ContentType(mime::TEXT_CSS)) + .body(&*CSS_TEXT) +} |