Added features per game and a menu/index page

master
Wynd 2025-01-31 14:50:31 +02:00
parent 576457d5b0
commit 5f31996982
6 changed files with 76 additions and 4 deletions

View File

@ -11,3 +11,9 @@ toml = "0.8.19"
tracing = "0.1.40" tracing = "0.1.40"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
itertools = "0.13.0" itertools = "0.13.0"
[features]
default = ["bbs", "ddd", "kh3"]
kh3 = []
bbs = []
ddd = []

View File

@ -130,15 +130,15 @@ const FINISHERS_PATH: &str = "./input/bbs/finish-commands.json";
const COMMANDS_PATH: &str = "./input/bbs/commands.json"; const COMMANDS_PATH: &str = "./input/bbs/commands.json";
pub fn init() { 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_str = std::fs::read_to_string(ABILITIES_PATH).unwrap();
let abilities = serde_json::from_str::<Vec<Ability>>(&abilities_str).unwrap(); let abilities = serde_json::from_str::<Vec<Ability>>(&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_str = std::fs::read_to_string(FINISHERS_PATH).unwrap();
let finishers = serde_json::from_str::<HashMap<String, Finisher>>(&finishers_str).unwrap(); let finishers = serde_json::from_str::<HashMap<String, Finisher>>(&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 commands_str = std::fs::read_to_string(COMMANDS_PATH).unwrap();
let mut commands = serde_json::from_str::<Vec<Command>>(&commands_str).unwrap(); let mut commands = serde_json::from_str::<Vec<Command>>(&commands_str).unwrap();

View File

@ -356,7 +356,7 @@ struct AbilitiesTemplate {
const ABILITIES_PATH: &str = "./input/ddd/abilities"; const ABILITIES_PATH: &str = "./input/ddd/abilities";
pub fn init() { 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<Board> = vec![]; let mut boards: Vec<Board> = vec![];
// Loading multiple files into one vector due to the size of each board // Loading multiple files into one vector due to the size of each board
let paths = std::fs::read_dir(ABILITIES_PATH) let paths = std::fs::read_dir(ABILITIES_PATH)

View File

@ -1,13 +1,23 @@
#![allow(dead_code)] #![allow(dead_code)]
use rinja::Template;
use tracing_subscriber::EnvFilter; use tracing_subscriber::EnvFilter;
#[cfg(feature = "bbs")]
mod bbs; mod bbs;
#[cfg(feature = "ddd")]
mod ddd; mod ddd;
#[cfg(feature = "kh3")]
mod kh3; mod kh3;
pub const VERSION: &str = env!("CARGO_PKG_VERSION"); pub const VERSION: &str = env!("CARGO_PKG_VERSION");
#[derive(Template)]
#[template(path = "pages/index.html")]
struct IndexTemplate {}
fn main() { fn main() {
// Initialize tracing // Initialize tracing
tracing_subscriber::fmt() tracing_subscriber::fmt()
@ -15,7 +25,17 @@ fn main() {
.event_format(tracing_subscriber::fmt::format().with_source_location(true)) .event_format(tracing_subscriber::fmt::format().with_source_location(true))
.init(); .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(); bbs::init();
#[cfg(feature = "ddd")]
ddd::init(); ddd::init();
#[cfg(feature = "kh3")]
kh3::init(); kh3::init();
} }

View File

@ -40,6 +40,23 @@
ul { ul {
line-height: 1.5; line-height: 1.5;
} }
a {
color: #00ff00;
text-decoration: none;
&:hover {
color: #9dff9d;
}
&:visited {
color: #00a200;
&:hover {
color: #65a565;
}
}
}
</style> </style>
{% block head %}{% endblock %} {% block head %}{% endblock %}

View File

@ -0,0 +1,29 @@
{% extends "layouts/base.html" %}
{% block title %}Menu{% endblock %}
{% block head %}
{% endblock %}
{% block content %}
{% if cfg!(feature = "bbs") %}
<h1>Kingdom Hearts Birth by Sleep</h1>
<ul>
<li><a href="./bbs-commands.html">Command Melding</a></li>
</ul>
{% endif %}
{% if cfg!(feature = "ddd") %}
<h1>Kingdom Hearts Dream Drop Distance</h1>
<ul>
<li><a href="./ddd-abilities.html">Spirit Boards</a></li>
</ul>
{% endif %}
{% if cfg!(feature = "kh3") %}
<h1>Kingdom Hearts III</h1>
<ul>
<li><a href="./kh3-recipes.html">Food Simulator</a></li>
</ul>
{% endif %}
{% endblock %}