aboutsummaryrefslogtreecommitdiff
path: root/server/tools
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-06 18:37:14 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-06 18:37:14 +0200
commit6e264a13ecc0284c5073d0fbe92e6d0bfeeee6bb (patch)
tree8fce220a62fc49062aaa45a69b69b469b3204505 /server/tools
parent5925c4da0d9c0e40203531d2c0c61a653e10824b (diff)
downloadhurrycurry-6e264a13ecc0284c5073d0fbe92e6d0bfeeee6bb.tar
hurrycurry-6e264a13ecc0284c5073d0fbe92e6d0bfeeee6bb.tar.bz2
hurrycurry-6e264a13ecc0284c5073d0fbe92e6d0bfeeee6bb.tar.zst
Prepare for book locale
Diffstat (limited to 'server/tools')
-rw-r--r--server/tools/src/book.rs8
-rw-r--r--server/tools/src/book_html.rs22
-rw-r--r--server/tools/src/diagram_dot.rs3
-rw-r--r--server/tools/src/main.rs3
-rw-r--r--server/tools/src/recipe_diagram.rs4
5 files changed, 23 insertions, 17 deletions
diff --git a/server/tools/src/book.rs b/server/tools/src/book.rs
index a125375b..3e04b54f 100644
--- a/server/tools/src/book.rs
+++ b/server/tools/src/book.rs
@@ -18,6 +18,7 @@
use crate::{diagram_layout::diagram_layout, recipe_diagram::recipe_diagram};
use anyhow::Result;
+use hurrycurry_locale::trm;
use hurrycurry_protocol::{
Gamedata, Message,
book::{Book, BookPage},
@@ -54,7 +55,10 @@ static RECIPE_PAGES: &[RecipePageParams] = &[
pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> {
let mut pages = Vec::new();
- pages.push(BookPage::Contents { table: vec![] });
+ pages.push(BookPage::Contents {
+ title: trm!("b.toc"),
+ table: vec![],
+ });
let mut toc = Vec::new();
for &RecipePageParams { name, repr_items } in RECIPE_PAGES {
@@ -75,7 +79,7 @@ pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> {
});
}
- if let BookPage::Contents { table } = &mut pages[0] {
+ if let BookPage::Contents { table, .. } = &mut pages[0] {
*table = toc;
}
Ok(Book { pages })
diff --git a/server/tools/src/book_html.rs b/server/tools/src/book_html.rs
index 089fc8f9..f915444b 100644
--- a/server/tools/src/book_html.rs
+++ b/server/tools/src/book_html.rs
@@ -16,6 +16,7 @@
*/
+use hurrycurry_locale::Locale;
use hurrycurry_protocol::{
Gamedata, Message,
book::{Book, BookPage, Diagram},
@@ -23,12 +24,12 @@ use hurrycurry_protocol::{
use crate::diagram_svg::diagram_svg;
-pub fn render_html_book(data: &Gamedata, book: &Book) -> String {
- BookR { book, data }.to_string()
+pub fn render_html_book(data: &Gamedata, book: &Book, locale: &Locale) -> String {
+ BookR { book, data, locale }.to_string()
}
markup::define! {
- BookR<'a>(data: &'a Gamedata, book: &'a Book) {
+ BookR<'a>(data: &'a Gamedata, book: &'a Book, locale: &'a Locale) {
@markup::doctype()
html {
head {
@@ -37,12 +38,12 @@ markup::define! {
}
body {
@for (index, page) in book.pages.iter().enumerate() {
- @PageR { data, page, index }
+ @PageR { data, locale, page, index }
}
}
}
}
- PageR<'a>(index: usize, data: &'a Gamedata, page: &'a BookPage) {
+ PageR<'a>(index: usize, data: &'a Gamedata, locale: &'a Locale, page: &'a BookPage) {
section.pagegroup[id=format!("page{index}")] {
@match page {
BookPage::Cover => {
@@ -51,8 +52,8 @@ markup::define! {
}
BookPage::Recipe { title, description, diagram } => {
div.page {
- h1 { @MessageR { data, message: title } }
- p { @MessageR { data, message: description } }
+ h1 { @MessageR { data, locale, message: title } }
+ p { @MessageR { data, locale, message: description } }
}
div.page {
@DiagramR { data, diagram }
@@ -62,10 +63,11 @@ markup::define! {
div.page {}
div.page {}
}
- BookPage::Contents { table } => {
+ BookPage::Contents { title, table } => {
div.page {
+ h1 { @MessageR { data, locale, message: title } }
ol { @for (label, page) in table {
- li { a[href=format!("#page{page}")] { @MessageR { data, message: label } } }
+ li { a[href=format!("#page{page}")] { @MessageR { data, locale, message: label } } }
}}
}
div.page {}
@@ -74,7 +76,7 @@ markup::define! {
}
}
- MessageR<'a>(data: &'a Gamedata, message: &'a Message) {
+ MessageR<'a>(data: &'a Gamedata, locale: &'a Locale, message: &'a Message) {
@match message {
Message::Translation { id, params } => { @format!("{:?}", (id, params)) }
Message::Text(t) => { @t }
diff --git a/server/tools/src/diagram_dot.rs b/server/tools/src/diagram_dot.rs
index f5c4714b..fb223dbf 100644
--- a/server/tools/src/diagram_dot.rs
+++ b/server/tools/src/diagram_dot.rs
@@ -16,6 +16,7 @@
*/
+use crate::diagram_svg::node_color;
use anyhow::{Result, bail};
use hurrycurry_protocol::{
Gamedata, Message,
@@ -27,8 +28,6 @@ use std::{
process::{Command, Stdio},
};
-use crate::diagram_svg::node_color;
-
pub fn diagram_dot_svg(data: &Gamedata, diagram: &Diagram) -> Result<String> {
let mut child = Command::new("dot")
.arg("-Tsvg")
diff --git a/server/tools/src/main.rs b/server/tools/src/main.rs
index 4a22cf8c..d7e5137a 100644
--- a/server/tools/src/main.rs
+++ b/server/tools/src/main.rs
@@ -39,6 +39,7 @@ use crate::{
};
use anyhow::Result;
use clap::Parser;
+use hurrycurry_locale::FALLBACK_LOCALE;
use hurrycurry_server::data::DataIndex;
#[derive(Parser)]
@@ -106,7 +107,7 @@ fn main() -> Result<()> {
index.reload()?;
let (data, serverdata, _) = index.generate("5star")?;
let book = book(&data, &serverdata)?;
- println!("{}", render_html_book(&data, &book))
+ println!("{}", render_html_book(&data, &book, &FALLBACK_LOCALE))
}
Action::MapDemands { map } => {
let mut index = DataIndex::default();
diff --git a/server/tools/src/recipe_diagram.rs b/server/tools/src/recipe_diagram.rs
index b463e3b6..a1ac7efd 100644
--- a/server/tools/src/recipe_diagram.rs
+++ b/server/tools/src/recipe_diagram.rs
@@ -185,10 +185,10 @@ fn merge_combine_clusters(diag: &mut Diagram) {
if outputs
.iter()
- .all(|&(ei, ni)| diag.nodes[ni].style.is_procuct())
+ .all(|&(_, ni)| diag.nodes[ni].style.is_procuct())
&& inputs
.iter()
- .all(|&(ei, ni)| diag.nodes[ni].style.is_procuct())
+ .all(|&(_, ni)| diag.nodes[ni].style.is_procuct())
{
let mut to_remove = inputs
.iter()