From 5f31996982050acf092c73ba207ec6566ba26a0b Mon Sep 17 00:00:00 2001 From: Wynd Date: Fri, 31 Jan 2025 14:50:31 +0200 Subject: [PATCH] Added features per game and a menu/index page --- Cargo.toml | 6 ++++++ src/bbs.rs | 6 +++--- src/ddd.rs | 2 +- src/main.rs | 20 ++++++++++++++++++++ templates/layouts/base.html | 17 +++++++++++++++++ templates/pages/index.html | 29 +++++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 templates/pages/index.html diff --git a/Cargo.toml b/Cargo.toml index 787be3b..e081264 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,3 +11,9 @@ toml = "0.8.19" tracing = "0.1.40" tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } itertools = "0.13.0" + +[features] +default = ["bbs", "ddd", "kh3"] +kh3 = [] +bbs = [] +ddd = [] diff --git a/src/bbs.rs b/src/bbs.rs index 4b37490..4d26132 100644 --- a/src/bbs.rs +++ b/src/bbs.rs @@ -130,15 +130,15 @@ const FINISHERS_PATH: &str = "./input/bbs/finish-commands.json"; const COMMANDS_PATH: &str = "./input/bbs/commands.json"; pub fn init() { - tracing::info!("Loading abilities json data from {}", ABILITIES_PATH); + tracing::info!("Loading abilities data from {}", ABILITIES_PATH); let abilities_str = std::fs::read_to_string(ABILITIES_PATH).unwrap(); let abilities = serde_json::from_str::>(&abilities_str).unwrap(); - tracing::info!("Loading finishers json data from {}", ABILITIES_PATH); + tracing::info!("Loading finishers data from {}", ABILITIES_PATH); let finishers_str = std::fs::read_to_string(FINISHERS_PATH).unwrap(); let finishers = serde_json::from_str::>(&finishers_str).unwrap(); - tracing::info!("Loading commands json data from {}", ABILITIES_PATH); + tracing::info!("Loading commands data from {}", ABILITIES_PATH); let commands_str = std::fs::read_to_string(COMMANDS_PATH).unwrap(); let mut commands = serde_json::from_str::>(&commands_str).unwrap(); diff --git a/src/ddd.rs b/src/ddd.rs index 59b8fdb..4cafd7f 100644 --- a/src/ddd.rs +++ b/src/ddd.rs @@ -356,7 +356,7 @@ struct AbilitiesTemplate { const ABILITIES_PATH: &str = "./input/ddd/abilities"; pub fn init() { - tracing::info!("Loading ability links json data from {}", ABILITIES_PATH); + tracing::info!("Loading ability boards data from {}", ABILITIES_PATH); let mut boards: Vec = vec![]; // Loading multiple files into one vector due to the size of each board let paths = std::fs::read_dir(ABILITIES_PATH) diff --git a/src/main.rs b/src/main.rs index 2ebdbde..cebcf50 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,13 +1,23 @@ #![allow(dead_code)] +use rinja::Template; use tracing_subscriber::EnvFilter; +#[cfg(feature = "bbs")] mod bbs; + +#[cfg(feature = "ddd")] mod ddd; + +#[cfg(feature = "kh3")] mod kh3; pub const VERSION: &str = env!("CARGO_PKG_VERSION"); +#[derive(Template)] +#[template(path = "pages/index.html")] +struct IndexTemplate {} + fn main() { // Initialize tracing tracing_subscriber::fmt() @@ -15,7 +25,17 @@ fn main() { .event_format(tracing_subscriber::fmt::format().with_source_location(true)) .init(); + tracing::info!("Generating the main menu template"); + let template = IndexTemplate {}; + + std::fs::write("./out/index.html", template.render().unwrap()).unwrap(); + + #[cfg(feature = "bbs")] bbs::init(); + + #[cfg(feature = "ddd")] ddd::init(); + + #[cfg(feature = "kh3")] kh3::init(); } diff --git a/templates/layouts/base.html b/templates/layouts/base.html index 8872066..15a2a9b 100644 --- a/templates/layouts/base.html +++ b/templates/layouts/base.html @@ -40,6 +40,23 @@ ul { line-height: 1.5; } + + a { + color: #00ff00; + text-decoration: none; + + &:hover { + color: #9dff9d; + } + + &:visited { + color: #00a200; + + &:hover { + color: #65a565; + } + } + } {% block head %}{% endblock %} diff --git a/templates/pages/index.html b/templates/pages/index.html new file mode 100644 index 0000000..d9dff1d --- /dev/null +++ b/templates/pages/index.html @@ -0,0 +1,29 @@ +{% extends "layouts/base.html" %} + +{% block title %}Menu{% endblock %} + +{% block head %} +{% endblock %} + +{% block content %} + {% if cfg!(feature = "bbs") %} +

Kingdom Hearts Birth by Sleep

+ + {% endif %} + + {% if cfg!(feature = "ddd") %} +

Kingdom Hearts Dream Drop Distance

+ + {% endif %} + + {% if cfg!(feature = "kh3") %} +

Kingdom Hearts III

+ + {% endif %} +{% endblock %}