aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorBao Trinh <qubidt@gmail.com>2023-07-12 17:46:51 +0000
committerBao Trinh <qubidt@gmail.com>2023-07-12 18:39:51 +0000
commitb369a1a9ff3c60b67a7598d4486253c428e3a4da (patch)
tree2cdf9586cc50f999fc69f436aea89c5ff3332cba /src/main.rs
parentsimplify theme selection using data attributes (diff)
downloadminiserve-b369a1a9ff3c60b67a7598d4486253c428e3a4da.tar.gz
miniserve-b369a1a9ff3c60b67a7598d4486253c428e3a4da.zip
Separate color schemes into separate files
Diffstat (limited to '')
-rw-r--r--src/main.rs17
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())
}