From 44550eb2d7bbb55976d78c967ce4c9e6f9f5e941 Mon Sep 17 00:00:00 2001 From: G2-Games Date: Wed, 30 Oct 2024 03:15:33 -0500 Subject: [PATCH] Added bundled fonts `Fira Code` and `Roboto` --- src/main.rs | 29 +++++++---------------------- src/pages.rs | 37 +++++++++++++++++++++++++++++++------ web/fonts/fira-code.woff2 | Bin 0 -> 23352 bytes web/fonts/roboto.woff2 | Bin 0 -> 18536 bytes web/main.css | 16 ++++++++++++++-- 5 files changed, 52 insertions(+), 30 deletions(-) create mode 100644 web/fonts/fira-code.woff2 create mode 100644 web/fonts/roboto.woff2 diff --git a/src/main.rs b/src/main.rs index 581f0ec..4d0114b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,32 +15,15 @@ use database::{clean_loop, Database, Mmid, MochiFile}; use endpoints::{file_info, lookup_mmid, lookup_mmid_name, lookup_mmid_noredir, server_info}; use log::info; use maud::{html, Markup, PreEscaped}; -use pages::{about, api_info, footer, head}; +use pages::{about, api_info, favicon, fira_code, footer, form_handler_js, head, roboto_flex, stylesheet}; use rocket::{ - data::{Limits, ToByteUnit}, form::Form, fs::TempFile, get, http::ContentType, post, response::content::{RawCss, RawJavaScript}, routes, serde::{json::Json, Serialize}, tokio, Config, FromForm, State + data::{Limits, ToByteUnit}, form::Form, fs::TempFile, get, post, routes, serde::{json::Json, Serialize}, tokio, Config, FromForm, State }; use settings::Settings; use strings::{parse_time_string, to_pretty_time}; use utils::hash_file; use uuid::Uuid; -/// Stylesheet -#[get("/resources/main.css")] -fn stylesheet() -> RawCss<&'static str> { - RawCss(include_str!("../web/main.css")) -} - -/// Upload handler javascript -#[get("/resources/request.js")] -fn form_handler_js() -> RawJavaScript<&'static str> { - RawJavaScript(include_str!("../web/request.js")) -} - -#[get("/resources/favicon.svg")] -fn favicon() -> (ContentType, &'static str) { - (ContentType::SVG, include_str!("../web/favicon.svg")) -} - #[get("/")] fn home(settings: &State) -> Markup { html! { @@ -237,17 +220,19 @@ async fn main() { home, api_info, about, + favicon, + form_handler_js, + stylesheet, + fira_code, + roboto_flex, ], ) .mount( config.server.root_path.clone() + "/", routes![ handle_upload, - form_handler_js, - stylesheet, server_info, file_info, - favicon, lookup_mmid, lookup_mmid_noredir, lookup_mmid_name, diff --git a/src/pages.rs b/src/pages.rs index 6d4290e..07bf400 100644 --- a/src/pages.rs +++ b/src/pages.rs @@ -1,5 +1,5 @@ use maud::{html, Markup, DOCTYPE}; -use rocket::{get, State}; +use rocket::{get, http::ContentType, response::content::{RawCss, RawJavaScript}, State}; use crate::settings::Settings; @@ -26,6 +26,32 @@ pub fn footer() -> Markup { } } +/// Stylesheet +#[get("/resources/main.css")] +pub fn stylesheet() -> RawCss<&'static str> { + RawCss(include_str!("../web/main.css")) +} + +/// Upload handler javascript +#[get("/resources/request.js")] +pub fn form_handler_js() -> RawJavaScript<&'static str> { + RawJavaScript(include_str!("../web/request.js")) +} + +#[get("/resources/favicon.svg")] +pub fn favicon() -> (ContentType, &'static str) { + (ContentType::SVG, include_str!("../web/favicon.svg")) +} + +#[get("/resources/Roboto.woff2")] +pub fn roboto_flex() -> (ContentType, &'static [u8]) { + (ContentType::WOFF2, include_bytes!("../web/fonts/roboto.woff2")) +} +#[get("/resources/FiraCode.woff2")] +pub fn fira_code() -> (ContentType, &'static [u8]) { + (ContentType::WOFF2, include_bytes!("../web/fonts/fira-code.woff2")) +} + #[get("/api")] pub fn api_info(settings: &State) -> Markup { let domain = &settings.server.domain; @@ -154,11 +180,10 @@ pub fn about(settings: &State) -> Markup { software available under the terms of the " a target="_blank" href="//www.gnu.org/licenses/agpl-3.0.txt" {"AGPL-3.0 license"} ". The source code is available on " - a target="_blank" href="https://github.com/Dangoware/confetti-box" {"GitHub"} - " and a couple of other places. The AGPL is very restrictive - when it comes to use on servers, so if you would like to use - Confetti-Box for a commercial purpose, please contact - Dangoware." + a target="_blank" href="//github.com/Dangoware/confetti-box" {"GitHub"} + ". The AGPL is very restrictive when it comes to use on + servers, so if you would like to use Confetti-Box for a + commercial purpose, please contact Dangoware." } p { diff --git a/web/fonts/fira-code.woff2 b/web/fonts/fira-code.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..00c8383e56a3667ac041021e7f91e062d39b4c2e GIT binary patch literal 23352 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�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 literal 0 HcmV?d00001 diff --git a/web/main.css b/web/main.css index 70cd9d2..7233d63 100644 --- a/web/main.css +++ b/web/main.css @@ -1,7 +1,19 @@ -@import url('https://fonts.googleapis.com/css2?family=Chokokutai&family=Fira+Code:wght@300..700&family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap'); +@font-face { + font-family: "Roboto"; + src: + /*local("Roboto"),*/ + url("/resources/Roboto.woff2"); +} + +@font-face { + font-family: "Fira Code"; + src: + /*local("Fira Code"),*/ + url("/resources/FiraCode.woff2"); +} body { - font-family: "Roboto Flex", sans-serif; + font-family: "Roboto", sans-serif; font-size: 14pt; font-optical-sizing: auto; }